博文

Hermes 多Agent团队协作 用固定的脚本 实现跨Agent通信

前言 从 Openclaw 到 Hermes, 我多次尝试过 多Agent团队协作. https://crazypeace.eu.org/search?q=%E5%A4%9Aagent 很多次 跨Agent通信 出问题, 而且出错的行为是不确定的. 也就说, 同样的 prompt / agent .md文件, 可能这次没问题, 但再来一次就有问题. 最近的一次是使用 Hermes , 而且我已经提前 让Ta修改自己, 有了类似 openclaw 那样把 agent 绑定到 telegram group topic 的功能 . 使用过程中,  有1次 agent-design 没有向 agent-watch 发消息, 而是回复在了自己的topic内 有2次 agent-design 向 agent-watch 发消息时, 没有按消息规范的文本格式. https://www.youtube.com/watch?v=TBmbAcV6Gis 思路 从 SOUL.md 文字描述的层面上, 一个足够智能的"人"或"模型", 应该是能明白我想要的效果. * 本次实验前的 SOUL.md 已经被覆盖了, 可以参考我在Openclaw上面的配置文件. https://github.com/crazypeace/openclaw-multi-agent-cooperate 但是, 看起来目前的模型 ( mimo-v2-pro 2026-4-20 ) 在团队协作方面还不符合我的理想中的"智能". 我努力了很多不同的形式, 最终选择了一个傻傻的笨办法: agent只需要知道自己在一个团队中工作, 团队还有哪些合作的agent. agent不知道团队在 telegram group中工作. agent不知道团队其它agent绑定了什么topic. 当agent要向其它agent发团队内消息时, 调用指定的脚本. 在脚本内, 用代码写好使用什么telegram bot token, group id, topic id. 假设这个脚本是 /root/.hermes/profiles/agent-watch/scripts/send_to_agent-design.sh 那么 agent-watch 这样使用  scripts/se...

Hermes-agent 在Telegram group电报群组中 使用多Agent协同完成任务

图片
前言 与 openclaw 不同, hermes 在系统框架中没有设计agent 之间交流(往session里发消息)的方法. 正好  telegram 支持了 bot 之间发消息 . 那我们就让 hermes 的 多agent 团队利用 telegram 来沟通 思路 再加上之前已经实现了 多Agent 绑定telegram bot 我们尝试建立一个多Agent团队进行协作 部署 Hermes-agent 系统 完成 安装 Hermes-agent 设置了模型 设置了telegram渠道 设置了 允许哪个 telegram userid 使用 以上过程略. 建立 telegram group 和 bot 和 agent 参考 这一篇教程 , 把 telegram group, bot 都设置好, 并测试 bot 之间可以看到消息. 过程略. 假设 这个telegram group 的 id 是 -1003918964882 假设 这些bot 的username  和 token 是 @CrazyAgentWatchBot 1234567890:AAHkMpXv2nQrWsYd8bJtLfCeUo9GiN1KmZw @CrazyAgentDesignBot 2345678901:AABxRqNj5vTgKhEa3cWmYsPdFu7LiOz4Xbn @CrazyAgentCodeBot 3456789012:AAEvNuGz3tFwBqXk7yRmJcSh5OaDpI8LlTx @CrazyAgentTestBot 4567890123:AAHkMpXv2nQrWsYd8bJtLfCeUo9GiN1KmZw 参考 这一篇教程 , 把新的agent建立, 并和bot绑定. 过程略. 假设 这些agent是: agent-watch agent-design agent-code agent-test 建立多agent团队 和默认 agent hermes 对话 组建一个agent协作团队, 利用已经存在多个agent. 设置agent的配置文件, 以及agent之间的协作关系 组成团队的agent是: agent-watch, agent-design, agent-code, agent-test 1号 agent 名称 = agent-watch...

在 Hermes 多 Agent 协作任务时 telegram group 用 topic 限制 agent 接收消息

