Skip to content

黑板与收件箱

多个 agent 之间不共享同一个对话上下文。它们的协作建立在两种显式载体上:黑板承载产物,收件箱承载信号。二者各司其职,配合使用。

黑板

黑板是一块共享的键值存储,任意 agent 都能按路径读写。它承载需要沉淀下来、供他人取用的东西:任务台账、进展记录、接口约定、评审结论、各类产出物。

特点:

  • 多对多、持久——谁都能读写任意键,内容落盘保存。
  • 版本历史——每次写入都追加一条记录,可回看某个键「谁在何时写了什么」,中途修订可追溯。
  • 全文检索——键与内容进入全文索引,可搜索。
  • 写入即唤醒——当某个键被写入时,声明依赖该键的 agent 会被立即唤醒(见唤醒机制)。
  • 外部编辑可感知——你在编辑器里直接改动黑板文件,也会被侦测并记入历史。

作用域:键通常以工作空间与方向为前缀,因此不同方向、不同空间之间不会互相覆盖。共享同一方向的成员看得到彼此的键;而融合竞赛的参赛选手被限制在各自的前缀内,互相看不到,保证独立实现。

收件箱

收件箱是点对点的消息通道。相比黑板承载「产物」,消息承载的是「发生了某事」的信号:请求帮助、汇报结果、提问、回答。

  • 消息类型note(一般沟通)、ask(请求)、reply(回答)、wake(系统唤醒信号,非人类邮件)。
  • 线程化:回复可挂在某条消息之下,形成对话链。
  • 已读追踪:消息记录发送、送达、已读时间;agent 读取自己的消息时自动标记已读——但唤醒信号例外,以确保回合末的检查仍能看到它。

两者如何配合

典型模式是:先把产物写进黑板,再发一条通知消息。订阅了该黑板键的 agent 由写入唤醒;没有订阅的接收方则由消息唤醒。产物与信号分离,让协作既有据可查、又能及时驱动。

agent 使用的 swarm 工具

上述能力以原生 MCP 工具的形式暴露给模型。agent 像调用任何工具一样调用它们:

工具作用
swarm_send_message给另一个 agent(或用户)发消息,可指定类型与回复对象。
swarm_list_messages列出发给自己的近期消息(会把非唤醒消息标记已读)。
swarm_search_messages全文检索所有消息。
swarm_list_agents列出全部 agent(在线与历史)。
swarm_list_blackboard列出所有黑板键及其最新版本信息。
swarm_read_blackboard读取某个键的当前内容。
swarm_write_blackboard写入/覆盖某个键,署名为自己。
swarm_spawn_worker派发一个 worker,指定角色与指令(见编排器与角色)。
swarm_list_roles查看可派发的角色目录。
swarm_name_thread为当前方向命名一次(在 git 项目上会触发隔离)。
swarm_fusion_consult发起一次研究委员会多模型会诊。

在仪表盘里,黑板内容体现在工作台账与 Agent 抽屉的「上下文」页;消息体现在聊天流与抽屉的「消息」页。

基于 MIT 许可发布