编排模式:监督者、群体与分层 本节摘要:团队常在真正需要「多智能体」之前就够向它。2026 年的框架里反复出现四种编排模式:监督者-工人(supervisor-worker)——中央路由 LLM 分派给专家 Agent,专家彼此不交谈,所有路由经监督者;群体/对等(swarm/peer-to-peer)——Agent 经共享工具面直接交接,无中央路由,延迟更低但更难推理;分层(hierarchical)——监督者管子监督者再管工人(LangGraph 嵌套子图、CrewAI 嵌套 crew),为大规模 Agent 种群而设,代价是运维复杂度;辩论(debate)——并行提案者 + 迭代交叉批判(第 25 节)。
本节摘要:团队常在真正需要「多智能体」之前就够向它。2026 年的框架里反复出现四种编排模式:监督者-工人(supervisor-worker)——中央路由 LLM 分派给专家 Agent,专家彼此不交谈,所有路由经监督者;群体/对等(swarm/peer-to-peer)——Agent 经共享工具面直接交接,无中央路由,延迟更低但更难推理;分层(hierarchical)——监督者管子监督者再管工人(LangGraph 嵌套子图、CrewAI 嵌套 crew),为大规模 Agent 种群而设,代价是运维复杂度;辩论(debate)——并行提案者 + 迭代交叉批判(第 25 节)。2026 年 LangChain 的建议值得关注:用直接工具调用做监督,而非
create_supervisor库——这给你更细的上下文工程控制(你精确决定每个专家看到什么)。Anthropic 的指引更是本节的灵魂:「LLM 领域的成功不在于构建最复杂的系统,而在于构建适合你需要的系统。」决策顺序是:① 单 Agent + 工作流模式(第 12 节)从这里开始;② 监督者-工人(2-4 个专家时);③ 群体(延迟比推理清晰更重要时);④ 分层(仅当监督者上下文预算装不下所有专家描述时);⑤ 辩论(准确率比成本更重要时)。本节用标准库在同一个脚本化 LLM 上实现全部四种模式,跑同一个三意图任务,对比轨迹形状与操作数。读完本节,你应能避免「拓扑优先思维、群体里乒乓交接、为凑企业而造假层级」三种陷阱。
对应原课程:Phase 14 · Lesson 28 ·
orchestration-patterns(原英文phases/14-agent-engineering/28-orchestration-patterns/docs/en.md)。前置:第 12 节(工作流模式)、第 25 节(多智能体辩论)。
阅读完本节,你应当能够:
「我们需要多智能体」——这是 2026 年最常见的过早优化。团队在还没想清楚「多智能体到底解决什么问题」之前,就先选了拓扑。结果:加了一层路由的复杂度,却没换来准确率或延迟的收益,反而多了调试噩梦。
正确做法是先命名模式、再按场景选、或干脆跳过拓扑。四种模式各有清晰的适用边界,搞清楚它们,你就能回答「我的问题真需要多智能体吗」。
框架:LangGraph create_supervisor、Anthropic orchestrator-workers、CrewAI Hierarchical Process。
2026 LangChain 建议:用直接工具调用做监督,而非
create_supervisor库。给你更细的上下文工程控制——你精确决定每个专家看到什么(呼应第 07 节:上下文是 RAM,谁看什么要显式)。
框架:LangGraph swarm 拓扑、OpenAI Agents SDK handoffs(当所有 Agent 都能交接给所有其他 Agent 时)。
何时需要:当单个监督者的上下文预算装不下所有专家的描述时——这是第 07 节「上下文溢出」在编排层的体现。
CrewAI 把两种部署模式形式化(第 15 节):
这与上面四种模式正交,但映射到拓扑:Flow 通常是监督者或分层;Crew 通常是带 LLM 路由的监督者。
「LLM 领域的成功不在于构建最复杂的系统,而在于构建适合你需要的系统。」
决策顺序:
⚠️ 三种陷阱:① 拓扑优先思维——「我们需要多智能体」在没识别出多智能体解决什么问题之前。② 群体里乒乓交接——A→B→A→B;用跳数计数器(第 16 节)。③ 造假层级——因为「企业感」而堆三层,实际只有两个团队;塌缩它。
原课程 code/main.py 在同一个脚本化 LLM 上实现全部四种模式:
Supervisor——中央路由。Swarm——对等直接交接。Hierarchical——监督者的监督者。Debate——并行提案者 + 批判。每种处理同一个三意图任务(退款 / bug / 销售)。轨迹形状各异。
class Supervisor: def __init__(self, specialists): self.specialists = specialists def run(self, task): for _ in range(MAX_ITERS): decision = router_llm(task, self.specialist_descripts()) if decision == "done": return task.result task = self.specialists[decision].run(task) # 专家干活 return task.result
class Swarm: def __init__(self, agents): self.agents = agents def run(self, task, hops=0): if hops > MAX_HOPS: raise Bouncing() # 防乒乓 agent = self.pick_by_task(task) outcome = agent.run(task) if outcome.handoff: # 直接交给同伴 return self.run(outcome.next_task, hops+1) return outcome.result
class Hierarchical: def run(self, task): top = Supervisor(self.divisions) # 顶层:选哪个分部 div = top.route(task) mid = Supervisor(div.teams) # 中层:选哪个团队 team = mid.route(task) return Worker(team.specialist).run(task) # 底层:干活
class Debate: def run(self, question): proposals = [a.propose(question) for a in self.proposers] # 并行 for r in range(ROUNDS): proposals = [critique_and_update(p, [o for o in proposals if o is not p]) for p in proposals] return aggregate(proposals)
运行 python3 code/main.py 会输出每模式的轨迹 + 操作数:监督者最干净;群体最短;分层最深;辩论最贵。
💡 设计要点:Anthropic 的「构建对的系统」是本节最重要的心法——复杂度是税,不是美德。每加一层拓扑,就加一层路由 LLM 的成本、加一层调试难度、加一层失败模式(第 26 节)。先用单 Agent + 工作流模式(第 12 节)榨干能力,只有在它真的不够时才上拓扑。这与第 12 节「先工作流后 Agent」、第 15 节「先 Flow 后 Crew」一脉相承。
| 模式 | LangGraph | OpenAI Agents SDK | CrewAI | 适合 |
|---|---|---|---|---|
| 监督者-工人 | create_supervisor/工具调用 |
handoffs 即工具 | Hierarchical Process | 2-4 专家、要清晰路由 |
| 群体 | swarm 拓扑 | 全互联 handoffs | — | 延迟优先 |
| 分层 | 嵌套子图 | — | 嵌套 crew | 大规模、监督者上下文装不下 |
| 辩论 | 自定义节点 | 来回 handoff | — | 准确率 > 成本 |
| 自主团队 | — | — | Crew | 探索性协作 |
| 确定性流 | 状态机 | — | Flow | 生产、要审计 |
原课程 outputs/skill-orchestration-picker.md:为给定任务选拓扑并实现,含「先单 Agent」硬拒绝规则、跳数计数器、层级塌缩检查。
create_supervisor(更细的上下文控制)。下一节,我们进入生产运行时——把编排模式、记忆、工具、安全、可观测性整合成一个可部署、可水平扩展、能扛流量的 Agent 服务,以及它带来的运维新挑战。