Subagents - Agentic Engineering Patterns
为什么需要 Subagents
LLM 受限于上下文窗口限制 (通常最多 100 万 tokens,但最佳质量在 20 万以下)。
Subagents 提供了一种简单有效的方式来处理更大任务,而不消耗父代理的宝贵上下文。
Subagent 工作原理
当编码代理使用 subagent 时,它有效地将自身的全新副本派出去实现指定目标,使用从新提示开始的全新上下文窗口。
Claude Code 的 Explore subagent 示例:
任何时候你针对现有仓库启动新任务,Claude Code 首先需要探索仓库以弄清楚其整体形状并找到完成该任务所需的相关信息。
它通过构建提示并派出一个 subagent 来执行探索并返回其发现的描述。
Parallel Subagents
Subagents 还可以通过让父代理同时运行多个 subagent 来提供显著的性能提升,可能还可以使用更快、更便宜的模型(如 Claude Haiku)来加速这些任务。
"Use subagents to find and update all of the templates that are affected by this change."
Specialist Subagents
一些编码代理允许 subagent 进行进一步自定义,通常采用自定义 system prompt 或自定义工具的形式:
- Code reviewer agent - 审查代码并识别 bug、功能差距或设计弱点
- Test runner agent - 运行测试,特别适合大型冗长的测试套件
- Debugger agent - 专门调试问题,隔离复现步骤并确定 bug 根本原因
官方文档
- OpenAI Codex subagents
- Claude subagents
- Gemini CLI subagents
- Mistral Vibe subagents
- OpenCode agents
- VS Code Subagents
- Cursor Subagents
核心价值
Subagents 的主要价值在于保留宝贵的根上下文并管理 token 密集型操作。你的根编码代理完全能够自行调试或审查输出,前提是它有足够的 tokens。