20 min · 一张成本账单、两种组织形态、三个失败模式
🎒 预备知识:完成上一课「A8 RAG 与检索」(零基础入口:第 0 课)
① 隔离:别让中间产物污染主线。子任务会产生大量中间内容——搜索结果、试错日志、 被否决的草稿。全堆在主窗口,主线任务的有效注意力被稀释(A5 的账单视角)。 子 agent 用完即弃,只回传结论——本质是把 A5"蒸馏不搬运"做成了组织结构。
② 并行:广度搜索的天然形态。"调研三个竞品"拆三个子 agent 同时跑, 墙钟时间 1/3。Anthropic 的多 agent 研究系统就是典型:lead(主持)agent 拆解方向 → 并行 search 子代理 → 综合(见课后一手源)。
③ 专门化:不同人格/工具集/温度。检索代理用低温度+搜索工具, 写作代理用高温度——单 agent 里切换人格不如拆开干净。
单 agent 完成"调研 3 个竞品":
1 条上下文 × 12 轮 ≈ 12 份历史成本
编排者 + 3 子代理:
主 agent:1 轮派发 + 3 轮逐个收结论 ≈ 4 份历史
子代理:各 4 轮 × 3 份独立历史 ≈ 12 份历史
额外:任务描述 ×3 + 结论回传 ×3 ≈ +2 份
≈ 18 份(粗估),且主/子不能共享缓存前缀(system 不同)
结论:token 通常涨 30–100%,换隔离与并行
这笔账什么时候划算:中间产物巨大(搜索结果几千 token 一轮)、任务可并行、 或子任务需要不同配置。什么时候不划算:任务本身 5 轮内能做完——拆了纯亏。
| 形态 | 怎么运作 | 例子 | 关键设计点 |
|---|---|---|---|
| 编排者-子智能体 | 主 agent 派任务、收结论、做汇总;子 agent 独立上下文用完即弃 | Anthropic 研究系统 | 任务描述要自包含(子 agent 看不到主对话);结论必须带证据 |
| 交接 handoff | 整个会话转给更合适的 agent,历史随会话走 | 客服:通用 → 退款专员 | 交接时附上下文摘要,别让用户重述 |
实现侧(OpenClaw):子 agent 走独立 lane 并发隔离(并发数可配), 主会话串行不被阻塞;Web 端甚至检测 `[agent] delegat` 输出给用户显示"🛠️ 制作中"(正课 L17 附近)。
① 误差传播。子代理幻觉了一条"竞品定价 299 元",主代理当事实写进报告—— 主代理无法分辨子代理结论的真伪。对策:验收协议——子任务回传必须带 结论 + 证据 + 引用("定价 299 元,来源:对方官网价格页,抓取于 14:02"), 主代理对关键结论抽查证据。
② 任务描述丢失上下文。"去查一下那个品牌的定价"——哪个品牌?子 agent 看不到主对话。 任务描述必须自包含:品牌全名、查什么、输出什么格式、时间范围。
③ 结果冲突无人裁决。两个子代理给了矛盾的结论,主代理和稀泥或随机选。 对策:编排者的汇总提示里显式写"若结论冲突,列出分歧与各自证据,不要擅自取舍"。
坑 1:为了"更强"而拆。推理能力不随 agent 数量增加——拆分解决隔离与并行, 不解决智力。难题该换模型或加反思(A10 模式 4)。
坑 2:没有验收协议就并行。回传自由文本,主代理又要一轮理解——隔离的 token 又赚回去了。 回传格式定死(结构化,A7)。
坑 3:子代理共享可变状态。两个子代理同时写一个文件——并发问题的老朋友。 子任务之间要么无共享,要么由编排者分发和回收。
三个场景判断拆/不拆并算账(token 与收益):① 一篇文章三个角度的资料搜集; ② 修一个 bug;③ 客服系统里退款、技术支持两类请求。 再答:如果拆①,给子代理的任务描述和回传格式各怎么写?发到对话里我批改。
一手源:Anthropic · How we built our multi-agent research system。