每个人都想构建一个 AI Agent 团队。演示效果看起来令人难以抗拒:一个 Agent 进行研究,另一个编写代码,第三个运行测试。但大多数这类系统都有一个共同的秘密:它们很脆弱。在五分钟的演示中表现完美,但在实际调查中却会崩溃。失败点很少在于语言模型的推理能力或集群中 Agent 的数量,而是在于它们之间的空间。多 Agent 系统在协作层面(collaboration plane)失效。
监督者陷阱
默认架构简单得诱人。一个监督者 Agent 接收目标,将其拆分为子任务,并委派给执行 Agent。执行者执行任务,返回结果,然后监督者将所有内容缝合在一起,形成最终答案。如果你只是在总结十篇文章、转录音频文件或从一百个统一的网页中提取数据,这种模式没问题。这些任务是独立的,它们不需要反馈。
复杂的调查则完全不同。当一个 Agent 发现令人惊讶的发现时,整个工作的方向可能都需要转变。如果系统没有结构化的方式来广播这种转变,其他 Agent 就会继续朝着错误的方向前进。你最终得到的是一堆平行的独白,而不是一场对话。监督者变成了瓶颈,而不是协调者。
协作失败时会丢失什么
当调查深入时,你需要的不仅仅是最终答案。你需要知道谁在何时知道了什么。你需要追踪是哪个发现驱动了工作的方向。你需要理解为什么一个 Agent 在两小时前改变了计划。如果没有协作层面,这一切都是不可见的。你只有日志。日志是按时间顺序排列的噪音。它们记录了 Agent C 突然开始分析数据库事务而不是 API 调用,但它们并不解释原因。你可以看着它发生并进行猜测。
想象一下安全事件响应。Agent A 仔细研究服务器日志,并得出结论:入侵并非始于此处。它将输出返回给监督者。被分配分析网络流量的 Agent B 却从未看到该结论被框架化为一个“被拒绝的假设”。由于其原始任务描述仍将服务器视为主要嫌疑对象,Agent B 浪费了另一个周期在同样的日志中寻找指纹。系统为同样的工作付出了两次代价,却没能从第一次运行中学习到任何东西。
协作层面不等于记忆
协作层面不仅仅是存放事实的记忆桶。记忆存储信息,而协作状态(collaboration state)存储的是进行中的工作。装满文档的向量数据库为 Agent 提供参考资料,但它不会告诉 Agent X,Agent Y 当前正在测试一个会让 Agent Y 当前任务变得多余的假设。记忆是静态上下文,协作状态则是行动的实时地图。
如果你混淆了这两者,你构建的系统虽然可以检索公司手册的每一段,却无法告诉你另一个 Agent 是否刚刚证明了你当前任务的无关性。
共享状态的五个桶
一个真正的协作层面需要五个特定的桶。
Claims。这些是 Agent 正在测试的活跃假设。在欺诈调查中,一个 Claim 可能类似于“异常情况与周末的批处理作业相关”。每个 Agent 都应该能够看到哪些 Claims 是开启的,哪些正在被测试,以及谁拥有它们。如果没有
