AI Agent 工程师课程
程序员进阶版

A6 · Multi-Agent 设计

理解什么时候不应该使用 Multi-Agent,以及必须用时怎么控制隔离、预算与失败

本模块产出:日本电商运营多 Agent、单 Agent 对比报告 · 对应总课表:第 21 周

学前自测

1. 这个模块的学习目标写的是「理解什么时候不应该使用 Multi-Agent」。为什么反着说?

因为 Multi-Agent 是当前最容易被滥用的架构。它增加成本、延迟、调试难度和失败面,而收益在很多场景下并不存在。一个 Agent 加几个工具能解决的问题,拆成五个 Agent 只会让你多一堆协调 bug。面试里能主动说出这一点的候选人,可信度立刻不一样。

2. 单 Agent 的真实瓶颈是什么?什么信号说明该拆了?

主要瓶颈是上下文和工具集膨胀导致模型选错工具、以及不同子任务需要冲突的系统指令。信号是:工具超过二十个后准确率明显下降、或者一个 Agent 的 Prompt 里出现互相矛盾的角色要求。注意「任务复杂」本身不是信号,复杂任务用 Workflow 编排通常比 Multi-Agent 更好。

3. 子 Agent 的预算怎么算?父 Agent 的预算和它什么关系?

必须是父预算向下传播并扣减,不能各算各的。否则一个 Supervisor 派发五个子任务,每个子 Agent 都以为自己有完整预算,实际总花费是五倍。Budget Propagation 是 Multi-Agent 成本失控的头号原因。

4. 什么是递归派发失控?怎么防?

子 Agent 又派发了子 Agent,层层嵌套下去。极端情况是 A 派给 B,B 又派回 A,无限循环烧钱。防的手段是派发深度上限、调用链路径记录(检测环)、以及子 Agent 默认不给派发工具。这是 Multi-Agent 特有的失控模式,单 Agent 的 Max Steps 防不住它。

学习目标

理解什么时候不应该使用 Multi-Agent。

必须用的时候,把隔离、预算传播和部分失败处理做对。

课程内容

  1. Single Agent Limits
  2. Router
  3. Handoff
  4. Supervisor / Worker
  5. Planner / Executor
  6. Researcher / Analyst / Reviewer
  7. Shared State
  8. Isolated Context
  9. Subagent Tool
  10. Parallel Delegation
  11. Result Aggregation
  12. Conflict Resolution
  13. Multi-Agent Eval
  14. Cost Control
  15. Context、Tool、Memory 与 Credential Isolation
  16. Budget Propagation 与 Child Run Lineage
  17. Partial Failure、Circuit Breaker 与 Bulkhead
  18. Fan-out / Fan-in、Quorum 与 Straggler Control
  19. Recursive Delegation / Agent Loop Prevention

隔离与预算传播

Supervisor持有全局预算与 deadline,负责派发与聚合Market Researcher分到 30% 预算超时可丢弃降级Pricing Analyst分到 25% 预算超时可丢弃降级Copywriter分到 25% 预算超时可丢弃降级Compliance Reviewer分到 20% 预算缺不得,必须等到四类隔离,缺一不可Context 只给它这个子任务需要的Tool   只给它这一步用得到的Memory  不共享长期记忆凭据   任务级短期,最容易被漏掉递归派发失控子 Agent 又派子 Agent,层层嵌套极端情况 A 派给 B、B 又派回 A防护:派发深度上限 + 调用链路径记录检测环子 Agent 默认不给派发工具做完先别急着上:跑单 Agent 对照,四个维度比一遍成功率没有显著优势就回退单 Agent,并写清楚为什么
预算必须从父向下扣减,不是每个子 Agent 各算各的。不做传播,一个 Supervisor 派五个子任务,实际花费就是五倍。这是 Multi-Agent 成本失控的头号原因

实施任务

实现日本电商运营多 Agent:

  • Supervisor
  • Market Researcher
  • Pricing Analyst
  • Japanese Copywriter
  • Compliance Reviewer

框架实验

  • 任选 LangGraph Subgraph 或 Mastra Agent / Workflow 组合完成一个实现
  • 对未选框架提交设计评估文档(可选做双实现并配对对比)

动手挑战

先做单 Agent 版本,再做 Multi-Agent 版本,然后诚实比较。