图片
前言 在 Hermes 多 Agent 协作任务时, 发现agent有可能在自言自语时, 写了其它agent的bot的username, 触发了其它agent的响应. 如下图所示 实践 我尝试了用负面 prompt 限制 但, 效果不好 我想到 openclaw 是把telegram group 的 topic 绑定到 agent 的. 这样 agent 在自己的 topic 里自言自语的内容 是不会干扰其它 agent 的. 所以, 我让 hermes 给自己开发这个功能 我有一个 telegram group, 建立了topic,  我希望这个 telegram group中, 只有 某个 topic 里的消息 被某个 agent 接收 在进一步的讨论中, 确认了一些细节 agent 与 topic 一对一 agent 的自言自语也输出到 指定的 topic 中 最终效果是 每个 agent 的 config.yaml 有如下 配置项 telegram:   topic_id: 100  # agent 只收发 topic 100 的消息 受波及的, 在agent团队的 prompt 中, 增加 发给其它agent的消息需要指定topic发送. ======== update Github https://github.com/crazypeace/hermes-agent/tree/feat/agent-topic-binding ======== 想看更多 《Hermes-agent 修改自己代码的能动性挺强的》 《Hermes-agent 在Telegram 使用多Agent 绑定不同的telegram bot》 《Hermes-agent 在Telegram group电报群组中 使用多Agent协同完成任务》

关于 Hermes 多 Agent 共用 Nous Portal 账号 引起 429 Too Many Requests 的问题

图片
前言 在 Hermes 多 Agent 协作任务时, 我只有一个Nous Portal 账号,  而这些 agent的 gateway 是独立的, 所以有可能在短时间内集中请求API, 被 Nous Portal 返回  429 Too Many Requests 错误码. 思路 在一个API请求完成后, 再开始下一个请求? 用一个单独进程控制 API 请求的速率? Hermes (via mimo-v2-pro model) 给了我一个更好的实施方案 用 flock 文件锁 + 状态文件就够了: ~/.hermes/api_rate_limit  →  内容: 上次请求的时间戳 Gateway 想调 API 时:   flock(api_rate_limit.lock)     read(last_time)     if now - last_time >= interval:       write(now)           ← 更新时间戳       unlock       → 发 API 请求     else:       wait_time = interval - (now - last_time)       unlock       sleep(wait_time)       → 重试 不需要额外进程,每个 gateway 自己在调 API 前检查就行。所有 agent 共享同一个文件,flock 保证互斥读写。 最终我用了上面这个方案. 效果不错. ====== 后记 对比 openclaw, 所有agent都在一个openclaw系统中, 你可以看到是在一个 config.json 中定了多个agent 的定义. 所以这些 agent 天生就接入同一个 model provider, 当使用同一个 OAuth 账号时, 当然就可以控制全局...

关于 Hermes 多 Agent 共用 auth.json 涉及 更新 api key 的问题

图片
前言 Hermes-agent 使用 Nous Portal 提供的免费 小米模型, 是用 OAuth 的方式登录的. 当我们 配置多agent , 又想使用同一份 OAuth 时, 会遇到 更新 api key 的问题 有2种解决方案 1.  默认 agent hermes 维护 auth.json,  profile下面的 agent 只管用 auth.json 详细描述如下: 把 默认 agent 的 auth.json 往 profile下面的 agent 都做一份软链接 symlink 默认 agent hermes 维护 auth.json, 如果快过期了,  hemres 去自动续期 profile下面的 agent 只读里面的 api key 来用, 也不管自动续期的事 * 要实现 不触发自动续期, 需要修改 hermes 的代码. (当然你可以让Ta自己改) 缺点是 默认 agent hermes 你过一会儿要用一下, 这样才能触发 auth.json 自动续期. 2. 每个 agent 的自动续期触发错开 把 默认 agent 的 auth.json 往 profile下面的 agent 都做一份软链接 symlink 每个 agent 维护 auth.json 自动续期的提前量 是可配置的 * 要实现 自动续期的提前量 写到环境变量中,  需要修改hermes代码 (当然你可以让Ta自己改) 所有agent ( 包括 默认 agent 和 profile 下面的 agent ) , 这个自动续期提前量都不同, 并错开一段时间.  如: 默认 agent 提前 1800 (30分钟) agent-watch 提前 1850  agent-design 提前 1900  agent-code 提前 1950  agent-test 提前 2000  ======== update  github  https://github.com/crazypeace/hermes-auth-json-extend  ======== 还想继续看 如何得到一个安全又好用的主密码 Hermes-agent 在Telegram 使用多Agent 绑...

