跳到主要内容Skip to main content
← 深水指南

多 agent 编排Multi-agent orchestration

多 agent 编排Multi-agent orchestration

多个 agent 怎么分工、怎么交接、怎么收拢结果,以及什么时候根本不该上多 agent。

How multiple agents divide work, hand off, and merge results — and when not to go multi-agent at all.

这一篇讲什么What this guide covers

多 agent 编排就是让多个 agent 分工干同一件事。 分工的理由通常有三个:上下文装不下、任务能并行、不同环节要不同专业知识。 编排的核心问题只有一个:下一步交给谁,上下文跟着谁走。

本站讲机制,不排名。文中提到的产品都链到各自的档案页——档案是事实源,这篇是视角。

先问一句:要不要多 agentFirst, do you need multi-agent?

多数「想上多 agent」的需求,单 agent 加对工具和提示词就能满足。 LangGraph 官方文档把这句话放在多 agent 篇的开头:

"However, not every complex task requires this approach— a single agent with the right (sometimes dynamic) tools and prompt can often achieve similar results."

开发者想要多 agent,通常真实想要的是三种能力之一: 上下文管理、并行化、多人分头开发。 后两个是好理由;第一个要先确认「上下文真的装不下」, 因为拆错的代价比不拆大。

四种主流形态Four common shapes

LangGraph 把市面上的多 agent 实现归成四类模式。

Subagents(子 agent 当工具):主 agent 把子 agent 当工具调用, 路由全部经过主 agent,由它决定何时调用哪个。 LangGraph 与 Google ADK 都属这一形态。

ADK 官方原文:"ADK automatically generates weather_checker and flight_booker delegation tools"—— 协调 agent 声明 SubAgents 后,委派工具以各子 agent 命名。 子 agent 干完活,控制权自动回到协调 agent。

Handoffs(交接):当前 agent 把对话整个移交给下一个 agent。 OpenAI Agents SDK 的官方定义是 "Handoffs allow an agent to delegate tasks to another agent"。 交接在模型眼里是一个工具:移交 refund agent 的工具就叫 transfer_to_refund_agent。

CrewAI 官方原文:hierarchical 进程下 "Tasks are not pre-assigned; the manager allocates tasks to agents based on their capabilities, reviews outputs, and assesses task completion"。 manager 动态分派、复核输出、判断是否完成,近似 Anthropic 的 orchestrator-workers。

Router(路由):一步分类,把输入导给专门的 agent,再合成回答。 它和 Anthropic 写的 routing 模式同源:先分类,再走专门路径。

自定义工作流:把编排画成图,确定性和 agent 行为混排。 适合流程本身需要被代码约束的场景——哪步必须拦、哪步可并行,写死在图里。

四种形态对照:

形态谁决定下一步上下文典型场景
Subagents主 agent子 agent 只看分给它的部分任务可枚举、要并行
Handoffs模型自己选整段历史默认跟走客服分流、专业分工
Router分类器各走各的,最后合成输入类别清晰
自定义工作流代码按图显式传递流程要强约束

交接时,上下文跟着谁走Whose context follows a handoff

这是编排里最容易被忽略、出事最多的一点。

OpenAI 官方原文:"the new agent takes over the conversation, and gets to see the entire previous conversation history"。 也就是说,交接发生时默认全量历史跟走。 要改,用 input_filter 过滤,或用运行配置控制交接历史的嵌套方式。

ADK 的协作模式还多一层选择,子 agent 可配成三种模式:

  • chat(默认):可与用户来回。
  • task:可追问用户,做完自动还回控制权。
  • single_turn:单轮执行,做完即回。

官方特意提醒:这个模式只给子 agent 用,根 agent 不要配。

CrewAI 的 sequential 进程则是另一极:任务按列表顺序跑, 上一个任务的输出作为下一个的上下文。 可控,但不够灵活。

失败模式Failure modes

上下文逐级膨胀。 每交接一次默认带上全量历史, 多跳之后提示词被历史撑爆,成本和延迟一起涨。 拆 agent 的初衷(省上下文)反而没了。

职责重叠或留空。 两个 agent 都以为某件事归对方, 或者某件事谁都不接。 Anthropic 的建议是从简单做起:先优化单次调用,不够再叠加多步系统。

错误复合。 单 agent 出错还能原地重试; 多 agent 一环错、环环错,且更难定位是哪一环开始的。 Anthropic 官方原文:"The autonomous nature of agents means higher costs, and the potential for compounding errors."

怎么选Choosing a shape

一个够用的判断顺序:

1. 单 agent 加工具能解决吗?能,就停在这里。 2. 任务能被清楚切成固定几步?能,走顺序流程(CrewAI sequential、Anthropic 的 prompt chaining)。 3. 输入有明确类别、各类差异大?走 Router / routing。 4. 子任务无法预先枚举、要动态拆?走 orchestrator-workers 或 Subagents。 5. 需要人审关键节点?在自定义工作流里加人工检查点。

拆错比不拆贵。拆之前先想清楚: 每个 agent 各自的上下文里应该有什么、不应该有什么。

出处Sources

来源Source链接URL
LangGraph 官方文档 · Multi-agent(2026-10-20 直抓 200)https://docs.langchain.com/oss/python/langchain/multi-agent
OpenAI Agents SDK 官方文档 · Handoffs(2026-10-20 直抓 200)https://openai.github.io/openai-agents-python/handoffs/
Google ADK 官方文档 · Collaborative workflows(2026-10-20 直抓 200)https://adk.dev/workflows/collaboration/
CrewAI 官方文档 · Processes(2026-10-20 直抓 200)https://docs.crewai.com/en/concepts/processes
Anthropic 工程博客 · Building effective agents(2026-10-20 WebFetch 核验官方页)https://www.anthropic.com/engineering/building-effective-agents

核验快照:2026-10-20 · 本站不实测、不排名,未知就写未知。Verification snapshot: 2026-10-20 · no benchmarks, no rankings — unknown stays unknown.