这个挑战的设计意图是让你有机会推翻自己的架构

  1. 用一个 Agent 加全部工具实现同样的电商运营任务
  2. 用五个 Agent 实现
  3. 同一批 30 条测试用例跑两边,测四个维度:成功率、总成本、端到端延迟、代码行数
  4. 如果 Multi-Agent 在成功率上没有显著优势,回退单 Agent 并写清楚为什么

大多数人做完会发现 Multi-Agent 贵三到五倍、慢两倍,而成功率提升有限。这不是失败的实验,这是这个模块最有价值的产出:一份能证明你不盲目跟风的数据。

如果 Multi-Agent 确实赢了,也要能说清赢在哪个具体环节,通常是合规审查这类需要独立视角的子任务。

验收标准

  • 子 Agent Context 隔离
  • Supervisor 不重复派发
  • 子任务可并行
  • 失败子任务可重试
  • Multi-Agent 相比单 Agent 有量化收益,否则回退单 Agent
  • 子 Agent 只获得任务所需 Context、Tool、Memory 与短期凭据
  • 父子 Run、预算、Trace、Artifact 和失败责任可关联
  • 单个子 Agent 超时、失控或失败不会耗尽全局预算
  • 在相同成功率下报告单 Agent 与 Multi-Agent 的成本、延迟和复杂度差异

学后自测

1. 五个子 Agent 里有一个超时了,Supervisor 应该怎么办?三种策略各适合什么?

等到底(适合结果必须完整的场景,但要有全局 deadline)、丢弃并降级(适合可选增强信息,比如竞品分析缺了也能出定价)、重试一次再降级(折中)。关键是这个策略要显式配置在每个子任务上,而不是全局一刀切,因为合规审查缺不得、竞品分析缺得起。

2. 两个子 Agent 给出了冲突结论,比如定价分析说卖 100,合规审查说这个价格违规。怎么解决?

冲突解决必须有明确规则,不能让 Supervisor 靠模型自由发挥。常见规则是优先级排序(合规永远高于定价)、或者升级给人。让模型自己调和冲突,结果不可预测且无法审计。

3. 你的对照实验结论是什么?如果 Multi-Agent 输了,你怎么向团队解释这两周没白干?

没白干的理由是:你现在有数据证明单 Agent 够用,团队不用再花三个月做一个更贵更慢的架构。证伪一个流行方案的价值不低于实现它。 这个回答本身在面试里就是加分项,因为它展示了工程判断而非技术炫耀。

本模块作业

  1. 单 Agent 版本 + Multi-Agent 版本两套实现
  2. 30 条测试用例的四维度对照数据
  3. docs/multi-agent-decision.md:对照报告与架构结论(含回退决定,如果适用)
  4. 隔离测试:Context、Tool、Memory、凭据四类隔离的验证
  5. 递归派发防护:深度上限与环检测

面试考点

这个模块对应面试里的架构判断力考察,是最容易翻车也最容易出彩的一题。

  • 「你做过 Multi-Agent 吗?」:陷阱题。很多人急着展示做过,然后被追问收益时答不上来。正确开局是「做过,而且做了单 Agent 对照,结论是某某场景下不值得」,直接把话题引到你的数据上。
  • 「什么时候该用 Multi-Agent?」:答工具集膨胀导致选错工具、以及子任务需要冲突的系统指令这两个信号。强调「任务复杂」不是信号,复杂任务优先用 Workflow。
  • 「Multi-Agent 的成本怎么控制?」:答 Budget Propagation。讲清不做预算传播会导致五倍成本这个具体后果。
  • 「子 Agent 之间怎么隔离?」:答四类隔离:Context、Tool、Memory、凭据。凭据隔离最容易被忽略,主动提它显得专业。
  • 「一个子 Agent 挂了怎么办?」:答按子任务重要性分级配置降级策略,举合规缺不得、竞品缺得起的例子。一刀切的答案说明没做过真实业务。
  • 加分动作:主动说出递归派发失控这个坑,以及你的深度上限和环检测方案。这个失败模式知道的人不多。

复习与延伸

官方文档与文章

本仓库对应源码

  • packages/contracts/src/agent.ts:父子 Run 关联所需的定义
  • packages/eval-kit/src/evaluate.ts:对照实验的数据采集入口

下一步A7 · A2A、远程 Agent 与平台互操作

On this page