搞完 Hermes 多 Agent 我才发现,这根本不是技术活,是管理活

346 字

搞完 Hermes 多 Agent 我才发现,这根本不是技术活,是管理活

来源类型: 微信公众号文章
日期: 2026-06-02
标签: AI, OpenClaw, 记忆系统, 办公效率, 网络安全, 编程, 大模型
原文链接: https://mp.weixin.qq.com/s/oGXo8psXgP6A24mmKbTGIw

摘要

关注 「林月半子的AI笔记」,设为「星标」我是林月半子,教你用AI干掉90%的重复劳动 当 Hermes 出来的时候,好多人问我多 Agent 之间的协作是怎么玩的。 周末我找了时间自己做了一把实践,原本以为会很顺利,没想到中间翻了好几次车,最后硬是一个坑一个坑填过来的。这篇把完整过程记下来,跟着做,你也能在自己的 Discord 里,看到几个 AI 像同事一样互相接力干活。 但在动手之前,有句话得先讲在前头。协作是能力的放大器,不是补丁。如果单个 Agent 本身是个废柴,拉三个废柴来协作,结果就是三倍的废柴,三个废柴开会,废柴还是废柴。SOUL.md 写细、...

核心内容

关注 「林月半子的AI笔记」,设为「星标」我是林月半子,教你用AI干掉90%的重复劳动

当 Hermes 出来的时候,好多人问我多 Agent 之间的协作是怎么玩的。

周末我找了时间自己做了一把实践,原本以为会很顺利,没想到中间翻了好几次车,最后硬是一个坑一个坑填过来的。这篇把完整过程记下来,跟着做,你也能在自己的 Discord 里,看到几个 AI 像同事一样互相接力干活。

但在动手之前,有句话得先讲在前头。协作是能力的放大器,不是补丁。如果单个 Agent 本身是个废柴,拉三个废柴来协作,结果就是三倍的废柴,三个废柴开会,废柴还是废柴。SOUL.md 写细、skills 配齐、模型选对,把 Agent调教好,这是多 Agent 能跑的前提,不是结果。

好,话撂这儿了,开始正题。

先聊聊 profile,这是整个多 Agent 的基础

要做 Agent 协作,第一步得先把不同的 Agent 建出来。在 Hermes 里,这件事是通过 Profile 来实现的。

profile 其实就是 Hermes 的人格档案。一个 profile 就是一个完全独立的 AI 分身,有自己的 config.yaml、.env、SOUL.md、独立的 memory、独立的 skills、甚至独立的 gateway 进程。

底层实现其实挺朴素,靠一个 HERMES_HOME 环境变量切换根目录,但效果是实打实的隔离。

💡
思维引导

为什么要强调"真隔离"这件事? 因为多 Agent 架构里最怕的就是"一个挂了全挂了"。Hermes 的 profile 是进程级隔离,每个 profile 跑自己的 gateway 进程,互不依赖。即便某一个 agent 挂了,也完全不影响其他 agent 继续干活。

这点和 OpenClaw 是有差别的。用过 OpenClaw 的朋友都懂,它的多身份更多是配置层面的切换,进程还是同一套。

Hermes 这种物理隔离在企业交付场景下是真的香,客户不会因为一个 bot 崩了,整套自动化系统跟着下线。

好,理解了 profile 是什么,我们开始搭建。

Step 1:建三个 Agent,分工明确

这次我准备搭一个三人小组,模拟一个真实的内容生产协作流:

  • 林小墨 (Ink) —— 文案与笔记整理专家
  • 林小探 (Search) —— 搜索与调研专家
  • 林小管 (Admin) —— 任务分发与调度员

这个组合不是随便定的。

它对应着一个完整的"查资料 → 写笔记 → 归档"工作流,而且引入了一个专门的调度 Agent(林小管),让协作路径更清晰。

先建林小墨:

hermes profile create ink --clone
这里我用了 --clone 参数,主要是直接继承 default 的一些配置(模型、API key 等),不用重新配一遍。
🎯
多说一句 --clone 的选择。Hermes 给了三档克隆策略,看场景选:

  • 什么都不加(hermes profile create mybot):空白 profile,连 API key 都要重新配,适合从零搭一个完全独立的 agent
  • --clone(我这次用的):只复制 config.yaml、.env、SOUL.md,记忆和 session 是全新的。这档最适合搭多 Agent——共享模型和 API key,但每个 agent 从干净的上下文开始,互不串味
  • --clone-all:连 memory、sessions、skills、cron jobs 全拷贝,等于整个人"克隆一份",适合备份或者 fork 一个已经有上下文的 agent

多 Agent 协作场景,基本都是 --clone。

执行后的输出长这样:

Profile 'ink' created at /Users/lunaraitalk/.hermes/profiles/ink
Cloned config, .env, SOUL.md from default.
77 bundled skills synced.
Wrapper created: /Users/lunaraitalk/.local/bin/ink

Next steps:
ink setup Configure API keys and model
ink chat Start chatting
ink gateway start Start the messaging gateway

Edit ~/.hermes/profiles/ink/.env for different API keys
Edit ~/.hermes/profiles/ink/SOUL.md for different personality
注意最后几行。ink 直接变成了一个独立的命令,你后面用 ink chat、ink gateway start 就能直接操作这个 agent,不用每次都写 hermes -p ink xxx。这个细节真的贼方便。

然后给林小墨覆盖一个人设:

echo "你是'林小墨',一名专业的文案专家和知识管理助手。你擅长将碎片化信息整理成结构化的 Markdown 格式,并熟练运用 Obsidian 的双链体系。你的回复风格文雅、逻辑严密。" > ~/.hermes/profiles/ink/SOUL.md
我们可以看到一条命令直接继承了 Default 的配置,模型也继承过来了。当然如果你想给每个角色配更合适的模型,每个 profile 独立调一下 config.yaml 就行。

💡
注意左下角的 ink ❮ 标识。Hermes 用 prompt 前缀告诉你当前是哪个 profile 在说话,多 Agent 场景下这个小设计特别救命。

Step 2:接 Discord,为什么不用飞书?

消息平台这块我纠结过一下。先说结论:这次我选了 Discord,没用飞书。

原因很简单,飞书群因为平台的限制,确实不支持 bot 被 @。多 Agent 协作最核心的动作就是"一个 agent @ 另一个 agent 来接力",飞书这条路直接堵死。Discord 在这方面开放得多,也是 Hermes 官方文档里演示最充分的平台。

在 Discord Developer Portal 创建应用的流程网上教程一大把,我就不重复造轮子了。关键是拿到每个 bot 的 token,填进对应 profile 的 .env 文件。

配置完后,启动 gateway:

ink gateway install && ink gateway start
输出:

Installing launchd service to: /Users/lunaraitalk/Library/LaunchAgents/ai.hermes.gateway-ink.plist

✓ Service installed and loa

...(内容截断,完整内容请查看原文)


本页由自动化脚本生成,待人工审核补充