Subagent 是主 Claude 派出去跑腿的临时工:活在别处干,只把结果带回来,过程中的草稿和废料不进你的办公室。
一个具体例子
你让 Claude 在一个 500 个文件的项目里找某个函数的定义。
不用 subagent:Claude 自己一个个翻文件,翻完之后,那 499 个没用的文件内容全留在它的”脑子”(上下文窗口)里。等你接着让它干正事,它的脑容量已经被垃圾占掉一半,开始变笨。
用 subagent:主 Claude 派一个 Explore 子代理去翻。子代理在自己独立的上下文里翻完 500 个文件,回来只说一句:“在 utils/date.ts 第 42 行。“主 Claude 的脑子里只多了这一句话。
它是什么 / 不是什么
是:一个用 markdown 文件定义的角色(放在 .claude/agents/ 下),可以指定它能用哪些工具、什么权限、用哪个模型。Claude Code 自带 5 个内置类型(如快速搜索用的 Explore、规划用的 Plan),你也可以自己写(比如”代码审查员""安全检查员”)。
不是:另一个 AI。它和主 Claude 是同一个模型,区别只在于——它带着单独的任务出发,在隔离的上下文里工作,干完就解散。它也不是多线程魔法:一次派多个 subagent 并行干活是真的,但每个都是独立计费的对话。
为什么这个概念存在
因为上下文窗口是 Claude 最稀缺的资源。所有读过的文件、跑过的命令、犯过的错都堆在里面,堆得越满,它越笨(见 Memory 里的 context 问题)。Subagent 的本质就一句话:把”过程很脏、结论很短”的活外包出去,只让结论回来。
没有它会怎样:任何大检索、大调研任务都会把主会话的上下文吃光,你只能不停开新会话、重新交代背景。
相关概念
Slash Command 常作为入口把任务派给 subagent;subagent 可以通过 frontmatter 预载 [what-is-a-skill|Skill];Hook 能监听 subagent 的启动和结束。三层组装模式:Command → Subagent → Skill。