⚠️ 源单薄性声明 本条目素材以 Anthropic 官方 doc 为主(sub-agents.md + agent-sdk/subagents.md 共 736 行)+ Boris 散点提及。没有独立第三方使用报告、没有社群失败案例。 已讲清楚:subagent 是什么、怎么定义、什么时候用 还没听到:真实项目里 subagent 把事情变复杂/变简单的对比案例 本条目视为”官方视角的 subagent 说明书”,社群用起来后再补”实战避坑”段。

一句话

Subagent = 独立 context window 的 Claude 实例,主 session 派给它一个任务,它自己干完把摘要交回来。

不是”多个 Claude 在聊天”,也不是新模型——就是一个”能被主 session 调用的带独立 context 的 worker”。

为什么会有这东西

来源:agent-sdk/subagents.mdcontext-window 相关 doc。

核心动因是 context 预算管理(参见 Context Window 与上下文管理)。场景:

你让 Claude “去把整个 repo 里所有用到 useState 的地方找出来并分析”。它 grep + 读 20 个文件 = 往主 session 塞进去几万 token 的代码,后面你继续问别的它已经开始忘前面的事了。

Subagent 的解法:让一个 subagent 去干这个 grep + 读文件的脏活,它自己烧自己的 context,最后只把”分析结论摘要”回传主 session。主 session 一直保持干净。

Boris 在 pragmatic 访谈里把这个讲得更狠(Context Window 与上下文管理 条目里已引):subagent 首先是 context 隔离器,其次才是功能划分

怎么定义一个 subagent

来源:sub-agents.md 的 frontmatter 字段表。

Subagent 就是一个 md 文件,放在 .claude/agents/(项目级)或 ~/.claude/agents/(用户级):

---
name: security-reviewer
description: Reviews code for security vulnerabilities
tools: Read, Grep, Glob, Bash
model: opus
---
You are a senior security engineer. Review code for:
- Injection vulnerabilities (SQL, XSS, command injection)
- Authentication and authorization flaws
- Secrets or credentials in code
- Insecure data handling
 
Provide specific line references and suggested fixes.

支持的 frontmatter 字段(sub-agents.md

字段作用
name必填。subagent 标识
description必填。Claude 靠这个字段决定何时调用这个 subagent。写清楚”什么情况下用”
tools可给 subagent 的工具列表(默认全部)。锁死工具 = 限制 subagent 的破坏半径
modelsonnet/opus/haiku/全名。可以为批量 subagent 选便宜模型省钱
skills预加载 skill 列表——subagent 不继承主 session 的 skill
permissionMode为这个 subagent 单独覆盖权限模式
isolationworktree → 在独立 git worktree 里跑(不污染主仓库)
autoMemorytrue → 开持久记忆,存 ~/.claude/agents/memory/<name>/

三条核心好处(官方列,有用)

agent-sdk/subagents.md 明确列的 4 个 benefit,合并成 3 条:

1. Context 隔离(最核心)

research-assistant 可以读 20 个文件——这 20 个文件的全部 token 不进入主 session。主 session 只收到它的最终总结。

2. 并发

多个 subagent 可以同时跑style-checker + security-scanner + test-coverage 三个 subagent 并行评审,从几分钟变几秒。

3. 工具限制(安全边界)

doc-reviewer 只给 ReadGrep——它能分析但物理上不可能修改文档。比”告诉 Claude 别改”靠谱。

什么时候该用 subagent

官方 doc 的建议合起来就一句话:

主任务会被一堆不相关的中间产物塞满 context 时——把这堆中间产物塞进 subagent。

具体场景:

  • 读大量文件的分析任务(code review, 找用法, 统计)
  • 重复性任务(10 个文件各自检查一遍)
  • 需要不同模型/工具权限的任务(主 session Opus 做设计,subagent Haiku 批量处理)
  • 保护主 session context 预算

什么时候该用

官方没明说但能从 agent-teams 对比推断:

  • 顺序依赖的任务——subagent 并发没意义
  • 需要几个 worker 互相讨论的任务——subagent 不能相互通信(那是 Agent Teams 是啥 的事)
  • 简单任务——spawn subagent 本身有开销,小事不值得

内建的三个 subagent

sub-agents.md 列:

名字用途
general-purpose默认——大多数委托场景
Explore只读——代码库探索
Plan规划分析,不改文件

不用自己定义,直接可用。

Subagent vs. Agent Teams(重要)

agent-teams.md 明确区分:

SubagentAgent Team
context独立,只回摘要给主独立,成员间可通信
communication只向主 session 报告teammate 互相发消息
coordination主 session 管共享任务列表,自协调
最合适结果即可的聚焦任务需要讨论和协作的复杂任务
token 成本低(结果被摘要回主 context)高(每个 teammate 是独立 Claude 实例)

Agent Teams 是啥大多数时候你要的是 subagent,不是 agent team。

陈彬视角

社群里目前还没人真的深度用 subagent(2026-04 这个时点)。这条目先以”看懂官方意思”为目标。

一个实操提醒:subagent 不是越多越好。起手只在两个场景试:

  1. 分析任务(我要读一堆东西然后得结论)
  2. 评审任务(我要并行跑几个专业视角)

业务逻辑类任务先不要 subagent 化——主 session 自己管得更清楚,也更容易调试。

关联

needs_sources(明确待补)

  • 社群好朋友的真实 subagent 使用案例(目前只有 Boris 和 Anthropic 自己)
  • subagent 把事情搞复杂的反面案例
  • 非 Anthropic 视角的批评/建议