深色模式
16 · 编排者-工人模式
最实用的多 Agent 架构
📚 系列导航:这是《Agent 开发进阶》的第 16 篇(共 24 篇)。上一篇你用判据得出了拆或不拆的结论;这一篇给"该拆"的你第一个架构——编排者-工人,覆盖 80% 需求的主力模式。下一篇:17 · 移交与通信。
决定拆之后,第一个问题是拆成什么形状。别急着画网状图,先看最朴素的:一个编排者派活,N 个工人干活,结果汇回来——Claude Code 的子代理就是这个套路。好用的原因不玄乎:控制权始终在编排者手里,出了问题知道找谁。但我第一次搭照样翻车:工人把全过程日志一股脑交回,编排者上下文被撑爆。这一篇只干一件事:把这个模式的四个关键件——消息流、任务简报、结果汇总、并行管理——逐个装配到位。
看完这一篇,你会拿到:
- 编排者-工人消息流分工图:谁持有什么上下文
- 可复用的任务简报模板:目标/边界/输出格式三件套
- 并行 fan-out 的最小伪代码和依赖处理原则
- 跑通的"研究员×3 + 主编汇总"并行报告 agent
01 结构与消息流:谁持有什么
编排者持有全局上下文:用户诉求、任务全貌、各工人进度;工人只拿一份任务简报,在干净的独立上下文里干活,交回摘要与结论。好比装修工头和水电师傅:工头懂全局但不砌墙,师傅只管自己那面墙,干完汇报验收,不用知道隔壁卫生间的方案。这就是上下文隔离:工人不被全局稀释,编排者不被细节淹没。
落地守住一条:工人之间不直接通信,一切经过编排者——消息流成星形,调试才追得动。
💡 一句话总结:编排者管全局、工人管执行、消息走星形——三条守住,这个模式就不会散架。
02 任务简报:目标、边界、输出格式
工人跑偏的第一原因是简报太简略。"调研竞品"四个字派给三个工人,会收回三个方向的报告。三件套长这样:
yaml
goal: 调研竞品 A 近一年的定价模式变化
scope: 只看官网与公开报道;不做主观推测;不碰竞品 B/C
output: markdown 表格(方案/价位档/来源链接)+ 3 句结论写完自测:换个人读,理解会不会不一致? 会就继续补。三件里边界最常被省,也是跑偏重灾区——工人不知道什么"不该做",就会用想象力填空。
💡 一句话总结:简报写到"换个人也理解一致"才算完——目标给方向,边界防跑偏,格式保证能汇总。
03 结果汇总:只收摘要,不收全量
工人干活会产生大量中间过程:搜了什么、试了什么、想了什么。全交回编排者,等于把上下文隔离的收益原路退回。纪律:工人只返回结论 + 关键证据 + 置信度,全过程日志落盘,需要再查。我给工人摘要设的上限是 500 字——够汇总用,不至于撑爆。汇总端还要做一致性检查:三个工人的结论可能互相矛盾,要么裁决,要么标注分歧上报,别悄悄挑顺眼的。
💡 一句话总结:摘要进上下文、全量落磁盘——工人交作业,不交草稿纸。
04 并行 fan-out 与依赖管理
无依赖的子任务并行派发,有依赖的分批。最小实现(伪代码,接口以所用 SDK 官方文档为准):
python
briefs = [make_brief(sub) for sub in split(task)] # 每人一份简报
results = run_parallel([worker(b) for b in briefs]) # 无依赖 → 同时跑
report = merge_and_check([r.summary for r in results]) # 汇总+一致性检查预期输出:三份 300 字级摘要,合成一份连贯报告。有依赖别硬并行:先跑上游批次,结果注入下游简报。
💡 一句话总结:能并行的并行、有依赖的分批——fan-out 赚的是总耗时,别把依赖跑乱。
05 动手:研究员×3 并行 + 主编汇总
任务:实现一个报告 agent——把"某主题调研"拆成三个子角度,各写一份三件套简报,并行派给三个研究员;主编(编排者)收摘要后合成一份报告。同一主题再跑一个单 agent 版作对照。
验收标准:三个工人确实并行(看时间戳);每份摘要 ≤500 字;合并报告结论连贯无矛盾;与单 agent 版对比耗时和覆盖面,拿到两组数据。
两种结果都正常:并行版更快更全——拆分和简报到位,把简报模板固化复用;若汇总混乱或互相矛盾——多数是边界没写清,回 02 补 scope 再跑一轮,这本身就是最有价值的调试。
06 小结
你现在应该能:画出编排者-工人的消息流、写出三件套任务简报、用摘要纪律控住上下文、跑通一个并行 fan-out 任务。
下一篇 17 · 移交与通信:编排是任务外包,还有一种关系是控制权转移——客服转专家式的交接,工程做法完全不同。
📎 实战案例
一个团队的工人把全过程日志原样交回,单份 8000 字,编排者收三份就被撑爆。改成工人只交「结论+证据」(每份 ≤500 字)、简报补齐三件套后,并行研究员加主编汇总才做到连贯——跑偏的第一原因从来是简报太简略。
踩坑
- 我的工人曾返回全过程日志,单份 8000 字,三个工人一收编排者就爆——摘要上限 500 字从此是铁律。
- 简报只写一句"调研竞品",三个工人交回三个方向,返工一整天——三件套是纪律不是建议。
- 我让工人之间直接互发消息"提效",出错后追了 4 小时才理清消息序——星形拓扑不是低效,是可调试。