Hermes-agent 在Telegram 使用多Agent 绑定不同的telegram bot

图片
基础知识 openclaw 是整个系统用一份配置文件 config.json , 多 agent 是写在这份配置文件里面的. 官方文档 https://docs.openclaw.ai/concepts/multi-agent Hermes-agent 的多agent方案和 openclaw 不一样. 每个 agent 都有一份自己的 config.yaml 官方文档 https://hermes-agent.nousresearch.com/docs/user-guide/profiles openclaw 的 tui 里面可以用 /agent 命令切换 agent hermes 是为新agent直接生成了一个命令行的"命令", 就像原本的hermes 命令一样使用. 比如, 你建了一个新的 agent/profile hermes profile create agent-watch 那么: 你想配置模型 agent-watch model 你想设置 YOLO 模式 agent-watch config set approvals.mode off hermes 的每个agent (或者说 profile) 都有自己的 完整运行环境. TA们只共享代码逻辑. 每个agent 有自己的 .env, SOUL.md, config.yaml 所以, 每个agent 有自己的 telegram bot token 准备 telegram bot 需要(向 @botfather 申请)若干个 telegram bot (本文以4个bot为例) 注意, 不包括 hermes 默认 agent 绑定的那个 telegram bot (如果有的话) 以上过程略. 保存好这些bot 的username  和 token , 假设是 @CrazyAgentWatchBot 1234567890:AAHkMpXv2nQrWsYd8bJtLfCeUo9GiN1KmZw @CrazyAgentDesignBot 2345678901:AABxRqNj5vTgKhEa3cWmYsPdFu7LiOz4Xbn @CrazyAgentCodeBot 3456789012:AAEvNuGz3tFwBqXk7yRmJcSh5OaDpI8LlTx @CrazyAgentTes...

用 Hermes-agent 的 LLM WIKI 技能 做一个 233boy 脚本知识的 WIKI 用 telegram bot 提供用户使用界面

图片
思路 用 Hermes-agent 的 LLM WIKI 技能 做一个 233boy 脚本知识的 WIKI  用 Hermes-agent 的 API Server 功能提供外部调用 用 telegram bot 在群组中工作 基础知识 Hermes-agent 的 LLM WIKI 技能 官方文档 https://hermes-agent.nousresearch.com/docs/reference/skills-catalog Hermes-agent 的 API Server 功能 官方文档 https://hermes-agent.nousresearch.com/docs/user-guide/features/api-server 基本框架 hermes 的 LLM WIKI 技能可以这样使用: /llm-wiki ingest <学习到WIKI中>   /llm-wiki query <分析什么问题> hermes 的 API Server 可以提供一个 OpenAI 接口. 那么上面的操作可以转换为这样: curl -s http://127.0.0.1:8642/v1/chat/completions \   -H "Content-Type: application/json" \   -d '{"messages": [{"role": "user", "content": " /llm-wiki ingest <学习到WIKI中> "}]}' curl -s http://127.0.0.1:8642/v1/chat/completions \   -H "Content-Type: application/json" \   -d '{"messages": [{"role": "user", "content": " /llm-wiki query <分析什么问题> "}]}' 接下来就是用 telegram bot 把 ...