编排已更新 2026-06-24 · 版本 1.1

编排器-工作器

编排器 LLM 动态地将任务分解为子任务,将每个子任务委派给工作器 LLM,并综合结果。与固定的并行化不同,编排器在运行时决定子任务,这使其适用于无法提前预知如何分解的复杂任务。

证据: 生产环境置信度: 来源: 生产系统来源: 个人经验来源: 行业观察

问题

某些任务过于复杂,无法通过单次调用完成,且无法提前分解,因为所需的子任务取决于输入。

适用场景

当任务需要动态分解(子任务的数量和性质因输入而异),且协调模型能够规划和整合工作时,请使用编排器-工作器模式。

解决方案

主导(编排器)模型分析任务,决定需要哪些子任务,并将每个子任务委派给工作器模型(通常是专门的)。然后,它收集并综合工作器的输出以生成最终结果。

它是并行化在智能体(Agentic)层面的泛化:分解是在运行时决定的,而不是硬编码的,这增加了灵活性,但代价是更多的协调工作和不可预测性。

组件

编排器(主导)模型工作器模型委派逻辑综合器共享状态 / 工具

优势

  • 处理具有动态分解特征的复杂任务。
  • 工作器可以针对每个子任务进行专门化。
  • 无需硬编码步骤即可扩展以适应各种输入。

风险

  • 协调开销、延迟和 Token 成本。
  • 比固定工作流更难预测和调试。
  • 编排器可能会规划失误或进行无限循环。

不适用场景

  • 当分解方式提前已知时——使用链式调用或固定并行化。
  • 适用于单次调用即可处理的简单任务。
  • 当可预测性和严格的成本控制至关重要时。

技术

LangGraphCrewAIOpenAI Agents SDKModel Context Protocol (MCP)

示例

  • 一个编码任务,其中主导模型决定要修改哪些文件并委派编辑工作。
  • 一个研究任务,被拆分为若干子问题,每个子问题分别进行研究然后进行综合。
  • 一份由动态选择的章节组装而成的复杂报告。

生产实践证据

上下文
在 57 天内(161 个会话 / 2,776 个轮次)观察到的单操作员、本地优先 OpenClaw 部署,数据自智能体自身的轨迹追踪聚合而来。
场景
计划的工作在从父会话派生的隔离、一次性工作器会话中运行,并具有能力范围限制以及子会话/深度限制。
技术
Cron 隔离智能体运行时、会话派生(forkSessionFromParent)、子智能体通道与注册表,以及每个智能体的子会话/深度限制。
负载
在窗口期内共有 57 个 Cron 隔离的工作器会话(未调用显式的 sessions.spawn 工具)。
结果
57 个隔离的工作器会话在没有跨会话干扰的情况下运行;派生会话隔离是主要的工作器模式,而显式的 spawn 工具在此窗口期内保持未使用状态。单操作员本地优先部署。

KPI

端到端任务完成率
在所有子任务中正确完成的编排作业比例;编排器对整个结果负责。
工作器扇出与成本
每个作业的工作器调用次数及其合并的 Token 成本;如果分解过于草率,编排可能会导致开销激增。
关键路径延迟
最长依赖链的实际耗时,而不是工作器耗时的总和——这限制了响应速度。
子任务错误率
单个工作器失败或返回不可用结果的频率,这会触发重试和恢复。

已观测到的失效模式

  • 糟糕的分解:编排器错误地拆分了任务,导致即使工作器正确执行,最终仍产生错误的结果。
  • 编排器与工作器之间丢失上下文,导致部分结果不一致或相互矛盾。
  • 由于在没有预算限制的情况下生成过多工作器或进行深层嵌套,导致成本激增。
  • 单点故障:如果编排器判断失误,尽管工作器运行正常,整个作业仍会失败。

经验教训

  • 投入精力优化分解逻辑——大多数失败都可以追溯到工作是如何拆分的,而不是工作器本身的问题。
  • 显式地向工作器传递其所需的最小上下文,以避免偏差和矛盾。
  • 设置预算和深度上限;无限制的编排是智能体成本失控的根源。
  • 使编排器的计划具有可检查性,以便将失败追溯到特定的子任务。

常见问题

这与并行化有什么不同?
并行化使用固定的、预定义的拆分方式。而编排器-工作者(Orchestrator-workers)模式在运行时动态决定子任务,因此它能够处理其形态随输入而变化的任务。
这是一个多智能体系统吗?
是的——这是一个常见的多智能体模式。只有当任务确实能从动态、可拆分的子任务中获益时,才应使用它。
我该如何防止它失控运行?
设置预算、步骤限制和终止条件,并增加可观测性,以便您能够查看并限制编排器的规划。

参考文献