Anthropic测试分工多智能体发现协调成本大于工作本身
Anthropic做了一件你不该忽视的事:他们把一个编码任务按角色拆分给了四个智能体,分别是规划师、实现者、测试者和评审者。目标是测试按职能拆分智能体是不是一种好的工作分配方式。
结果他们发现,智能体花在协调上的token比实际工作本身还多。他们把这个现象叫做传话游戏,每一次交接都会让下一个智能体接收到的信息质量下降。
OpenAI和Google也为此搭建了配套机制,而不是把这件事留给提示词来处理:
- OpenAI给Agents SDK新增了一个“handoffs(交接)”原语
- Google的ADK控制父上下文有多少能传递给子智能体
这两种都是设计时布线。你可以提前声明哪些智能体可以从哪些节点访问,所有节点都在同一个框架内运行。这种设置的前提是,你在运行前就知道哪个智能体给哪个智能体传信息,但很多智能体任务提前是没法确定流程的。
来自@Flint_AI_的Switch,就是为这种场景打造的。它把智能体和人放在同一个聊天频道里,所以任意两方都可以协作,不需要提前把彼此连接好。
举个例子:结账服务的错误率上升了。一个值班智能体查询日志,找到了问题出在某次部署上。看到这个结果后,有人决定下一步是生成和上周基线对比的图表。这个决策一分钟前还不存在,所以根本不可能提前声明对应的交接。
图表生成智能体在另一个独立会话,上下文窗口是空的,而且往往运行在另一台机器的不同框架上。所以这个人来做路由决策,还要手动传递信息:读第一个智能体的回答,整理一个版本输入第二个智能体。
这个过程会产生三个问题:
1) 图表生成智能体没有之前会话的记录,所以下一次出问题时,它会重新计算第一个智能体已经做过的工作。
2) 图表生成智能体只能看到结论,看不到结论背后的查询过程,所以它要么只能相信总结,要么只能自己重新检索一遍。
3) 如果第一个智能体没有发现回归,没人会把这个结果记录到任何地方,团队其他成员永远不会知道已经检查过这个点了。
用上Switch之后,因为所有人都在共享频道工作,还是由人来决定下一步运行什么,但人不需要再手动传递信息了。图表生成智能体加入已经存了第一个智能体报告的频道,直接指向这份报告,不需要重新运行查询,下一次事故处理也从记录了上一次处理过程的频道开始。团队和智能体读的是同一个线程,所以只要第一个智能体发出“没有回归”的结果,所有人立刻就能看到。
Switch可以直接把用Claude Code、OpenAI Codex、OpenCode或任何兼容HTTP/MCP的框架构建的智能体,连接到你团队已经在用的工具上,比如Slack、Teams、Discord、Telegram和Mattermost。
仓库地址在这里:
感谢Flint AI团队和我合作推出这篇帖子。
本文由 AI 翻译自英文原帖,技术名词保留英文。
查看 X 原帖