跳转到内容

子 Agent 委派模式:隔离上下文与并行执行

子 Agent 委派模式:隔离上下文与并行执行

1. 概念定义

子 Agent 委派(Sub-Agent Delegation)是一种多 Agent 设计模式。Lead Agent 遇到复杂任务时,不是自己一步步处理,而是动态生成一个或多个子 Agent,每个子 Agent 负责一个子任务。

关键特征:

  • 隔离上下文:子 Agent 无法看到 Lead Agent 或其他子 Agent 的上下文
  • 专用工具集:每个子 Agent 可以配置不同的工具(如专用 bash Agent)
  • 独立终止条件:每个子 Agent 有自己的超时和结束条件
  • 并行执行:多个子 Agent 可以同时运行,缩短总体任务时间

2. 典型架构

3. 并发控制

子 Agent 的并发执行需要严格控制:

  • 最大并发数:通常 3-5 个,避免资源耗尽和 Token 爆炸
  • 线程池架构:调度线程池(负责任务分发)+ 执行线程池(负责实际运行)
  • 超时机制:每个子 Agent 有独立的超时(如 15 分钟),超时后强制终止
  • 结果归集:子 Agent 完成后将结果返回 Lead Agent 合成

4. 上下文隔离的必要性

不隔离上下文的问题:

  • 注意力分散:子 Agent 看到 Lead Agent 的完整对话历史,容易偏离当前子任务
  • Token 浪费:每个子 Agent 的请求都携带大量无关上下文
  • 状态污染:子 Agent 可能误操作 Lead Agent 的状态

5. 陷阱与规避

5.1 过度委派

Lead Agent 可能将简单任务也委派给子 Agent,增加不必要的延迟。

规避:在 Lead Agent 的系统提示中明确”什么应该委派、什么应该自己做”。

5.2 结果合成困难

多个子 Agent 的输出格式不一致,Lead Agent 难以整合。

规避:定义子 Agent 结果的标准化 schema,包含 deliverables、status、errors 字段。

5.3 并发竞争

并行子 Agent 同时读写共享资源(如文件系统)。

规避:每个子 Agent 分配独立的工作目录,Lead Agent 负责最终整合。

6. 适用场景

  • 长程研究:同时探索多个信息源
  • 多文件编辑:并行修改多个不相关的文件
  • 数据管道:独立的 ETL 步骤可并行执行
  • 内容生成:文字、图片、代码生成可分工

参考来源

案例补充:CodeWhale 子 Agent 角色分类学

本补充基于 CodeWhale 源码分析,首次覆盖于 2026-06-01。

CodeWhale 提供了最系统化的子 Agent 角色分类(taxonomy),定义了 6 种角色 + 1 种自定义:

角色写入权限Shell 策略典型场景
general默认,多步任务
explore只读代码探索,查找调用点
plan最小最小设计策略,不执行
review只读PR 审计,分级评分
implementer最小修改,落地变更
verifier测试导向运行测试,报告结果
custom取决于 allowlist取决于 allowlist锁定工具集的派发

关键设计模式

  1. 输出契约:每个子 Agent 必须输出五段式结果(SUMMARY/CHANGES/EVIDENCE/RISKS/BLOCKERS),父 Agent 直接从 EVIDENCE 段读取工作集
  2. 完成哨兵:子 Agent 完成后,运行时将摘要注入父会话的 <codewhale:subagent.done> 哨兵,父模型无需额外工具调用即可读取
  3. 上下文 Fork 策略fork_context: true 让子 Agent 继承父的前缀 + 状态快照,保持 DeepSeek 前缀缓存复用的同时获得上下文
  4. 会话边界:每个 SubAgentManager 实例分配 session_boot_id,防止将旧会话的遗留记录误认为活跃工作
  5. 并发上限与 Batch 模式:默认 10,硬上限 20,超出时父 Agent 应 batch 处理