R

A06 Orchestrator 编排器

创建 2026-05-18 更新 2026-06-12 16 条双链 Agent 专题 AI 整理

A06 Orchestrator 编排器

一句话定义:Orchestrator 是介于 framework(提供组件)和 agent(端到端执行)之间的运行时层,本质不是”提供功能”而是”决定调用顺序、维护状态、回应中断”。

一、Orchestrator 的判断密度从这里开始

这个词在 2026 年已被滥用为”任何让多个 LLM 调用串起来的东西都叫 orchestrator”——这是 AI概念滥用反思 中说的 saliency drift 在调度层的具体表现。真正能拿出去定义 orchestrator 的判据只有一个:它是否拥有”运行时”语义——即 agent 跑到一半崩溃、人介入打断、并行分支需要 join,这三件事 orchestrator 必须能原生处理;framework 不行。

判据落地:评估任何号称”Agent 平台”的产品时,先问三件事:

  1. 任务能不能跑 ≥10 分钟而不崩?
  2. 中途加入人工审批要怎么写?
  3. 失败步骤能不能只重跑那一步?

这三题就是 orchestrator 能力的真正试金石——任何一题答不上来,对方说的”orchestrator”其实是 chain composer,不是 orchestrator。

二、四类流派在 PM 视角下其实只有三档

反共识结论先行:这四类不是并列的”四选一”,而是 PM 视角下的三档梯度——图编排是 default、Actor 是天花板、消息总线是 2026 年仍未稳的实验性范式

流派隐喻代表PM 视角档位
图编排状态机 / DAG with cyclesLangGraph、PocketFlow默认起点(生态最大、ReAct 形状贴合)
DAG 编排数据流水线Airflow、Prefect、Dagster边缘场景(已有数据团队 + 简单链式 LLM 节点)
Actor 模型持久化进程Temporal、Restate合规/跨日运行的天花板(持久化 + 可审计)
消息总线 / Pub-Sub多 agent 互发消息A2A、AutoGen v0.4早期阶段(A2A 协议尚未真正稳定)

所以 PM 选型不该问”四选一”,应该问的是单一问题:我能不能用图编排活到合规/跨日场景出现为止?

  • 如果回答”能”——LangGraph 起步,未来切 Temporal 时再付迁移成本。
  • 如果回答”不能”(已知第一天就有 SLA / 审计要求,如金融、医疗)——跳过图编排直接 Temporal,但承担学习曲线代价。
  • 几乎没有任何 2026 年的 PM 该把”消息总线”作为起点——A2A 协议生态远未成熟,多 agent 互发消息的调试复杂度仍是论文级,不是产品级。

值得提示:这四类正在彼此渗透——LangGraph 自 0.0.x 起就内置 checkpointer 抽象(MemorySaver/SqliteSaver/PostgresSaver),0.2+ 扩展 subgraph、durable execution(向 actor 模型靠拢);Temporal 推出 AI 工作流 SDK(向图编排靠拢);AutoGen v0.4 改写为消息驱动(向总线靠拢)。融合趋势意味着 5 年后这四类边界会消失,但当下 PM 选型必须按今天的成熟度档位选。

三、Orchestrator 选型 3 步决策树(取代综述清单)

Step 1:单步 LLM 调用够不够?
  - 够 → 不要 orchestrator,写一个 ReAct loop(100 行,参 [R01 最小可运行·100 行 ReAct](/kb/专题-安全对齐与失败/r01-最小可运行-100-行-react/))
  - 不够,需要循环 / 多 agent / HITL → 进入 Step 2

Step 2:是否第一天就有 SLA / 审计 / 合规要求?
  - 没有 → 默认 LangGraph(10 行起步、生态最大、checkpointer 内置)
  - 有 → 跳过 LangGraph 直接 Temporal/Restate(学习曲线 1-2 周但避免迁移成本)

