乐于分享
好东西不私藏

OpenClaw 搭档 HermesAgent,双Agent联动怎么玩

OpenClaw 搭档 HermesAgent,双Agent联动怎么玩

最近老有人来问我这个问题: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-agent
pip 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 质量到底怎么样。

有遇到配置问题的,评论区见。