2026 年,AI Agent 已经从”单个 Agent 做所有事”进化到”多个 Agent 协作完成任务”。但多 Agent 系统的一个核心问题是:主 Agent 应该如何管理和调度子 Agent? Philipp Schmid 在最新文章中总结了四种主流的子 Agent 编排模式,本文基于其内容为中文开发者做详细解读。
四种编排模式概览
按照复杂度从低到高,四种模式分别是:
- 内联工具(Inline Tool)——子 Agent 是一个函数调用
- 扇出等待(Fan-Out)——生成多个子 Agent,然后等待收集结果
- Agent 池(Agent Pool)——持久化的 Agent 通过消息通信
- 团队协作(Teams)——Agent 之间直接对话
模式一:内联工具(Inline Tool)
这是最简单的模式。主 Agent 调用一个 call_agent 工具,子 Agent 执行任务后将结果作为工具响应返回。
// 同步调用示例
{
"tool": "call_agent",
"input": {
"agent": "researcher",
"task": "搜索最新的 Docker 安装方法"
}
}
// 子 Agent 返回结果,主 Agent 继续处理
适用场景:单步任务,如信息检索、数据格式转换、代码审查。
模型要求:任何支持工具调用的模型都可以。
模式二:扇出等待(Fan-Out)
主 Agent 使用 spawn_agent 生成多个子 Agent(立即返回),然后在需要时使用 wait_agent 等待结果。这允许并行执行多个任务。
// 扇出:同时启动3个子任务
spawn_agent("researcher", "搜索 n8n 最新版本特性")
spawn_agent("reviewer", "审查上一篇文章的SEO优化")
spawn_agent("coder", "生成 Docker Compose 配置")
// 主 Agent 可以先做其他工作...
// 然后收集结果
result1 = wait_agent("researcher")
result2 = wait_agent("reviewer")
适用场景:可以并行处理的独立任务,如同时搜索多个信息源、同时生成多篇文章草稿。
模型要求:需要能够推理”何时等待”的模型,比模式一要求更高。
模式三:Agent 池(Agent Pool)
多个持久化的 Agent 通过 send_message、wait_agent、list_agents 等工具进行多轮通信。每个 Agent 保留完整的对话历史。
// 创建持久化 Agent
create_agent("researcher", "你是一个信息研究员...")
create_agent("writer", "你是一个技术写手...")
create_agent("reviewer", "你是一个编辑审查员...")
// 多轮协调
send_message("researcher", "搜索 Claude Code 最新教程")
result = wait_agent("researcher")
send_message("writer", f"根据以下信息写文章: {result}")
draft = wait_agent("writer")
send_message("reviewer", f"审查这篇文章: {draft}")
适用场景:多步骤工作流,如”研究→写作→审查”、”设计→实现→测试”。
模型要求:需要前沿级别的模型来协调多个 Agent 的交互。
模式四:团队协作(Teams)
这是最复杂的模式。Agent 之间可以直接对话,不需要通过主 Agent 中转。主 Agent 的角色从”调度员”变成”团队组建者”。
适用场景:高度复杂、需要多专家协作的任务,如大型代码重构、多维度分析报告。
模型要求:每个 Agent 都需要前沿模型能力。
如何选择
| 场景 | 推荐模式 | 理由 |
|---|---|---|
| 简单信息查询 | 内联工具 | 最简单,够用就好 |
| 并行独立任务 | 扇出等待 | 提升效率,不增加复杂度 |
| 多步流水线 | Agent 池 | 支持上下文传递和多轮交互 |
| 复杂协作任务 | 团队协作 | 需要 Agent 间直接沟通 |
Philipp Schmid 的建议是:从模式一开始,只在确实需要时才升级到更复杂的模式。一个需要 4 个 Agent 协作的任务,随着模型能力的提升,未来可能只需要 1 个 Agent 就能完成。















暂无评论内容