多 Agent 与子 Agent 协作综述:从并行分工到可治理的团队系统¶
让一个 Agent 完成复杂任务,往往需要搜索文档、阅读代码、查询指标、设计方案和验证结果。一个自然的想法是:让它像团队负责人一样,把这些工作交给多个子 Agent 并行处理。
这类能力已经进入编程助手、Agent SDK 和企业平台。但“多几个 Agent”不自动等于更快、更准确:它引入了任务分解、上下文传递、文件冲突、结果汇总、预算和恢复等新的系统问题。本文截至 2026 年 11 月 4 日,基于公开资料梳理原理、近期发展与落地方法;产品描述来自官方文档,研究结果来自具体实验,本文没有对这些产品和论文做独立复现实测。
一页结论¶
- 子 Agent 是一段有独立任务和上下文的执行过程,常由主 Agent 创建并汇报结果;它不一定是不同模型,也不一定有独立沙箱或独立机器。
- 最适合并行的是边界清晰、依赖少的工作:例如分别调查指标、日志和近期变更;同一文件的并行写入、严格顺序的事务则需要谨慎。
- 协作方式比角色数量重要:主从委派、控制权交接、固定工作流与平级通信各有适用范围;先明确谁做决策、谁能写入、结果如何验收。
- 上下文隔离不是安全隔离:独立对话不代表独立文件系统、凭据和网络权限。必须以运行时、身份和策略验证真实边界。
- 最近研究支持有条件地使用多 Agent:不同任务和团队结构可能改善结果,也可能以几倍成本换取提升,甚至因冲突让最终结果变差。
- 生产环境应让代码管理状态、权限与副作用,让模型负责理解和规划;以可恢复任务账本、预算、独立验证与人工审批形成闭环。
1. 什么是子 Agent¶
Agent 通常由模型、指令、工具、上下文和驱动循环组成。主 Agent 在处理用户任务时,可以创建一个有明确目标的子 Agent:它读取与任务相关的上下文,使用被允许的工具,形成结果,再返回给主 Agent。
flowchart TD
U[用户目标与验收标准] --> P[主 Agent:拆分和汇总]
P --> A[子 Agent A:指标]
P --> B[子 Agent B:日志]
P --> C[子 Agent C:变更]
A --> R[证据与结论]
B --> R
C --> R
R --> V[独立验证与冲突处理]
V --> P
P --> O[报告或经批准的动作]
这里的“主”和“子”是任务关系,不必对应组织架构或模型强弱。同一个模型创建多个独立会话也可以是多 Agent;一个 Agent 在循环中连续调用多个工具,则不一定构成多 Agent。不同产品对 Agent、Worker、Teammate 和 Subagent 的命名并不统一,应查看其上下文、工具、工作空间和生命周期。
| 经常混淆的概念 | 主要作用 | 不应默认推断 |
|---|---|---|
| Skill | 按需提供说明、知识和操作流程 | 加载 Skill 必然新建 Agent |
| Tool / MCP | 让 Agent 访问外部能力、数据或操作 | 每次工具调用都是一个自主 Agent |
| 子 Agent | 给独立执行循环一个子任务并回传结果 | 它拥有独立操作系统或更低权限 |
| 多模型路由 | 为请求选择不同模型 | 每个模型都是持续协作的 Agent |
| 多会话并行 | 同时运行多个任务 | 它们必然知道彼此或能安全合并结果 |
2. 从产品和研究看近期发展¶
| 时间 | 公开进展 | 意义与边界 |
|---|---|---|
| 2026 年 1 月 | Google Research 分析 180 种 Agent 配置 | 可并行任务与顺序任务对协作结构的需求不同,不能只比较 Agent 数量。研究 |
| 2026 年 4 月 | OpenAI 更新 Agents SDK,强调记忆、沙箱和编排 | 多 Agent 开始与工作区、上下文和恢复能力一起被产品化。发布说明 |
| 2026 年 8 月 | A2A 项目宣布加入 Agentic AI Foundation,并提到稳定版 1.0 | 跨框架、跨组织的 Agent 通信开始形成公共协议;协议不自动完成身份治理。A2A 公告 |
| 2026 年 9 月 | OpenAI 发布 Agents API,提供托管会话和子 Agent 编排 | 应用可以使用托管运行时,同时仍须治理自己的工具和数据。发布说明 |
| 2026 年 10 月 | 两项编程 Agent 预印本分别研究团队成本与共享仓库协作冲突 | 多 Agent 的效果、成本与任务结构密切相关,研究数据不应外推为通用性能承诺。成本研究 · 共享仓库研究 |
当前的发展不只是“Agent 可以互相聊天”,而是把委派、上下文压缩、任务状态、沙箱、权限与人工介入接入同一个运行环境。与此同时,跨厂商协议和可复现评测仍在演进。
3. 四种常见协作模式¶
| 模式 | 控制与数据流 | 适合 | 主要风险 |
|---|---|---|---|
| 主 Agent 委派 | 主 Agent 调用子任务并接收结果,最终负责汇总 | 并行研究、多个假设排查、代码审查 | 汇总遗漏、主 Agent 成为瓶颈 |
| 控制权交接(Handoff) | 当前 Agent 将后续对话或任务交给另一 Agent | 客服分诊、不同业务专家接管 | 丢失用户目标、权限与上下文 |
| 固定工作流 / 图 | 代码定义节点、依赖、并发、重试和汇合 | 审批、报表、受控发布 | 工作流设计成本,动态任务适应性有限 |
| 平级协作 / 团队 | 多个 Agent 可互相通信或认领任务 | 并行开发、复杂调查 | 消息噪声、重复劳动、冲突与失控成本 |
主 Agent 把专家当工具调用时,通常仍保留整体控制;交接则可能改变后续由谁响应用户。混合模式很常见:用确定性图控制关键步骤,在节点内让 Agent 自主探索。不能只看框架是否声称“支持多 Agent”,还要看它如何实现状态、汇合、超时和权限。OpenAI 编排与交接 · LangChain 多 Agent
4. 主流产品与框架¶
| 产品或项目 | 定位与可用能力 | 选型时要问 |
|---|---|---|
| Codex | 编程 Agent 可委派独立子任务并汇总;具体是否启用和并发受环境与配置约束 | 是否共享工作区?并发修改如何隔离?官方文档 |
| OpenAI Agents API | 托管会话与子 Agent 编排,提供创建、通信、等待和中断等能力 | 会话环境和工具凭据如何继承?事件能看到什么?官方文档 |
| Claude Code | 子 Agent 可配置工具和指令;Agent Teams 支持团队会话、任务与消息 | 实际版本是否支持团队模式?后台任务和权限如何配置?子 Agent · 团队 |
| OpenClaw | 多 Agent 路由为不同 Agent 配置工作区、身份及会话;也支持委派 | 工作区是否真的启用沙箱?跨会话与工具访问如何授权?官方文档 |
| LangChain / LangGraph / Deep Agents | 提供子 Agent、交接、图工作流和上下文管理等不同构件 | 要选择自托管还是托管?状态持久化和运行时隔离由谁负责?官方文档 |
| Microsoft Agent Framework | 提供顺序、并发、交接、群聊和管理者编排等模式 | 审批、状态持久化和执行环境由哪些组件提供?官方文档 |
| CrewAI | 使用 Crew 组织角色、任务及顺序或分层流程 | 如何定义任务、管理者权限与检查点?官方文档 |
| Google ADK | 提供组合 Agent 与工作流等开发构件 | 需要固定编排还是动态交接?外部 Agent 如何认证?官方文档 |
| A2A | 独立 Agent 间发现、任务与消息互操作协议 | 是否确实需要跨服务或跨组织?如何认证和限制对方能力?规范 |
SDK、用户产品、运行时和协议不是同一层的竞品。 例如 Codex 是交互式编程产品;Agents API 是应用集成入口;LangGraph 是可编排运行图的框架;A2A 是 Agent 间协议。选型先确定交付形态,再比较这些层面的组合。
OpenAI 的 Agents API 文档举例说明:同一会话的主 Agent 和子 Agent 可以共享执行环境文件系统,子 Agent 还可能继承配置的 MCP 工具及凭据。因此不能因为对话上下文分开,就认为子任务已被隔离。Agents API 多 Agent
Claude Code 的子 Agent 与 Agent Teams 是相关但不同的概念:前者适合把具体子任务交出去,后者面向多个会话之间更直接的协作。能力、可用性和具体限制随版本变化,以实际运行环境和官方文档为准。
5. 为什么更多 Agent 不一定更快¶
可把延迟近似理解为:
总耗时 ≈ 拆分与调度 + 各并行子任务的最长耗时 + 等待依赖 + 汇总与验证。
总成本 ≈ 各 Agent 的模型调用 + 工具调用 + 执行环境 + 重试与协调。
这是便于讨论的模型,不是精确计费公式。加并发可以缩短独立任务的关键路径,却无法消除最慢任务、共享限流或数据库瓶颈;上下文重复、消息传递、合并与重试还会增加成本。
2026 年 10 月的 Scaling Inference-Time Compute with Teams of Coding Agents 预印本在 ProgramBench 上发现,其多 Agent 团队优于单 Agent,但成本为后者约 3–7 倍;在该实验中,仅在规划阶段委派的配置可达到与全程委派相当的得分,而成本约减半。这是特定基准、模型与配置下的结果,不是所有任务的收益或成本倍数。
另一项 ParallACT 预印本研究共享代码仓库中的独立任务:即使每个任务单独看合理,接口不一致或需求冲突也可能让合并结果失败。论文在其特定冲突任务和模型设置下报告从 62% 降至 16% 的示例;它不代表所有 Agent 团队都会出现同样降幅。
实践上应先比较:单 Agent、单 Agent 并行工具调用、主 Agent 加少量只读子 Agent、分支隔离的并行写入。用同样的任务、验收标准和时间预算测量完成率、耗时、成本与回滚,而不是先定团队人数。
6. 上下文、工作区和通信¶
每个子任务至少需要:用户目标、当前问题、已知事实与来源、可用工具、允许操作范围、预期交付物、期限和停止条件。上下文过少会误解目标;完整复制所有历史则增加成本,还可能暴露不必要的信息。推荐传递任务摘要 + 必要证据引用 + 约束,让子 Agent 能按需读取原始材料。
结果不能只有“已完成”。建议包含结论、证据链接或文件、执行过的检查、未验证的假设、风险,以及下一步;主 Agent 对关键结论抽查原始证据,而不是把所有摘要直接拼接。
共享文件系统适合只读调查,但并行写入要提前设计:
- 按目录或模块划分写入所有权;共享接口由主 Agent 或指定负责人管理。
- 高冲突代码使用独立 Git 分支或 worktree,再按依赖顺序合并。
- 合并后运行跨模块集成测试;分别通过单元测试不等于组合通过。
- 外部系统写入使用幂等键、版本检查和审批;Git worktree 无法隔离共享数据库或线上 API。
对于跨服务的 Agent,MCP 主要连接工具和资源,A2A 主要提供 Agent 之间的任务和消息互操作;二者可组合使用,也不要求每个本地子 Agent 都使用 A2A。Agent Card 或服务发现解决的是如何找到对方,不等于已经验证其可信度和业务授权。A2A 与 MCP
7. 面向 Kubernetes 管理者的示例¶
下面是一个设计示例,不是生产实测:用户要求分析某集群 API Server 错误率升高。主 Agent 建立统一观察窗口和集群身份后,委派三个只读任务。
| 角色 | 只读输入 | 期望输出 | 不能做的事 |
|---|---|---|---|
| 指标 Agent | API Server、etcd、节点指标 | 时间序列、异常窗口、查询口径和链接 | 修改监控配置 |
| 日志 Agent | API Server 与审计日志 | 错误类型、样本和时间分布 | 导出无关敏感日志 |
| 变更 Agent | 发布、配置和事件记录 | 同期变更列表与证据 | 回滚生产变更 |
主 Agent 将证据按时间关联,明确支持与反驳,生成待验证假设。确定修复后,独立验证器检查影响范围,变更平台执行身份与审批;人批准后,由已有运维系统执行。模型能够提出修复,不等于它有权限直接执行修复。
相关的执行环境、安全隔离与长期恢复可继续阅读 Agent Harness、Agent 长任务中断续跑和 Agent Sandbox 选型。
8. 生产架构:任务账本、预算和恢复¶
flowchart TB
U[用户或事件] --> API[任务 API]
API --> ORCH[编排器与依赖图]
ORCH --> Q[任务队列]
Q --> W1[受限 Agent 工作负载]
Q --> W2[受限 Agent 工作负载]
W1 --> G[工具网关与授权]
W2 --> G
G --> S[业务系统]
W1 --> A[(任务事件与制品)]
W2 --> A
ORCH <--> A
ORCH --> V[验证与审批]
V --> O[结果和审计]
落地时至少明确以下责任:
- 任务账本:保存任务 ID、父子关系、输入版本、依赖、状态、尝试次数、产物和完成条件;区分失败、超时、取消与未知结果。
- 可靠交付:超时不代表外部动作没有执行。重试前查询目标系统回执,使用幂等键;状态恢复不能只依赖对话摘要。
- 权限:为每个任务授予最小权限,区分只读、草稿与写操作;密钥由服务端注入且不写进提示词或结果。
- 资源:设置总并发、子任务数、最大深度、Token / 金额预算、工具调用次数、期限和取消传播;为每个租户做配额和公平调度。
- 可观测性:用 Trace 串联父子任务、模型与工具;记录排队、执行、汇合耗时和成本;审计记录敏感操作但避免保存不必要的明文。
- 验收与降级:验证器独立检查制品和业务状态;部分失败时声明哪些已完成、哪些未执行,必要时降级为单 Agent 或人工处理。
Kubernetes 可以提供调度、网络策略、服务账号和运行时隔离,但 Pod 数量不等于 Agent 数量,也不能自动实现任务恢复、幂等或权限正确;实际安全边界仍取决于运行时、凭据、网络、共享存储与外部系统的设计。
9. 如何评估与分阶段引入¶
先做具有真实价值但低风险的只读任务,再引入受控写操作。准备固定任务集,至少包含可并行任务、顺序依赖任务、相互冲突的写入、工具失败、超时与恢复;各方案使用相同输入、验收器和预算。
| 指标 | 需要回答的问题 |
|---|---|
| 端到端成功率 | 最终交付是否满足业务验收,而不只是子任务都结束? |
| 总耗时与关键路径 | 是否真的比单 Agent 更快?排队和汇总花了多久? |
| 总成本 | 模型、工具、执行环境和失败重试各花多少? |
| 依赖与冲突 | 接口是否匹配,合并后测试是否通过,有多少返工? |
| 恢复与安全 | 重试是否重复执行副作用?是否出现越权或泄漏? |
| 人工介入 | 审核、追问和修复占用了多少时间? |
AsynCodeBench 等研究开始把跨 Agent 依赖是否得到满足也作为评价对象。它提示我们:任务最终成功率是必要指标,但还应观察协作过程中的依赖与等待,才能找到瓶颈。
建议引入顺序:单 Agent 基线 → 两到三个并行只读子任务 → 受控写入与独立验证 → 需要时再考虑跨团队 A2A。每一步都保留回退路径;确实能证明质量、时间或人工成本收益,再扩大使用范围。