模式矩阵 /模式白皮书/C5

C5 · Sub-Agent Isolation · 子代理隔离

字段
双轴坐标 协作 Collaboration × 层级 Hierarchy(分)
成本档 ☷(跨切关注点,叠加在其他协作模式上)
课程对应 并入 07-02 / 07-01 讲(是独立模式)
目录归属 全集 33 模式之一 · 协作模块 5 模式之一
一句话 子 agent 在独立 context 中执行,返回前必须压缩成 schema 化 artifact,主 agent 只看 artifact 不看 raw trajectory。

它解决什么问题

主 agent 派 sub-agent 干活,sub-agent 跑完把全部工作过程 dump 回来,主 agent 的 context 立刻被淹没。50 份合同每份 3000 字的详细分析回传就是 15 万字,主 agent 接到后推理质量断崖式下降。问题的根子是主 agent 不该看 sub-agent 的 raw 工作过程,只该看工作结论——就像律所的 PM 不会要求每个律师汇报读了哪一行字,只看"哪几份异常加它们的关键问题"。

子代理隔离解决的是 enterprise multi-agent 系统的 context pollution。它让每个 sub-agent 跑在自己的隔离 context 里,返回前强制 reduce 成结构化 artifact,主 agent 只消费 artifact。这件事的工程价值独立到值得单独成一个模式:它是层级委派、扇出聚合这些协作模式能在生产环境跑稳的内功,没有它,主 agent 第三个任务必爆 context、多 agent 跑久了必然 cascade。

为什么坐标是「协作 × 层级」

核心机制

子代理隔离由四件工程要素构成:

  1. Context 隔离:sub-agent 启动时不继承 parent 的 history,只收到自己的 system prompt、具体的 task instruction、自己的 tool set。它看不到主 agent 跑过什么、其他 sub-agent 在做什么。
  2. Artifact schema 化返回:sub-agent 返回的不是自由文本总结,是结构化 artifact(pydantic model 或 JSON schema)。推荐三层结构——verdict(success / partial / failure)、top findings(3-5 条)、citations(可选)。这让主 agent 能用确定性代码直接 parse,不用再花 token 解析。
  3. 失败 boundary 隔离:一个 sub-agent timeout 或抛异常,主 agent 收到的是 verdict=failure 的 artifact,而不是被异常炸掉。N 个 sub-agent 中 1 个挂掉只损失 1/N。
  4. 并行互不干扰:N 个 sub-agent 各跑各的 context,互相看不到中间状态,也不直接通信——要交换信息必须经过主 agent。

适合的生产场景

容易出错的地方

关键指标

最小骨架

IsolatedSubAgent.execute(task):
    local_context = [system_prompt, task]      # 不传入 parent history → Context 隔离
    try:
        raw = run_loop(task, local_context)     # 独立 LLM call + 独立 tool set
    except: return Artifact(verdict="failure")  # 失败 boundary
    return reduce_to_artifact(raw)              # 强制压成 verdict/findings/citations

SupervisorWithSubAgents.execute(task):
    artifacts = 并行 gather(                     # N 个并行,各自独立 context → 互不干扰
        sub.execute(dispatch_subtask(task, sub)) for sub in sub_agents
    )
    return synthesize_from_artifacts(artifacts) # 主 agent 只看 artifact 不看 raw trajectory

四个工程要点对应四件要素:本地 messages 起跑实现 context 隔离;reduce_to_artifact 实现 schema 化返回;try/except 加 timeout 实现失败 boundary;并行 gather 加各自独立 context 实现互不干扰。

企业落地一例

某律所的合同审阅 Agent,第一版主 agent 派 sub-agent 扫描 50 份合同,sub-agent 把每份 3000 字的详细分析全部回传,主 agent 接到 15 万字后 context 完全爆炸。第二版加上四件隔离要素:每份合同分一个独立 sub-agent(context 隔离)、返回前强制 reduce 成固定 schema 的 artifact(verdict、top_3_concerns、recommendation 三字段必填)、每份合同独立 fresh review 不被其他合同 prime、某个 sub-agent 挂掉不影响其他 49 份、主 agent context 永远控制在 5 万 token 以内(50 份 artifact 加起来不到 1 万字,留 4 万给主 agent 推理)、低 confidence 的合同直接 mark 升人工。改完之后 50 份合同 1 小时跑完,主 agent 拿 1 万字 artifact 做 high-level 综合,律师 review 报告不到 1 小时。Claude Code 的 Task tool 是这个模式最完整的工业实现——子 agent 在完全独立的 context 跑(无主 agent history、独立 LLM call、独立 tool set),跑完只返回 final summary,主 agent 看不到子 agent 的中间 thinking 和 tool calls,50 次 grep 调用不会进主 agent 的 context。

与其他模式的关系

一句话记住它

子代理隔离看上去是 context 优化,本质是把组织管理里的信息分层精神编码进 agent 系统——CEO 看 manager 的 summary 不看每个员工的细节,主 agent 看 sub-agent 的 artifact 不看 raw trajectory,这是 multi-agent 系统从 demo 到生产的最后一公里。


本页属于 ADPS 33 模式白皮书。返回 模式矩阵与白皮书目录, 或查看配套 可运行代码目录