Hermes 多Agent团队协作 用固定的脚本 实现跨Agent通信
前言
从 Openclaw 到 Hermes, 我多次尝试过 多Agent团队协作.
很多次 跨Agent通信 出问题, 而且出错的行为是不确定的. 也就说, 同样的 prompt / agent .md文件, 可能这次没问题, 但再来一次就有问题.
最近的一次是使用 Hermes, 而且我已经让Ta修改自己, 有了类似 openclaw 那样把 agent 绑定到 telegram group topic 的功能.
使用过程中,
有1次 agent-design 没有向 agent-watch 发消息, 而是回复在了自己的topic内
有2次 agent-design 向 agent-watch 发消息时, 没有按消息规范的文本格式.
思路
从 SOUL.md 文字描述的层面上, 一个足够智能的"人"或"模型", 应该是能明白我想要的效果.
* 本次实验前 SOUL.md 已经被覆盖了, 可以参考我在Openclaw上面的配置文件.
但是, 看起来目前的模型在团队协作方面还不符合我的理想中的"智能".
我努力了很多不同的形式, 最终选择了一个傻傻的笨办法:
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/send_to_agent-design.sh "要发给agent-design的消息"
假设这个团队工作的 group id 是 -1003311933525
agent-design 绑定的 topic id 是 168
这个脚本的伪代码像这样
从自己(agent)的.env配置文件中拿到 自己的 bot token按格式构建一个团队间消息FROM agent-watchTO agent-designCONTENT "要发给agent-design的消息"用 telegram bot API 的发消息方法, 参数:bot token = ( 自己的 bot token )group id = ( -1003311933525 )topic id = ( 168 )消息内容 =( FROM agent-watchTO agent-designCONTENT "要发给agent-design的消息" )
结果
这样的效果就好多了
还是一样的任务
开发一个生成随机密码的页面核心功能 参考 https://crazypeace.github.io/xkcd-password-generator/视觉风格 参考 https://onojyun.com/
整个过程中每条消息的格式都正确 (这个当然, 脚本里面固定了), 并且团队间消息也正确地发送到对应的topic中.
看来模型是能够"理解" 把消息发送给另一个团队成员 这样的意思的, 只是在执行的层面上, 这回的方案让模型更好的执行, 不会自己想出一个新奇方法.
Github
* 注意, 不能完全照抄, 应该根据你自己的环境灵活变通
评论
发表评论