Step 3:任务是否需要"agent 之间通信"(不是"主控调度多个 agent")?
  - 否 → 永远不要碰消息总线 / A2A,多 agent 用 supervisor 模式(参 [E03 Multi-Agent 框架·AutoGen & CrewAI & DeerFlow](/kb/专题-安全对齐与失败/e03-multi-agent-框架-autogen-crewai-deerflow/) § 3.5)
  - 是(罕见,例如真正的去中心化研究 agent 群)→ AutoGen v0.4,但准备好调试痛苦

这棵决策树覆盖 95% 的 PM 决策场景——剩余 5% 是 Rick 转型时不会遇到的边缘情况(如制造业 IoT 嵌入式 agent)。

Failure scenario (R4 新增):“默认 LangGraph 起步” 在小团队是过度工程

反例:上面 Step 2 的”默认 LangGraph”判断,在 1-2 人的小团队 + 早期 PMF 探索阶段 不成立。

为什么 LangGraph 在小团队是过度工程:

  • 学习曲线成本:LangGraph 的 StateGraph / TypedDict / Annotated[list, add] 等概念,对没用过状态机框架的工程师需要 3-5 天上手——这个时间在小团队 MVP 阶段是 10-20% 的总开发时间。
  • 样板代码量:LangGraph 最小可运行示例约 50-100 行(状态定义 + 节点函数 + 图编排 + checkpointer 配置),裸 ReAct loop(详见 R01 最小可运行·100 行 ReAct)只要 113 行。差异不在量,在概念负担——LangGraph 要求工程师建立”状态机心智模型”,ReAct 只要求”循环心智模型”。
  • HITL 在小团队场景不必要:小团队早期 PMF 探索阶段,任务通常是研究型(用户提问 → Agent 回答),不涉及”发邮件 / 写数据库”等不可逆操作——HITL 是过度设计。
  • checkpointer 在小团队场景不必要:任务时长通常 < 60 秒,用户会等结果,不需要”断点续传”。

正确的小团队 PoC 路径(取代 LangGraph 默认):

  • 裸 ReAct loop (113 行) + Redis 存 messages 列表(state 持久化) + 简单 try/except 包络重试——这套组合覆盖了 LangGraph 80% 的能力,但学习曲线接近零、样板代码减半。
  • 详见 R01 最小可运行·100 行 ReAct 的”何时换车”段——R01 已经显式提醒”如果你跑 R01 时已经在想’这个 messages 列表能不能存到 Redis,中断后能不能续传’,那就是该升级到 R02 的信号”——反过来,如果你没有这些需求,就不要升级

升级 LangGraph 的硬触发条件(任意一条满足):

  • 团队规模 ≥ 3 人(需要明确的”状态契约” 避免协作混乱)
  • 任务时长 > 60 秒(用户会切走,需要异步状态)
  • 涉及不可逆操作(发邮件 / 转账 / 删数据,必须 HITL)
  • 多 session 协作(同一个任务被多人推进,必须持久化状态)
  • 调试需求(出 bug 时无法只靠 print,需要 trace)

这一 failure scenario 给 PM 的元启示:任何”默认 X” 的判断都要带”在 Y 条件下” 的边界——本节点早期版本说”默认 LangGraph”,忽略了小团队 PMF 探索阶段的反例。R4 修正:默认 LangGraph 起步,但在 1-2 人小团队 + 早期 PoC 阶段,裸 ReAct + Redis 更划算

四、Orchestrator 真正解决的五个问题(按”PM 看走眼概率”排序)

