Orchestration
多 agent 系统里的调度与控制层,负责路由、执行顺序、状态传递、安全边界和错误恢复。
#tech / ai
#resource / orchestration
#type / concept
#status / growing
[!info] related notes
- 所属 MOC: AI MOC
- 前置概念: LLM, Function Calling, Built-in tools, mcp
- 并列概念: Handoffs, Manager (agents as tools), Skills, Agentic Systems, Agent Runtime
- 易混淆概念: a2a, Agent
- 关系笔记: ai-ability-and-protocol, Agentic Workflow Patterns, Agent 中的 Planning Loop, 多 Agent 编排模式
Orchestration
一句话定义
Orchestration 可以理解成 agent 系统里的调度与控制层,负责决定谁先做、谁后做、谁调用谁、什么时候交棒、什么时候停,以及上下文和安全边界怎么传。
它到底在解决什么问题
单个 agent 也能工作,但任务一复杂,就会冒出一整层“流程控制”问题:
- 这个任务要不要拆给多个 specialist
- 是让一个 manager 持续掌控,还是直接把会话交给 specialist
- 哪些步骤交给模型判断,哪些必须由代码硬控
- 上下文是完整传递还是裁剪后再传
- guardrails 挂在入口、出口还是工具调用上
- 失败、超时、人工审批、恢复执行怎么做
这些都属于 orchestration,不属于单个 prompt 或单个 tool 本身。
它在系统里的位置
用户
-> harness / runtime
-> orchestration
-> agent A
-> agent B
-> tools / MCP / built-in tools
-> sessions / guardrails / tracing
可以粗暴记成:
- 模型负责思考
- 工具负责执行
- orchestration 负责把整条工作流组织起来
两种核心思路
1. LLM-driven orchestration
把更多决策权交给模型。
适合:
- 任务开放
- 路由规则难以写死
- specialist 边界比较模糊
典型模式:
2. Code-driven orchestration
把更多决策权收回到代码里。
适合:
- 路由规则明确
- 成本、时延、SLA 更重要
- 需要可预测性和确定性
常见做法:
- 先让模型输出结构化分类结果,再由代码决定下一步路由
- 串行 pipeline:研究 -> 大纲 -> 初稿 -> 批改 -> 改写
- evaluator loop:一个 agent 产出,另一个 agent 评审
- 并行 fan-out:多个 agent 并行运行,再汇总结果
这些模式如果单独拆开看,可以对应到:
它不只是路由,还包括 4 层控制
1. Routing
谁来处理当前任务,是 manager 自己做,还是切给 specialist。
2. Execution
当前步骤由模型判断,还是由代码硬控;是串行、并行,还是 loop。
3. State
历史、上下文、本地状态和依赖怎么传、怎么裁。
4. Control
max turns、guardrails、审批、错误恢复、tracing 怎么挂。
运行时视角怎么理解
Orchestration 最后会落到一个 run loop 上:
- 调当前 active agent 的 model
- 检查返回结果
- 如果是 final output 就结束
- 如果是 tool calls 就执行工具并把结果回填
- 如果是 handoff 就切换 active agent 再继续
- 超过限制时中止或报错
所以 orchestration 不只是“架构图”,它最终一定会落到执行循环。这个执行循环通常运行在 runtime 里,而 agent 自己在这个循环中体现出的局部行为,经常就是一个 planning loop。
很多生产系统还会在这条链路上插入 审批点,把高风险动作从“自动继续”切成“等待授权”。
和其他概念怎么区分
和 Function Calling 的区别
- Function Calling 是单个工具调用接口
- Orchestration 是整条工作流怎么安排
和 MCP 的区别
- MCP 解决怎么接工具和资源
- Orchestration 解决什么时候用哪个工具、什么时候交给哪个 agent
和 Skills 的区别
- Skills 更像流程知识包和操作手册
- Orchestration 是运行时调度层
和 A2A 的区别
- A2A 是 agent 之间的标准化通信协议
- Orchestration 是你的系统怎么组织这些 agent 的工作流
最短记忆方式
Tool、MCP、Skills、A2A 都是在给 agent 增加能力;orchestration 决定这些能力在一个任务里如何被组织、调度和约束。
参考
- Agent Orchestration | OpenAI Agents SDK
- Running Agents | OpenAI Agents SDK
- Context Management | OpenAI Agents SDK
- Guardrails | OpenAI Agents SDK
- Tracing | OpenAI Agents SDK