智能体入门课
multi_agent进阶90 分钟

8

什么时候需要不止一个大脑

参考:来源 F · Gulli 第 7 章

学完你能做到

  • 说清"拆成多个 agent"要用专业化收益换什么代价
  • 区分共享状态和消息传递两种协作方式,各自的风险点
  • 知道多 agent 系统出错时,应该先查哪里

m6 的已经是"多个模型协作"的一种形式,但那只是其中一种拓扑——一个头,几个手下,层级分明。

真实的多 agent 系统经常没有这么整齐:几个 agent 平级协作,谁都不完全听谁的。这一节讲这种更松散的协作该怎么设计、怎么出错、怎么查。

为什么要拆成多个 agent

先建立直觉

一个人身兼产品经理、程序员、测试、客服四个角色,脑子里同时装着四套完全不同的知识和判断标准,很容易顾此失彼。

拆成四个专人各管一块,每个人的脑子更清爽,但多了"开会对齐"这道工序

两种协作方式

共享状态 · 黑板模式 共享的黑板 A B C 谁都能读、谁都能写 消息传递 A B C 消息 消息 只跟明确的对象说 很多实际系统是两者混用:共享一份基础信息,关键动作用消息明确通知
共享状态:大家看同一块黑板,信息天然流通,但容易互相覆盖。消息传递:各自独立,边界清楚,但协调本身要花代价。
方式优点风险
信息天然共享,不用互相通知;新加一个 agent 很容易接进来谁都能改,容易出现两个 agent 同时改同一处、后写的把先写的覆盖掉
职责边界清楚,每个 agent 的输入输出都是明确的协调本身要花和时间;消息设计不当会互相等待、卡住

调试多 agent 系统最容易踩的坑

这一段和 m7 讲的是同一个问题在多 agent 场景下的放大版。单个 agent 出错,你至少知道是它自己的问题;多个 agent 出错,第一个问题永远是"到底是哪一个的锅"。

几种最常见的坑:

  • 上游的数据没传到下游。 A 算出来的结果,B 用的时候发现是空的或者是旧的——往往不是 A 算错了,是传递环节丢了数据。
  • 上游的结论被下游悄悄改写。 A 判断"这个有风险",走到 C 那一步,结论变成了"正常"——中间某个环节把判断覆盖了,却没有留下痕迹。
  • 信号没有门控就被当成结论。 某个 agent 输出了一个数字或者一个标签,后面的环节直接拿它当定论使用,没有校验这个数字本身合不合理。
  • 旧数据被当成新数据。 某个 agent 缓存或复用了之前的结果,而系统以为这是当前这一轮重新算出来的。

常见误解

多个 agent 一起干活,肯定比一个 agent 更聪明、更靠谱。

实际上

不一定。是真实存在的成本——协调失败带来的问题(数据没传到、结论被覆盖),在单 agent 系统里根本不会发生。

能用一个 agent 解决的,先别拆。 拆分应该是"专业化收益明显大于协调成本"之后的选择,不是默认做法。

课堂练习

20 分钟
  1. 给一个需求:"审核一批论文投稿,既要查重复率,又要查格式规范,还要写审稿意见。"让学生判断:这个任务该拆成几个 agent?为什么?拆分点在哪?
  2. 追问:如果拆成三个 agent(查重、查格式、写意见),它们之间该用共享状态还是消息传递?假设"查重"和"查格式"的结果都要给"写意见"用,但两者互相不需要知道对方的细节。
查看参考答案

第一题:三块知识确实互相独立(查重是技术比对,查格式是规则检查,写意见需要综合判断和语言表达),专业化收益明显,值得拆分为三个 agent。

第二题:消息传递更合适。 查重和查格式各自完成后,把结果作为明确的消息发给"写意见"那个 agent,不需要共享一块大黑板——它们的中间过程互不相关,共享反而增加互相干扰的风险。

案例推演:一份研究报告真的需要五个 Agent 吗

团队设计“经理、搜索员、阅读员、写作者、审稿人”五角色。若只是把同一材料依次传递,会增加延迟与信息损失;只有可并行专长或独立验证才可能值得。

本节追问:多 Agent 带来的信息增益能否覆盖协调成本? 先不要急着看结论。沿着下面四步,逐项区分输入、决策、证据和失败信号。

每一步都要回答:看到了什么?为何这样决定?怎样证明? 1 测单体基线 先让一个 Agent 使用全部工具完成任务 观察 → 决策 → 留证据 2 寻找分工 只拆可并行、上下文隔离或需独立视角的子任务 观察 → 决策 → 留证据 3 定义协议 规定输入输出 Schema、超时和冲突处理 观察 → 决策 → 留证据 4 评估收益 比较覆盖率提升与 token、延迟、协调错误 观察 → 决策 → 留证据 完整案例链:不是记住名词,而是能够用证据作出下一步决定
四步案例推演。手机上可左右滑动查看;每个箭头都代表一次需要证据支撑的状态转换。
阶段本步要做的决定什么算证据最常见的失败
测单体基线先让一个 Agent 使用全部工具完成任务有质量、成本、耗时和失败样本未经比较直接上多 Agent
寻找分工只拆可并行、上下文隔离或需独立视角的子任务每个角色拥有不同输入、工具或评价标准只给角色换名字,能力完全相同
定义协议规定输入输出 Schema、超时和冲突处理交接可机器校验且有负责人Agent 用长篇自然语言相互聊天
评估收益比较覆盖率提升与 token、延迟、协调错误多 Agent 在目标指标上显著胜出只展示一次成功 Demo

阅读方式:先遮住后两列自己回答,再用“证据”和“失败”两列检查理解。

常见误解

把组织架构照搬成 Agent 架构

实际上

可观察症状:角色多、会议多,但没有新的证据或能力。

更可靠的修复:以信息边界和任务依赖设计拓扑,能单体完成就优先单体。

案例工作坊 · 建议真正动手完成

25 分钟
  1. 为研究报告找出两个值得并行和两个不值得拆分的步骤。
  2. 写出搜索员到阅读员的交接 Schema。
  3. 设计单体与多 Agent 的对照评估。
查看参考答案

多 Agent 适合并行探索、专业工具隔离、独立验证和上下文分区。它不是默认升级;协调、共享状态和冲突会引入新失败面。

迁移检查:换一个场景还会不会

以下哪项最能支持拆成两个 Agent?

检查一下

判断"要不要把一个任务拆成多个 agent",最核心的依据是什么?

多 agent 系统里,"结果不对"这个现象最常见的真实原因出在哪?