PM 最容易看走眼的是 (1) 状态持久化(2) HITL 接口——这两个一旦在产品早期没设计好,迁移成本接近重写。

  1. 状态持久化(PM 最容易看走眼的第一名):浏览器 agent 跑了 30 分钟,浏览器崩了,能不能从崩溃前的状态恢复?没有 orchestrator 答案是不能。PM 容易看走眼的原因:demo 阶段不会触发崩溃,所以这个能力从 product roadmap 上看是”P2 优化”;但生产环境第一次崩溃就是 P0 事故。建议把状态持久化作为 v1.0 必备,不是 v2.0。

  2. HITL 接口(PM 最容易看走眼的第二名)m207 - Agent 产品化:场景推演与失败模式 的 HITL 三维度要求 agent 在关键步骤暂停并等待人确认;这必须由 orchestrator 提供 checkpoint/interrupt 原语(LangGraph interrupt() / Temporal signal/await / CrewAI human_input=True)。PM 容易看走眼的原因:HITL 看起来是产品决策(要不要加确认弹窗),实际是运行时决策(暂停后能不能从这一步精确恢复)。

  3. 错误恢复策略:哪些步骤可以重试、几次、指数退避还是直接换工具——必须固化在 orchestrator 层,不能写进 prompt。

  4. 并行与汇合:多 agent 同时跑、谁先返回谁优先、超时丢弃——prompt 工程无法解决。

  5. 可观察性入口:每一步的输入输出、token 消耗、延迟、错误——orchestrator 是 trace 的天然产生者(LangSmith/Langfuse/OpenLLMetry 都是接 orchestrator 而非接模型)。

五、跨域呼应:编排即韦伯式合理化(保留并展开)

韦伯描述的科层制(bureaucracy)有四个特征:明确分工、层级权威、规则成文、专业能力。Orchestrator 在工程上做的是同一件事的微缩版——把 agent 集合从”一群说话的 LLM”变成”一个有分工的组织”。CrewAI 的 Process(顺序/层级/共识)、AutoGen 的 GroupChat、字节 DeerFlow 的 Supervisor 模式,本质上都在重新发明韦伯式的”合理化”机制。

这个类比的工程启示任何 multi-agent orchestrator 都会重新发明科层制的弊端——僵化、规则成本、责任稀释。所以 PM 看 multi-agent 产品时应该问:“你们是怎么避免科层制弊端的?是动态分工、权威轮转、还是允许 agent 拒绝任务?” 这一问能立刻区分”真懂 orchestrator 的团队”和”看着论文堆 multi-agent 的团队”——前者会承认”是的,我们也在和这个矛盾搏斗,目前的方案是 X”;后者会回答”我们的架构很优雅”。

阿伦特”行动-工作-劳动”区分的辨析见 A07 Multi-Agent Teams § 五——在 A06 这一层只需记住一句:orchestrator 提供的是”行动得以发生的公共空间”,所以 A06 与 A07 的分工是 A06 回答”行动在哪发生”,A07 回答”谁在行动”。

六、和 A02 抽象层级辨析 / Harness 词义辨析 的边界

A02 把 orchestrator 放在 framework 之上、agent 之下;本节点深入 orchestrator 内部讲流派与机制。要避免的三个混淆:

  • Orchestrator ≠ Multi-Agent 系统:单 agent 也可以有 orchestrator(处理重试、checkpoint、observability)。
  • Orchestrator ≠ Workflow Engine:Workflow Engine(n8n、Zapier、Dify)面向业务编排,触发器是用户事件;Orchestrator 面向 agent 运行时,触发器是 LLM 输出。
  • Orchestrator ≠ HarnessHarness 词义辨析 中 harness 是包含 prompt、tools、loop 的完整运行外壳,orchestrator 只是 harness 中的”调度子系统”。Claude Code 是 harness,其内部的 task loop 是它的 orchestrator。

与已有节点的关系

  • m208 - AI 基础设施与中间件选型 的概念互补:m208 偏选型实操(哪个框架适合哪种公司),本节点回答”orchestrator 这一层到底是什么、PM 怎么用 3 步决策树选”。读 m208 之前先看本节点,避免把同层产品当不同层产品比。
  • A02 抽象层级辨析 的细化:A02 给出五层抽象表,本节点深耕 orchestrator 单层。
  • A07 Multi-Agent Teams 的前置:Multi-Agent Teams 的”组织形态”必须落地在某种 orchestrator 之上——A07 谈”谁”,A06 谈”在哪跑”。

