
最近老有人来问我这个问题:OpenClaw 和 Hermes Agent 如何联合,但网上找来找去只看到OpenClaw 可以通过 ACP 操作 Hermes Agent 一句话,没有任何具体操作。
我知道这种感觉——查文档查到想砸键盘。
所以我去把官方文档、GitHub Issue、Reddit 挨个翻了一遍,总算搞清楚了整个流程。今天把这事说清楚。
Hermes Agent 是什么
Hermes Agent 是 Nous Research 开源的自主 AI Agent,同一个团队还出了 Hermes 模型系列和 Atropos 强化学习框架。功能上跟 OpenClaw 有不少重叠:控制电脑、跑命令、改文件、刷网页、跑自动化流程都行,也能接 Telegram、Discord、WhatsApp。
但架构思路完全不同,这才是关键。
OpenClaw 的核心是网关/控制器,所有东西都汇聚到一个长期运行的 Node.js 进程里统一调度。Hermes 则把 Agent 自身的执行循环放在中心,一切围绕"做-学-改"这个循环展开。
这个差异体现在一个很具体的功能上:Hermes 会把成功完成的任务固化成可复用的 Skill。
给它派一个复杂任务,它跑完之后不只是跑完了,而是把整个解法整理成一个新 Skill 存起来。下次遇到类似的任务,直接调 Skill,比第一次快得多。OpenClaw 虽然也会"想通"问题,但不会主动帮你把经验封装成可复用模块。
Reddit 上有个高赞评论说得挺准:OpenClaw 是系统,Hermes 是在成长的 Agent。
怎么在 OpenClaw 里调用 Hermes Agent
核心机制是 ACP(Agent Communication Protocol)。Hermes 自带 ACP 适配器,可以把自己暴露成一个 ACP Agent 供 OpenClaw 调用。
第一步:装依赖
cd ~/.hermes/hermes-agentpip install -e '.[acp]' 第二步:启动 Hermes ACP Server
hermes acp 第三步:在 OpenClaw 里配置
打开 ~/.openclaw/openclaw.json,在 agents.list 里加一个 agent:
{
"id": "hermes",
"name": "Hermes Agent",
"runtime": {
"type": "acp",
"acp": {
"agent": "hermes-agent",
"backend": "acpx",
"mode": "persistent",
"cwd": "/home/agent/.hermes/hermes-agent"
}
},
"workspace": "/home/agent/.hermes/hermes-agent"
}
再在 plugins.entries 里加 acpx 的配置:
"acpx": {
"enabled": true,
"config": {
"agents": {
"hermes-agent": {
"command": "hermes acp"
}
}
}
}
配完之后,就可以用这个命令"召唤" Hermes 了:
/acp spawn hermes-agent --bind here 召唤之后能干什么
来一段实际的对话流程,比我解释清楚:
你: /acp spawn hermes-agent --bind here
系统: ✅ ACP session spawned, bound to this conversation
你: 帮我读一下 /home/agent/project/main.py 然后优化它
→ 这条消息直接发给 Hermes(不是 OpenClaw)
→ Hermes 用它的 read_file + patch 工具处理
→ 回复直接显示在当前对话里
你: /acp status ← 查看 ACP session 状态
你: /acp model xxx ← 切换 Hermes 用的模型
你: /acp close ← 关闭 session,恢复回 OpenClaw 主 Agent
一句话说清楚:/acp spawn hermes-agent --bind here 就是在当前对话里"召唤" Hermes,让它接管这个对话,直到你用 /acp close 关掉。
相当于你在这个对话里有两个"人格"可以切换——OpenClaw 主 Agent 和 Hermes Agent。
只想把某个任务单独扔给 Hermes,怎么搞?
不想绑定整个对话?也有办法,用 sessions_spawn 就行。
直接在 OpenClaw 对话里说:
用 sessions_spawn 把这个任务发给 hermes-agent:帮我查下今天北京的天气发给我或者更明确地指定参数:
用 sessions_spawn 工具发起一个 acp 会话,agentId 是 hermes-agent, mode 是 run,任务是:"帮我查下今天北京的天气发给我" 这个方式的效果是:OpenClaw 在后台启动一个 Hermes ACP session,把任务丢给它,Hermes 完成后把结果返回到当前对话,session 自动关闭。全程不绑定当前对话,干完即走。

小结
两种用法各有场景:
• 想让 Hermes 接管整个对话、持续处理一类任务 -> /acp spawn --bind here
• 只是临时派单个任务给 Hermes、不想切换主控 -> sessions_spawn
说实话,我觉得 Hermes 最有意思的地方还是那个 Skill 自动固化机制。OpenClaw 生态里目前还没有类似的东西,两者真的是互补关系而不是竞争关系。有空可以专门写一篇测一测,看 Hermes 攒出来的 Skill 质量到底怎么样。
有遇到配置问题的,评论区见。
夜雨聆风