第五阶段 · 多 Agent 与并行第 19 / 30 章
本章目录

第 19 章 · 子 Agent 与上下文隔离

本章目标:把子 Agent 理解为独立上下文、工具与预算的工作单元,而不是简单复制一个“人格”。

1. 为什么需要子 Agent

主线程保存用户需求、关键约束和架构决定。如果大量搜索结果、测试日志和候选问题都进入主上下文,长期任务会越来越混乱。子 Agent 可以在新窗口完成有边界工作,只把摘要和证据交回主线程。

因此第一价值是隔离噪声,第二价值才是并行加速。

2. 一份好的委派消息

子 Agent 不自动知道主对话全部历史。主 Agent 要提供:

“帮我看看代码”太宽;“只读检查 auth 模块中过期 token 路径,返回入口、相关测试和三个最可能根因,不修改文件”才是可执行委派。

3. 独立上下文意味着什么

子 Agent 不应看到无关用户隐私和所有主线程工具。它可以使用不同模型、不同 system prompt、只读权限和独立 MCP 服务器。完成后返回结构化摘要,原始日志留在子线程。

这种隔离也有成本:主 Agent 的委派摘要可能遗漏关键细节,子 Agent 也可能重新读取已经读过的文件。是否值得取决于任务噪声和独立性。

4. 角色不是目的

Explorer、Implementer、Tester 和 Reviewer 是常见角色,但角色名本身不会提高质量。真正影响行为的是目标、上下文、工具、权限和验收标准。一个名叫“安全专家”的 Agent 如果拥有全写权限且没有安全规则,并不会自动安全。

可以把角色配置视为预设的系统参数,而不是虚构团队成员。

5. 子 Agent 不能无限递归

允许子 Agent 再生成子 Agent 会迅速失去预算和责任边界。多数系统限制嵌套层级,由主 Agent 统一调度。需要多阶段工作时,子 Agent 返回结果,主 Agent 再决定下一委派。

后台子 Agent 无法实时询问用户时,应自动拒绝需要新审批的工具。否则任务会悄悄等待,主线程却不知道阻塞原因。

6. 返回结果怎样验收

主 Agent 不应直接相信“检查完成”。返回应包含结论、证据位置、执行过的检查、未知项和置信度。写入型子 Agent 还要提供独立 diff 和测试结果。

上下文隔离不是事实隔离

子 Agent 返回的摘要仍可能错误。隔离解决噪声和权限范围,不替代验证。关键发现必须能追溯到文件、命令或外部来源。