PM 决策启示

  • 面试问答模板

    Q:“LangChain 和 LangGraph 的区别?” A:(30 秒标准答)“LangChain 是组件库——给你 Chain、Tool、Memory,但你要自己写’什么时候调谁’的胶水代码。LangGraph 是运行时——你描述状态机(节点 + 边 + 状态),它负责持久化、中断、恢复。差别不是 API 优劣,是抽象层不同。” (加分项)“LangGraph 真正解决的问题是状态持久化和可中断——这两件事 LangChain 不解决,是为什么 2024 年之后所有 LangChain 用户最终都迁移到了 LangGraph。”

  • 选型判断脚本:见上面 § 三 的 3 步决策树。

  • 复现成本拆解(对接 R02 中型生产·LangGraph + MCP):

    • PoC 阶段(<100 行 / 1 人天):不要 orchestrator,直接 ReAct loop。
    • 内测阶段(产品 demo / 1 人周):LangGraph 起步,因为最贴合 ReAct/Reflexion 循环形状且生态最大。
    • 生产阶段(SLA 要求 / 1 人月):考虑 Temporal/Restate——持久化、跨 region、可审计是它们的强项。
  • 避免误用:把 orchestrator 当成”提示工程的替代品”——错。orchestrator 不能让差 prompt 变好,只能让好 prompt 跑得稳。PM 容易犯的错是”模型不行就上 orchestrator”——这与 AI概念滥用反思 中”用框架弥补能力不足”是同一类错觉。

关联节点

核心关联(必读)

延伸关联(可选)


修订日志

  • 2026-06-11 P3.4 校链:§ 六与「与已有节点的关系」两处死链 A02 抽象层级辨析 补全为真实节点名 [A02 抽象层级辨析](/kb/专题-安全对齐与失败/a02-抽象层级辨析-harness-framework-agent-skill-orchestrator/)
  • R3 → R4(2026-05-18):本轮聚焦反方对话训练 + Failure scenario。修订要点:
    1. § 三决策树后新增 “Failure scenario: 默认 LangGraph 起步在小团队是过度工程” —— 显式承认 1-2 人小团队 + 早期 PoC 阶段不应默认 LangGraph;给出”裸 ReAct + Redis”的替代路径;列出升级 LangGraph 的硬触发条件
    2. 这一 failure scenario 给的元启示:任何”默认 X” 判断都要带”在 Y 条件下”的边界
    3. 引入的对手立场:小团队过度工程批判 (对 LangGraph 默认推荐的反驳)
  • R2 → R3(2026-05-18):聚焦判断密度提升。本轮修订要点:
    1. 全文重构,新增 § 一”判断密度从这里开始”——把”orchestrator 的真定义”作为反共识首句
    2. § 二把四大流派表压成 PM 视角的三档判断(图编排 default / Actor 天花板 / 消息总线实验性),删除”四类不互斥”的平庸过渡
    3. 新增 § 三”Orchestrator 选型 3 步决策树”作为主轴,取代 § 三原五条罗列
    4. § 四五个真问题按”PM 看走眼概率”重排序,明确指出状态持久化和 HITL 是第一第二容易看走眼
    5. § 五韦伯类比加入”工程启示”段(“怎么避免科层制弊端”作为 PM 评估问句),从装饰变操作
    6. 显式引入 AI概念滥用反思 双链,让 saliency drift 成为节点判断框架
    7. 关联节点分”核心关联(必读)+ 延伸关联(可选)“两档,每条加一句”为什么相关”
    8. PM 决策启示加入面试问答 Q+A 模板与复现成本拆解(人天预估)
  • R1 → R2(2026-05-18):LangGraph “0.2+ 引入持久化”表述误导,修正为”0.0.x 起内置 checkpointer,0.2+ 扩展 subgraph、durable execution”。
  • 2026-06-12 内审修复:frontmatter 补 final_path 字段(= 本文件在库内实际相对路径)。