前端进阶之旅前端进阶之旅
  • 基础篇HTML/CSS/JS 打底
  • 进阶篇原理与工程化
  • 高频篇面试最常问的那批
  • 精选篇按模块收敛的总结
  • 手写篇常考代码手写实现
  • 面经篇真实面试问题复盘
  • AI 篇NEWAI 时代的前端考点
  • 历年面经NEW按年份追踪真实考点
  • 每日一题每天一道,攒手感
  • 专项自测100 题快速查漏
  • 小程序题库小程序专项刷题
  • 算法题库NEW在线编码即时判题
  • 知识卡片NEW碎片时间过考点
  • 面试题大全常见问题解析
  • AI 答疑NEW随时提问,即时解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • AI 定制路线NEW按你的简历现排
  • AI 知识地图NEW串起全站知识点
  • 原理篇React / Vue 源码拆解
  • HTTP从报文一路讲到 HTTPS
  • 浏览器渲染、事件循环、进程
  • 计算机基础Linux、网络、操作系统
  • 设计模式23 种模式怎么用
  • Node学习指南从环境搭建到服务端
  • NPM工作流script、依赖与发布
  • Docker容器化部署上手
  • Canvas图形与动画实战
  • 前端系统进阶学习大型项目工程化
  • 前端综合文章长期沉淀的实践文
  • 思维导图知识点全景图
  • 学习路线按图索骥不跑偏
  • AI 热点NEWAI 每日动态
  • 公众号动态公众号历史文章
  • 博客动态站长的技术博客
  • 开发者导航常用工具与文档站
  • 基础篇HTML/CSS/JS 打底
  • 进阶篇原理与工程化
  • 高频篇面试最常问的那批
  • 精选篇按模块收敛的总结
  • 手写篇常考代码手写实现
  • 面经篇真实面试问题复盘
  • AI 篇NEWAI 时代的前端考点
  • 历年面经NEW按年份追踪真实考点
  • 每日一题每天一道,攒手感
  • 专项自测100 题快速查漏
  • 小程序题库小程序专项刷题
  • 算法题库NEW在线编码即时判题
  • 知识卡片NEW碎片时间过考点
  • 面试题大全常见问题解析
  • AI 答疑NEW随时提问,即时解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • AI 定制路线NEW按你的简历现排
  • AI 知识地图NEW串起全站知识点
  • 原理篇React / Vue 源码拆解
  • HTTP从报文一路讲到 HTTPS
  • 浏览器渲染、事件循环、进程
  • 计算机基础Linux、网络、操作系统
  • 设计模式23 种模式怎么用
  • Node学习指南从环境搭建到服务端
  • NPM工作流script、依赖与发布
  • Docker容器化部署上手
  • Canvas图形与动画实战
  • 前端系统进阶学习大型项目工程化
  • 前端综合文章长期沉淀的实践文
  • 思维导图知识点全景图
  • 学习路线按图索骥不跑偏
  • AI 热点NEWAI 每日动态
  • 公众号动态公众号历史文章
  • 博客动态站长的技术博客
  • 开发者导航常用工具与文档站
首页程序员面试题库多 Agent orchestrator-workers 模式 与 workflow 区别
AIAI Agent多 Agent 协作

多 Agent 系统中的 orchestrator-workers 模式是什么,它和工作流式编排的本质区别在哪?

Orchestrator-workers 模式由中央 LLM 动态分解任务、分派给 worker 并汇总结果;它与预定义流程的工作流式编排的本质区别在于分解逻辑由谁决定——前者是模型根据输入实时判断,后者是开发者写死代码路径。

前端进阶之旅 · 一题精讲更新于 2026.09.05
AI Agent#多 Agent 协作#多 Agent#流处理#并发编程
先看核心答案
理解线索

流程控制权决定模式归属

  1. 预定义路径每一步固定,模型不改变顺序
  2. 动态分解orchestrator 基于输入生成子任务清单
  3. 灵活性来源模型推理决定需要哪些 worker 及调用顺序

判断依据:如果可硬编码所有步骤,就无需 orchestrator-workers;只有子任务不可预测时才值得引入。

核心回答

先记住这个答案

Orchestrator-workers 是工作流的一种,其中 orchestrator(通常是一个 LLM)接收任务后,基于输入动态生成子任务列表,将每个子任务分派给 worker(LLM 或工具),并整合所有 worker 的输出来形成最终答案。其核心特征是任务分解不预先固定,而是由模型的推理决定。与之相对,工作流式编排(如 prompt chaining、routing)的子任务序列在代码中已提前定义,模型只负责在预定节点执行特定步骤,不控制整体流程走向。本质区别在于流程控制权:前者模型拥有动态规划权,后者开发者拥有静态定义权。

  • orchestrator-workers 是特殊工作流,子任务由模型动态决定
  • 预定义路径工作流的流程预定义,模型只执行具体步骤
  • 无法预知子任务时选 orchestrator-workers,否则优先工作流

