附录 G至附录N

  • 附录G:版本更新追踪与配置迁移指南
  • 附录H:常见故障排查速查表(20+典型问题)
  • 附录I:多Agent系统性能调优与调试指南
  • 附录J:量化交易监管合规要点(A股市场)
  • 附录K:Hermes Agent 内置工具完整清单
  • 附录L:ACP协议部署速查表
  • 附录M:共享记忆工具选型速查
  • 附录N:技能一键迁移清单
图片[1]-OpenClaw与Hermes常见问题排查与生产配置手册(附录G-N)

附录G:版本更新追踪与配置迁移指南

G.1 版本命名规则

  • OpenClaw:以日期作为版本号(如 v2026.5.4),稳定版标签格式 vYYYY.M.D
  • Hermes:语义化版本号(如 v0.11.0

G.2 检查当前版本

bash

# OpenClaw
openclaw --version

# Hermes
hermes --version

G.3 升级前必须备份

bash

# 备份 OpenClaw 配置和工作区
cp -r ~/.openclaw ~/.openclaw.backup.$(date +%Y%m%d)

# 备份 Hermes 配置和工作区
cp -r ~/.hermes ~/.hermes.backup.$(date +%Y%m%d)

G.4 版本锁定方法

为避免自动升级导致不兼容,建议使用固定版本:

OpenClaw(通过npm)

bash

npm install -g openclaw@v2026.5.4

Hermes(通过pip)

bash

pip install hermes-agent==0.11.0

G.5 配置迁移脚本模板

当 OpenClaw 或 Hermes 升级后配置文件结构发生变动时,可使用以下脚本进行自动化迁移:

python

#!/usr/bin/env python3
# migrate_config.py
import json, yaml, shutil
from pathlib import Path

def migrate_openclaw(old_path, new_path):
    """适用于已知配置字段变更的迁移(示例)"""
    with open(old_path) as f:
        old = json.load(f)
    new = {}
    # 示例:将旧版 `gateway.bind` 字段迁移到新版 `gateway.listen`
    if 'bind' in old.get('gateway', {}):
        new['gateway'] = {'listen': old['gateway']['bind']}
    # ... 根据实际 Release Notes 补充
    with open(new_path, 'w') as f:
        json.dump(new, f, indent=2)

if __name__ == '__main__':
    # 仅在确认变更后执行
    print("请先阅读 Release Notes,确认需要迁移的字段")

G.6 常见版本变动与应对(持续更新)

变更内容旧版本新版本迁移措施
ACP 连接配置字段重命名acp.connections[].nameacp.connections[].id手动修改配置文件或运行迁移脚本
Hermes 记忆后端默认值变更memory.backend: none默认为 qmd无影响,保持使用 qmd 即可
OpenClaw Cron 任务时区要求不强制时区必须显式设置 --tz为所有 cron 任务添加 --tz Asia/Shanghai

最新版本变动跟踪:建议订阅官方 GitHub Release 通知,并定期访问本书 GitHub 仓库的 upgrade-notes 目录。


附录H:常见故障排查速查表

H.1 安装与启动类故障

故障现象可能原因排查步骤解决方案
openclaw gateway start 立即退出端口被占用lsof -i :18789kill -9 <PID> 或修改配置中的端口号
hermes 命令未找到PATH 未更新which hermessource ~/.bashrc 或重新加载终端
一键安装脚本下载失败网络问题使用 curl -I 测试连接使用国内镜像或手动安装
Hermes 提示 sqlite3 扩展错误SQLite 版本过低sqlite3 --version升级 SQLite 或使用 Docker 后端

H.2 消息渠道故障

故障现象可能原因排查步骤解决方案
飞书机器人无回复WebSocket 配对未完成查看终端输出是否有配对提示执行终端显示的配对命令
飞书配对失败未添加 im.message.receive_v1 事件检查飞书应用“事件与回调”添加该事件并重新发布版本
Telegram 机器人无响应Token 错误或未启动 Gatewayhermes gateway status重新配置 Token 并启动 Gateway

H.3 记忆与 RAG 故障

故障现象可能原因排查步骤解决方案
记忆不生效冻结快照机制新会话中仍读取不到确认修改已写入文件,再启动新会话
MEMORY.md 写满无法添加超过字符上限(2200)wc -c MEMORY.md手动精简或运行 hermes memory prune
QMD 检索无结果minSimilarity 阈值过高检查配置降低阈值至 0.2 或 0.15
OpenClaw RAG 与 Hermes 记忆不能共用技术架构不同无需解决按第3.4.4节方案共享数据

H.4 ACP 通信故障

故障现象可能原因排查步骤解决方案
openclaw acp call 超时Hermes ACP 服务未启动ps aux | grep "hermes acp serve"启动 Hermes ACP 服务
连接被拒绝端口错误或防火墙telnet localhost 50051检查端口并开放防火墙
版本不兼容OpenClaw 与 Hermes ACP 版本差异分别查看版本号统一升级到最新稳定版

H.5 量化策略相关故障

故障现象可能原因排查步骤解决方案
回测与实盘收益差距大滑点或手续费设置不同对比回测和实盘日志使用第28.4节一致性检查清单
因子IC 为 NaN数据长度不足或除零检查因子计算脚本确保数据期数大于等于回望窗口
风控未触发止损risk.pause_trading 未正确设置检查共享记忆中该键值确认风控 Agent 可写入该键,交易 Agent 可读取

H.6 通用排查三板斧

bash

openclaw status --all
openclaw doctor --repair
openclaw logs --tail 50

附录I:多Agent系统性能调优与调试指南

I.1 性能指标参考阈值

指标正常范围需关注严重
Agent 响应时间(P99)< 1s1-3s> 3s
Cron 任务成功率> 99%95-99%< 95%
Token 成本(月)< $50$50-200> $200
共享记忆延迟(P99)< 10ms10-30ms> 30ms

I.2 优化检查清单

  • 是否启用了 ACP MessagePack 序列化(use_msgpack: true)?
  • 非实时任务是否使用了 delegate 异步模式?
  • 是否限制了子 Agent 最大并发数(max_concurrent_subagents)?
  • 高频查询是否使用了 Redis 缓存(TTL 5分钟)?
  • 确定性任务是否从 Hermes 迁移到了 OpenClaw?
  • 是否启用了 contextPruning 裁剪历史上下文?

I.3 分布式追踪配置(Jaeger + OpenTelemetry)

启动 Jaeger(Docker):

bash

docker run -d --name jaeger -p 6831:6831/udp -p 16686:16686 jaegertracing/all-in-one:latest

OpenClaw 集成(需安装 OpenTelemetry SDK,参考第17.3节)。

轻量级替代方案:使用 ACP 日志中的 trace_id 手动关联:

bash

grep "trace_id=abc123" ~/.openclaw/logs/gateway.log
grep "trace_id=abc123" ~/.hermes/logs/agent.log

I.4 常用调试命令

bash

# 查看 OpenClaw 当前队列长度
openclaw gateway stats | grep queue_length

# 查看 Hermes 活跃子 Agent
hermes subagent list

# 测试 ACP 连接延迟
time openclaw acp call --method agent/ask --params '{"task":"ping"}' --wait

# 分析 Token 使用
openclaw stats --today
hermes config get llm.token_usage

附录J:量化交易监管合规要点(A股市场)

J.1 程序化交易报告制度

根据中国证监会《证券市场程序化交易管理规定(试行)》,使用程序化交易(含 AI Agent 自动下单)的个人或机构需向证券公司报告以下信息:

信息类型内容
身份信息账户持有人的身份证明
策略类型策略描述、代码托管位置(如有)
服务器位置托管机房地址或云服务商
风控参数最大下单频率、单笔下单金额上限
应急预案断线、异常时的处理流程

具体要求请以证券公司营业部通知为准,建议在实盘交易前咨询开户券商。

J.2 异常交易行为监控指标

上交所/深交所重点监控的异常行为(系统应内置检测机制):

行为描述Agent 中应设置的硬限制
频繁报撤单全日撤单率 > 50%交易 Agent 单日撤单次数 ≤ 3 次
大额对倒自买自卖禁止自成交(通过订单去重)
虚假申报不以成交为目的的大额申报单笔委托金额不得超过账户净值的 10%
日内开仓限额股指期货产品(如中金所规定 500 手/日)风控 Agent 统计每日下单手数,超限熔断

J.3 日志保存期限

根据《证券法》及监管要求:

  • 交易委托记录、撤单记录、成交记录必须保存 至少 20 年
  • 日志存储格式:不可篡改(如 WORM 存储或带签名校验的 JSONL)
  • 建议实现每日自动归档到云存储(OSS/S3)

J.4 跨境合规提示

如通过 Agent 连接境外交易所(如美股、港股),还需遵守当地监管:

  • 美国 SEC Rule 15c3-5:要求市场接入控制(MAP),防止错误订单送达
  • 香港 SFC:程序化交易必须有实时监控和熔断机制

J.5 合规检查 Skill 示例

markdown

---
name: compliance_check
description: 每日扫描审计日志,标记可疑行为并生成合规报告
---

## 执行步骤
1. 读取最近 24 小时的交易日志
2. 计算撤单率,若超过 20% 则告警
3. 检查有无自成交嫌疑(同一证券的买卖订单来自同一策略)
4. 统计日内开仓手数,接近限额时预警
5. 输出合规报告到飞书群

附录K:Hermes Agent 内置工具完整清单

Hermes Agent 预装了以下工具集(基于 v0.11.0,具体数量以实际版本为准)。工具可通过 hermes tools list 查看,工具集可通过 disabled_toolsets 配置禁用。

工具集工具名称功能简述是否默认启用
terminalexec执行系统命令
fileread读取文件
write写入文件
edit编辑文件(diff模式)
apply_patch应用补丁
webweb_search搜索引擎查询
web_fetch获取网页内容
browserbrowser_navigate导航到 URL是(需配置)
browser_click点击元素
browser_type输入文本
browser_snapshot获取 DOM 快照
memorymemory_search搜索记忆
memory_store存储记忆
memory_list列表记忆
memory_forget删除记忆
skillsskill_manage创建/修改/删除 Skill
delegationdelegate_task委托子 Agent
croncron_add添加定时任务
cron_remove删除定时任务
cron_list列出任务
messagingmessage_send发送消息(渠道)
mediaimage_generate图像生成
tts文字转语音
code_executionpython_replPython 代码执行(隔离)
visionanalyze_image图像分析与 OCR
ragvector_search向量检索是(需配置)
rlexport_trajectory导出 RL 训练数据否(需手动启用)
homeassistantha_call_service调用 Home Assistant

完整的工具参数和用法请参考 hermes tool describe <工具名>


附录L:ACP协议部署速查表

L.1 直连模式 vs 网关中转模式

模式OpenClaw 配置Hermes 配置适用场景
直连模式(stdio)transport: "stdio"hermes acp serve(无额外参数)同一主机,最简配置
直连模式(TCP)transport: "tcp" + addresshermes acp serve --listen tcp://0.0.0.0:50051同一内网低延迟
网关中转模式连接 Nginx/Envoy 地址同 TCP,但暴露给代理跨 VPC、需 TLS、负载均衡

L.2 直连模式 stdio 完整配置示例

OpenClaw openclaw.json

json

{
  "acp": {
    "connections": [
      {
        "name": "hermes",
        "transport": "stdio",
        "command": "hermes",
        "args": ["acp", "serve"],
        "timeout": 60,
        "retry": { "max_attempts": 3 }
      }
    ]
  }
}

启动 Hermes ACP 服务(在同一终端或后台):

bash

hermes acp serve

L.3 直连模式 TCP 完整配置示例

OpenClaw

json{
“acp”: {
“connections”: [
{
“name”: “hermes-tcp”,
“transport”: “tcp”,
“address”: “192.168.1.100:50051”,
“tls”: false,
“timeout”: 30
}
]
}
}

Hermes

bash

hermes acp serve --listen tcp://0.0.0.0:50051

L.4 防火墙与企业内网部署要点

  • 端口要求:默认 50051,确保防火墙开放该端口的入站连接(TCP)
  • TLS 加密(生产环境强烈推荐):jsontls”: true, “cert_file”: “/path/to/cert.pem”, “key_file”: “/path/to/key.pem”
  • 代理穿透:若企业网络要求出站走 HTTP 代理,ACP 可通过 HTTP_PROXY 环境变量工作,但不保证稳定,建议优先使用 stdio 模式。

L.5 验证 ACP 连接的命令

bash

# 从 OpenClaw 端测试
openclaw acp call --connection hermes --method agent/ask --params '{"task":"ping"}' --wait

# 查看连接状态
openclaw acp status

附录M:共享记忆工具选型速查

M.1 工具对比表

工具类型优点缺点适用场景
共享文件(JSON/YAML)文件简单、可读、版本控制并发需加锁小团队、个人、非高频
Redis内存数据库高性能、支持过期、原子操作额外依赖、内存成本高频读写、实时共享
SQLite嵌入式数据库支持并发、SQL查询单机部署中等数据量、结构化记忆
PostgreSQL关系型数据库功能强大、事务支持运维成本企业级、需要永久存储
Hindsight知识图谱高检索精度、reflect 洞察需本地 PostgreSQL跨 Agent 经验蒸馏
Mem0语义记忆自动提取事实、零延迟预取云端付费自然语言记忆

M.2 Redis 配置示例(推荐)

yaml

# ~/docker-compose.yml
redis:
  image: redis:7-alpine
  ports:
    - "6379:6379"
  command: redis-server --appendonly yes

OpenClaw/Hermes 统一连接:

yaml

memory:
  redis:
    host: localhost
    port: 6379
    db: 0

M.3 SQLite 配置示例(轻量级)

python

import sqlite3
conn = sqlite3.connect('/mnt/shared_memory/memory.db')
conn.execute('CREATE TABLE IF NOT EXISTS shared (key TEXT PRIMARY KEY, value TEXT)')

M.4 选型决策树

  • 仅本机单 Agent → 共享文件
  • 本机多 Agent → SQLite 或 Redis
  • 跨机器多 Agent → Redis(网络)或 PostgreSQL
  • 需要语义搜索/记忆蒸馏 → Hindsight / Mem0

附录N:技能一键迁移清单

N.1 迁移命令

bash

# Dry-run 预览
hermes claw migrate --source ~/.openclaw/workspace/skills --dry-run

# 执行迁移
hermes claw migrate --source ~/.openclaw/workspace/skills

N.2 迁移前检查清单

OpenClaw 工作区路径是否正确(默认 ~/.openclaw/workspace/skills

  • 目标 Hermes 技能目录(~/.hermes/skills)是否有写权限
  • 是否已有同名 Skill(迁移会跳过,不会覆盖)
  • 是否需要指定 --target 目录(默认自动识别)

N.3 迁移后验证步骤

  1. 运行 hermes skills list 查看已迁移的 Skill 是否出现
  2. 手动测试一个简单的迁移 Skill(如 weather
  3. 检查是否有环境变量缺失(如 OPENWEATHER_API_KEY
  4. 检查 Skill 依赖的脚本(scripts/)是否可执行

N.4 兼容性说明

OpenClaw Skill 特性Hermes 兼容性处理方式
AGENTS.md 风格 frontmatter部分兼容自动转换为 SKILL.md 格式
scripts/ 中的 Python/Shell 脚本完全兼容直接复制
references/ 文档完全兼容直接复制
依赖环境变量(如 API Key)需手动添加迁移后需将变量复制到 ~/.hermes/.env
OpenClaw 特有工具(如 openclaw_send_message不兼容需改用 Hermes 的 message_send 工具或通过 ACP 回调

N.5 迁移后常见问题与解决

问题原因解决方案
Skill 未出现在列表中frontmatter 格式不符手动添加 --- 包裹的 YAML 头
执行报错 command not found脚本依赖的二进制不在 PATH修改 SKILL.md 使用绝对路径或安装依赖
环境变量未加载未迁移 .env手动将 OpenClaw .env 中的密钥复制到 Hermes .env
工具不存在调用了 OpenClaw 专有工具修改 Skill 使用 Hermes 工具(见附录K)或通过 ACP 回调

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容