Sub-agents(子 Agent 编排)
本条目是「Loop Engineering」的第 5 部分,对应学习清单条目 6.1.5。
前置依赖:Automations、Worktrees、Skills、Connectors 为以下铺垫:State
一、核心观点
Sub-agents(子 Agent 编排) = 让「写的人」和「查的人」分开:Maker 写代码,Checker 独立验,消除「自己改作业自己打勾」的自评偏差。
没有它,一个 Agent 既当运动员又当裁判,90% 的概率它会觉得自己写得贼好——然后把你仓库改崩。
二、定义与原理
Sub-agent 是 Loop 内被委派专项任务的独立 Agent 实例,往往带自己的上下文窗口(隔离!见 Worktrees 思想)。三种经典编排模式:
- Maker-Checker(创造者-检查者):一个生成、一个独立审查,不能是同一个。
- Supervisor-Worker(主管-工人):主管拆任务、动态派给工人。
- Pipeline(流水线):A→B→C 接力,每段只管一环节。
graph TD Main["主 Agent / Loop"] --> M["Maker 生成代码"] Main --> C["Checker 独立审查"] M --> C C -->|通过| OK["✅ 合并"] C -->|打回| M Main --> S["Supervisor 拆任务"] S --> W1["Worker 1"] S --> W2["Worker 2"]
为什么必须分离:自评是 LLM 最不可靠的能力之一。让写的人和查的人同一颗脑子,等于考试交白卷还给自己打满分。Anthropic 在《Building Effective Agents》里专门把「orchestrator-worker / 多 Agent」列为高风险高回报模式,强调隔离上下文才能避免「主 Agent 被 20 次中间结果淹死」(anthropic.com/engineering/building-effective-agents)。
三、实践与示例
Maker-Checker 的最小骨架(概念极简):
maker = Agent(role="maker") # 只管生成
checker = Agent(role="checker") # 只管审查,看不到 maker 的「内心戏」
code = maker.generate(task)
review = checker.review(code)
if not review.passed:
code = maker.regenerate(task, feedback=review.comments) # 打回重做关键:Checker 的输入应只是「代码 + 验收标准」,而不是 Maker 的整段思维链——否则它会顺着 Maker 的逻辑自我说服。
四、优势与局限
- ✅ 消除自评偏差:独立审查者让「自己改自己作业」的盲区无处遁形。
- ✅ 隔离上下文:子 Agent 各用各的窗口,主 Agent 不被中间结果淹没(对抗 Context Rot,见 15 个工具调用衰减)。
- ✅ 专长化:审查 Agent、检索 Agent 各司其职,比全能单体更稳。
- ❌ 协同开销:多 Agent 通信本身吃 token、吃延迟,拆太碎反而慢。
- ❌ 无全局视野:Worker 各管一段,容易「局部最优、整体拉胯」——需要 Supervisor 兜底。
五、最新研究与企业数据(2024–2026)
- 多 Agent 是「高风险高回报」:Anthropic《Building Effective Agents》(2024-12) 把 orchestrator-worker 模式单列,提醒它比单 Agent 强但更易失控,需配套验证(anthropic.com/engineering/building-effective-agents)。
- 隔离上下文的实证收益:LangChain Deep Agents 把长任务委托给隔离子 Agent,主 Agent 只收结论而非 20 次工具调用的中间过程,直接缓解 Context Rot(langchain.com blog)。
- 关于「Maker-Checker 相比自评能降低多少缺陷率」的量化基准,缺少一手对照——(来源待核实:若有 multi-agent vs single-agent 的缺陷率对比实验,此处应引用)。
六、学习资源
- Anthropic (2024-12)《Building Effective Agents》—— orchestrator-worker 模式
- LangChain (2026)《The Anatomy of an Agent Harness》—— 子 Agent 上下文隔离
- 进阶:15 个工具调用衰减(子 Agent 也逃不过上下文腐烂)· Worktrees(隔离的物理基础)
核心要点
- 一句话:Sub-agents = 写的人和查的人分开,消除自评偏差。
- 三模式:Maker-Checker / Supervisor-Worker / Pipeline。
- 铁律:Checker 绝不能是 Maker 自己;输入只给「代码+标准」。
- 收益:隔离上下文 = 主 Agent 不被中间结果淹没。
参考来源(一手链接 · 可溯源深挖)
- Anthropic (2024-12)《Building Effective Agents》:anthropic.com/engineering/building-effective-agents
- LangChain (2026)《The Anatomy of an Agent Harness》:langchain.com/blog/the-anatomy-of-an-agent-harness
速记卡(面试闪卡)
Q1:一句话讲清「Sub-agents(子 Agent 编排)」到底是什么? A:Sub-agents 把写代码的人和审查的人分开,用独立子 Agent 消除自评偏差。
Q2:一、核心观点 —— 怎么理解? A:像考试不能自己改自己卷子:一个 Agent 既当运动员又当裁判,90% 概率觉得自己写得贼好然后改崩仓库。Sub-agents 让”写的人”(Maker)和”查的人”(Checker)分开,消除自评偏差。
Q3:二、定义与原理 —— 怎么理解? A:像三种分工模式:Maker-Checker(生成与审查必须分开)、Supervisor-Worker(主管拆任务动态派工人)、Pipeline(A→B→C 接力)。子 Agent 往往带自己的上下文窗口隔离,避免主 Agent 被中间结果淹没。
Q4:三、实践与示例 —— 怎么理解?
A:像最小骨架:maker.generate(task) 产出代码,checker.review(code) 独立审查,不过就打回重做。铁律:Checker 输入只给”代码+验收标准”,不看 Maker 的思维链,否则会顺着逻辑自我说服。
Q5:四、优势与局限 —— 怎么理解? A:像双刃剑:优势是消除自评偏差、隔离上下文(主 Agent 不被淹没)、专长化(审查/检索各司其职);局限是协同开销(通信吃 token 吃延迟)、无全局视野(Worker 各管一段需 Supervisor 兜底)。
Q6:核心速记主线有哪些?
- 核心:写查分离,消除 LLM 自评偏差
- 模式:Maker-Checker / Supervisor-Worker / Pipeline
- 铁律:Checker 绝不能是 Maker,只看代码+标准
- 权衡:隔离上下文抗腐烂,但协同有开销需兜底
口诀 A:写查要分开,自评最不可靠; Maker 生成完,Checker 独立挑; 窗口各隔离,主脑不被泡; 拆太碎反慢,Supervisor 兜底好。
相关链接
- 系列清单:Agent 方法论与产品思维学习路线图
- 上一层级:Loop Engineering · 索引
- 同系列:Connectors · State · 15 个工具调用衰减