多 Agent 怎么不打架?
两个 Agent 跑在不同平台上,怎么协作?
协作协议
我们设计了一套协作协议,解决几个核心问题:
防循环:两个 Agent 在同一个 Slack 频道,看到消息都想回复,就会互相触发、无限循环。我们用了四层保护 —— 自我识别、回复深度控制、互斥响应、内容去重。
任务分配:WLB 负责决策和规划,GSD 负责执行和落地。角色清晰,不重叠。
状态同步:收到消息先加
表情,处理完换
。其他 Agent 看到
就知道有人在处理了。
jj-mailbox —— 异步持久化通信
Slack 是实时的,但如果 Agent 掉线了,消息就丢了。
我们设计了一个叫 jj-mailbox 的方案:本质就是一个 Git 仓库里的 JSON 文件系统。每个 Agent 有自己的 inbox 目录,消息写进去、git commit、git push。接收方 pull 之后读取。
好处是:Git 是免费的,自带版本历史,天然可追溯,不需要运维数据库。 对我们这种两个 Agent 的小团队,这是 sweet spot。
目前 jj-mailbox 的消息流和任务流已经验证通过,正在逐步投入生产使用。
GitHub 作为协作枢纽
GitHub 在我们的方案里扮演了多个角色:代码仓库、心跳同步、jj-mailbox 消息通道、协作文档共享。一个免费的 GitHub repo,做了四件事。