Appearance
OpenClaw + Hermes 双 Agent 架构:入口执行 + 经验沉淀的联动方案
OpenClaw 做前端入口 + 执行者,Hermes 技能 API 做后台经验存储。两者分工合作,让 AI 不仅能执行任务,还能记住"怎么做",越用越聪明。本文详解双 Agent 联动架构、HTTP API 调用示例、执行效果数据。
最近又出了个现象级 AI Agent:Hermes Agent。核心是"自主进化",可以自主生成技能,优化记忆。
网上关于它们的讨论很多:要么比谁更强、要么说各有优劣。对于真正想用好工具的人来说,更想知道的是:
- 分别擅长什么?
- 怎么选?
- 为什么要结合?
- 什么场景使用?
我的答案:OpenClaw 是前端交互入口 + 执行者,Hermes 技能 API 是后台记经验的存储服务。
两者不是替代关系,而是分工合作。干活的是 OpenClaw,Hermes 只负责记录和检索执行经验。两者结合,让 AI 不仅能执行任务,还能记住"怎么做",越用越聪明。
一、OpenClaw 和 Hermes 各自的定位
OpenClaw:作为前端交互入口
OpenClaw 本质上是一个消息网关:
它解决的是"入口统一"问题:不管你从哪个平台发消息,都经过 OpenClaw 处理。
核心能力:
| 能力 | 说明 |
|---|---|
| 多渠道接入 | 15+ 平台:微信、飞书、钉钉、Telegram、Discord、Slack 等 |
| 多 Agent 管理 | 工作/生活/项目隔离 |
| 任务调度 | Cron / Hook / 后台任务 |
| 工具生态 | exec、file、browser 等完整工具链 |
GitHub: https://github.com/OpenClawAI/openclaw
Hermes Agent:作为技能 API,提供后台记经验的存储服务
Hermes 本质上是一个会学习的执行 Agent。
核心能力:
| 能力 | 说明 |
|---|---|
| 闭环学习 | 每次任务后自动总结经验 |
| 技能积累 | 同类任务第二次直接复用 |
| 渐进披露 | 技能按需加载,不浪费 token |
重要说明:Hermes 目前仍属实验性框架,自进化逻辑可用,但复杂任务执行稳定性有限,更适合轻量、单步执行类任务。
GitHub: https://github.com/NiceneNerd/Hermes-Agent
二、为什么 OpenClaw + Hermes 值得一起玩?
因为 OpenClaw 擅长编排,Hermes Agent 擅长沉淀。
现在的问题:OpenClaw 每次执行同类任务都要重新规划
比如"分析项目代码结构":
| 执行次数 | 步数 | 原因 |
|---|---|---|
| 第 1 次 | 30 步 | 探索最优工具组合 |
| 第 2 次 | 30 步 | 从头开始 |
| 第 3 次 | 30 步 | 同样的重复 |
这不是 bug,是 AI Agent 的本质局限:它们没有长时记忆。
Hermes 能学习,但它没有多渠道入口
| 工具 | 有多渠道 | 会学习 |
|---|---|---|
| OpenClaw | ✅ | ❌ |
| Hermes | ❌ | ✅ |
结合后:OpenClaw 做入口和执行,Hermes 技能 API 负责记经验
用户 → OpenClaw(入口 + 执行)→ Hermes 技能 API(记录经验)
↑ ↓
└──── 查询历史经验 ←──────┘三、为什么不使用 ACP?
网上有些文章说"OpenClaw 可以通过 ACP 操作 Hermes",听起来很美好,但实际查一下 Hermes 的 ACP 文档会发现:
Hermes 的 ACP 是给 IDE 用的(VS Code、Zed、JetBrains),不是给 Agent 之间通信用的。
ACP 全称 Agent Client Protocol,设计目的是让 Hermes 作为编码助手嵌入 IDE,而不是让 OpenClaw 调用 Hermes 执行任务。
如果要通过 ACP 让 OpenClaw 协作 Hermes,实际上要解决:
| 问题 | 复杂度 |
|---|---|
| 实现完整的 ACP 协议栈(JSON-RPC 2.0) | 高 |
| 处理 ACP 的会话管理、认证、授权 | 高 |
| 解决 ACP 的稳定性和错误处理 | 高 |
收益有限,复杂度高。
我们只需要"记录技能"和"查询技能",用简单的 HTTP + JSON 就能实现。够用就行,不追求复杂。
四、为什么不直接让 Hermes 执行任务?
既然 Hermes 是"会学习的执行 Agent",为什么不直接让它执行任务?
原因一:Hermes 不够稳定
Hermes 本身是实验性框架,复杂任务、长任务容易断。我们需要的是它的学习能力,不是它的执行能力。
原因二:OpenClaw 执行能力已经够用
OpenClaw 有完整的工具生态(exec、file、browser 等),有多渠道接入、有调度能力。没有必要再引入一个不稳定的执行者。
原因三:复杂度爆炸
如果 Hermes 执行任务,就要处理:
| 问题 | 说明 |
|---|---|
| 任务怎么分派 | 谁分给谁? |
| 结果怎么同步 | 怎么知道完成了? |
| 错误怎么处理 | 重试、降级、状态管理 |
ACP 协议是给 IDE 用的,不是给任务分派用的。
我们真正需要的是 Hermes 的学习能力。
结论
当前阶段,OpenClaw 执行 + Hermes 记经验,是收益/复杂度比最高的方案。
五、具体落地方案
实际架构
┌─────────────────────────────────────────────────────┐
│ 用户消息 │
│ (微信/飞书/钉钉/Telegram...) │
└─────────────────────┬───────────────────────────────┘
▼
┌─────────────────────────────────────────────────────┐
│ OpenClaw(入口 + 执行) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 解析意图 │ │ 执行任务 │ │ 返回结果 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└────────┬───────────────────────┬───────────────────┘
│ │
▼ ▼
┌─────────────────┐ ┌─────────────────┐
│ 查询历史经验 │ │ 记录新经验 │
│ GET /skill/search│ │ POST /skill/learn│
└────────┬────────┘ └────────┬────────┘
│ │
└───────────┬───────────┘
▼
┌─────────────────────────────────────────────────────┐
│ Hermes 技能 API(存储服务) │
│ ~/.hermes/skills/openclaw-evolution/ │
└─────────────────────────────────────────────────────┘关键说明:
- 直接用轻量 HTTP 通信,够用就行
- OpenClaw 是执行者,Hermes 技能 API 只是存储服务
- 技能存在
~/.hermes/skills/openclaw-evolution/
API 调用示例
任务前查询技能:
bash
curl "http://127.0.0.1:52012/skill/search?q=分析项目代码结构"任务后记录技能:
bash
curl -X POST "http://127.0.0.1:52012/skill/learn" \
-H "Content-Type: application/json" \
-d '{
"task": "分析项目代码结构",
"skill": "使用 tree 命令查看目录结构,使用 grep 搜索关键文件",
"steps": ["tree -L 2", "grep -r 'main' src/"],
"result": "成功识别项目为 Node.js 项目"
}'六、执行效果数据
| 指标 | 第一次执行 | 第二次执行(有经验) |
|---|---|---|
| 步数 | 30 步 | 15 步 |
| 耗时 | 45 秒 | 25 秒 |
| Token 消耗 | 15K | 8K |
关键收益:
- 步数减少 50%:从 30 步降到 15 步
- 时间节省 44%:从 45 秒降到 25 秒
- Token 节省 47%:从 15K 降到 8K
七、使用约束
| 约束 | 说明 |
|---|---|
| Hermes 必须先启动 | 否则 OpenClaw 无法调用技能 API |
| 技能存储在本地 | ~/.hermes/skills/openclaw-evolution/ |
| 适合轻量任务 | 复杂任务 Hermes 稳定性有限 |
| 需要手动配置 | 在 OpenClaw 中添加 Hermes 技能调用逻辑 |
八、快速上手
步骤 1:启动 Hermes
bash
# 安装 Hermes
pip install hermes-agent
# 启动 Hermes(后台模式)
hermes start --api-port 52012步骤 2:配置 OpenClaw 技能
在 OpenClaw 的 skills 目录创建 hermes-bridge 技能:
markdown
# Hermes Bridge Skill
## 功能
- 任务前查询历史经验
- 任务后记录新经验
## API 端点
- 查询: GET http://127.0.0.1:52012/skill/search?q={task}
- 记录: POST http://127.0.0.1:52012/skill/learn步骤 3:测试联动
用户: 帮我分析这个项目的代码结构
OpenClaw: [查询 Hermes 历史经验] → [执行任务] → [记录新经验]总结
| 要点 | 说明 |
|---|---|
| 分工 | OpenClaw = 入口 + 执行,Hermes = 经验存储 |
| 通信 | 轻量 HTTP + JSON,够用就行 |
| 收益 | 步数减少 50%,时间节省 44%,Token 节省 47% |
| 约束 | Hermes 必须先启动,适合轻量任务 |
核心观点:分工合作,各司其职。OpenClaw 负责执行,Hermes 负责学习。简单方案解决复杂问题。
