Subagent(子代理)

在独立的隔离沙箱中运行的Agent实例,从空白的messages[]开始,完成任务后将结果返回主绘画。

核心机制

  1. 主绘画运行到某个上下文量(如200K tokens)
  2. 主绘画识别到一个可独立、可拆分的整块任务
  3. 启动一个Subagent,传入任务描述
  4. Subagent从零开始(独立messages[]),在自己的上下文中完成
  5. 将完成结果返回主绘画
  6. 主绘画保持上下文清洁

唯一用途:保持主绘画上下文清洁

Subagent不是为了并行处理或加速——它是为了上下文隔离,防止主绘画被大量工具输出污染。

致命缺陷:渐进式信息偏移

主绘画给Subagent传递复杂需求时,出现省略→不精准→多次漂移

  • 300-500行PRD需求经过主绘画总结→传给子代理只用300字
  • 每次传递都有信息损耗
  • 形成渐进式偏移,最终产出与原始需求脱节

解决思路:Hook截取完整需求→启动子代理时注入;或主绘画把需求落盘→子代理每次读取。

不同流派的态度

流派态度替代方案
learn-claude-code (工程派)✅ 核心机制(s06)独立messages[]
pi-coding-agent (极简派)❌ 黑箱中的黑箱bash自调用+tmux
Harness串讲 (实用派)⚠️ 有用但有缺陷Hook补强

另一种视角

Mario Zechner认为Subagent在中途用于上下文收集是规划失败的信号——应该在独立会话中先收集上下文,产出artifact,再在新会话中使用。

相关概念