两种模式的机制对比

预定义路径的工作流将流程编码为图或链,每个节点对应一个 LLM 或工具调用。模型只在节点内部决策,比如 routing 中模型选择分类路径,但路径集合在编码时已完全列出。这保证了执行的可预测性和可调试性,但面对非预期任务会僵硬。

Orchestrator-workers 中,orchestrator 接收完整任务后,先自己规划:列出子任务清单、每个子任务需要的 worker 类型、甚至执行顺序。这个过程没有开发者预写决策树,每个子任务的产生都源自模型对当前输入的理解。之后 orchestrator 将子任务分派给 worker,收集结果再汇总。关键是不存在固定的子任务集合。

代码库修改任务的具体对比

假设任务:为仓库添加一个登录功能。工作流式编排也许预先定义三个步骤:写路由、写控制器、写测试。这些步骤固定,模型每一步照做。但若仓库已有自定义框架,规定所有路由需在中心配置注册,那么这个预定义流程会失效,因为没包含该概念。

Orchestrator-workers 中,orchestrator 模型会先探查仓库结构,发现路由需要在特定文件中注册,然后动态生成子任务:修改注册文件、添加控制器、创建视图等。worker 各自执行并返回结果,orchestrator 再检查依赖和合并。这体现了动态分解对不可预测需求的适应力。

适用边界与代价

Orchestrator-workers 的不利因素:orchestrator 的规划错误会直接导致子任务清单失真,而且一次糟糕规划可能引发一连串无效 worker 调用,代价高于工作流中单个节点失败。若任务子步骤基本固定,使用工作流能得到更低延迟、更低 token 消耗和更可控的失败。

另外,orchestrator 需要足够上下文才能做出高质量分解,否则遗漏关键步骤。实践中应给 orchestrator 提供充分的环境信息(如文件列表、约束),并允许它在执行中追加或调整子任务,而不是一旦生成清单就严格不变。若无法提供这种动态调整,则模式退化为性能较低的固定流程。

回答前,多想一步

容易答错的地方

认为 orchestrator-workers 不是工作流
Anthropic 将 orchestrator-workers 列为 workflow 类型之一,它属于工作流的变体,因为总体结构仍然由代码编排(orchestrator 循环调用 worker),只是子任务在运行时确定。混淆它和 agent 会造成架构选择失误。
以为动态就比静态高级
动态分解带来更高 token 成本和风险,只有当子任务不可预测时才划算。若能预定义步骤,强制使用 orchestrator-workers 只会增加复杂度和失败点。应优先选最简单可用的模式。
试着用自己的话回答

面试官还会怎么问?

orchestrator-workers 和 routing 工作流有什么区别?

Routing 只是根据输入选择一个预定分支,每个分支是完整流程。Orchestrator-workers 需要分解出多个子任务并组合,子任务本身不是预先定义的固定分支。Routing 解决输入类型分派,orchestrator-workers 解决动态任务规划。

什么时候该把 orchestrator-workers 升级为 autonomous agent?

当 orchestrator 需要基于中期结果调整计划,且调整深度和频度超过简单循环时,agent 更适合。Agent 完全自主控制步骤,直到任务完成或停止条件。但 agent 更难以预测,需要更强的环境和校验机制。

orchestrator 如何决定 worker 数量?

没有固定公式,orchestrator 根据任务类型估出子任务粒度。过多 worker 增加 token 和协调开销,过少则漏细节。可在 prompt 中要求先列出候选子任务再分组,或参考 token 预算和 worker 能力来限制数量。

从一道题,走向一组知识

把知识连起来

多 Agent 协作

在多 Agent 系统中如何决定把任务拆成几个 Agent 而不是用一个 Agent 加更多工具?

orchestrator-workers 中需要决定 worker 拆几个,与角色拆分原则直接相关

多 Agent 协作

Orchestrator 给 worker 下发子任务时,上下文应该传多少,传整个对话历史会有什么问题?

orchestrator 向 worker 下发子任务时上下文传多少,是 orchestrator-workers 的关键设计点

参考资料

  • Building effective agents

示例用于理解所注明的运行环境与边界;延伸学习可结合原文中的更多案例。

本题目录
  1. 先记住这个答案
  2. 两种模式的机制对比
  3. 代码库修改任务的具体对比
  4. 适用边界与代价
  5. 容易答错的地方
  6. 面试官还会怎么问
  7. 把知识连起来
读懂,再试着讲出来

先看核心答案,再读代码。最后展开追问,检查自己有没有遗漏边界。

试着回答追问
浏览全部面试题理解原理,也关注真实的使用场景。回到顶部 ↑