CHAPTER 07 / 11
Subagents,别再让 Claude 一个人干活了
Subagents 让 Claude 学会像一个优秀的管理者一样,把复杂工作拆分、委派和协同完成。
如果说Claude的记忆与 CLAUDE.md 是在教 Claude 如何记住事情,那么这一篇要讲的,就是如何让 Claude 学会带团队。
很多人使用 Claude Code 的方式,其实非常像刚入职的管理者:所有事情都自己做。查代码自己查,写代码自己写,审查代码自己审,写文档自己写,查资料自己查。
结果就是上下文越来越长,响应越来越慢,Claude 开始遗忘前面讨论过的内容,一次复杂任务做到后面越来越容易跑偏。
而 Subagents(子代理)的出现,本质上就是解决这个问题。它让 Claude 不再是一个单兵作战的程序员,而是变成一个拥有多个专业助手的项目经理。
什么是 Subagents?
官方定义比较复杂。如果用一句人话解释,Subagent 就是 Claude 的分身。
当 Claude 遇到某些任务时,它可以把工作交给另一个专门的 Claude 去完成。
例如你说,帮我分析这个项目的登录流程。
Claude 不一定亲自去翻几十个文件。它可能会启动一个 Explore Agent:
搜索代码
查找路由
阅读认证逻辑
梳理调用链最后只返回一句总结:JWT 校验逻辑位于 middleware/auth.js,通过 api/router.js 调用。
而那些搜索过程、文件读取过程、分析过程,全部留在子代理自己的上下文里,主对话不会被污染。
为什么 Subagents 如此重要?
要理解 Subagents,必须先理解 Claude 最大的限制。
Context Window(上下文窗口)
每一次对话:
你的提问
Claude 的回答
文件读取
工具调用
搜索结果都会进入上下文。例如你让 Claude 帮我分析支付系统,它可能:
读取20个文件
搜索50次
查看各种日志最终回答可能只有200字。但前面产生的几万字分析过程,已经塞满了上下文。
久而久之 Claude 会越来越健忘。很多人觉得 Claude 怎么越聊越笨?其实不是变笨,而是上下文被无关信息占满了。
Subagents 是如何工作的?
可以把它想象成这样:
你
↓
主 Claude
↓
───────────────
│ Explore Agent │
│ Review Agent │
│ Test Agent │
│ Writer Agent │
───────────────当你提出任务:分析项目结构。
主 Claude:
我自己不分析
我派 Explore Agent 去Explore Agent 会:
读取文件
搜索代码
分析架构
整理结果最后返回:
项目采用DDD架构
认证模块位于xxx
支付模块位于xxx然后,整个子代理的上下文直接销毁,主线程只保留最终结论。
这就是它节省 Context 的核心原理。
Claude Code 自带哪些 Subagents?
Claude Code 默认内置了几个 Agent。
1、General Purpose 通用代理
适合:
多步骤任务
复杂任务拆分
综合分析2、Explore Agent 探索型代理
适合:
阅读代码库
搜索文件
查找函数
理解架构这是最常被调用的 Agent。
3、Plan Agent 规划型代理
当你进入 Plan Mode 时经常会看到。负责:
调研代码
设计方案
输出实施计划如何创建自己的 Subagent?
最简单的方法:
/agents进入后选择:
Create New Agent然后 Claude 会一步步引导你完成配置。

创建时需要选择什么?
第一步:选择范围
Project Agent
.claude/agents/仅当前项目可见。
适合:
当前项目专用规范
项目专属工作流User Agent
~/.claude/agents/所有项目共享。 适合:
通用代码审查
通用文档写作
通用测试生成
第二步:选择工具
Claude 会询问:允许使用哪些工具? 例如:
只读工具(Read-only)
Read
Glob
Grep适合:
代码分析
架构调研编辑工具(Edit)
Edit
Write适合:
自动修改代码
自动生成文件执行工具(Execution)
Bash适合:
运行命令
执行测试
Git操作这里有个原则——永远给最小权限。
例如代码审查 Agent,根本不需要 Write 权限。

Agent 文件长什么样?
创建完成后,Claude 会生成:
.claude/agents/code-reviewer.md类似这样:
---
name: code-reviewer
description: 审查代码质量和安全问题
tools: Read, Grep, Bash
model: sonnet
color: purple
---
你是一名资深代码审查专家...这里面有两个最重要的部分。
第一部分:Description
很多人以为 Description 只是介绍,其实不是。它决定 Claude 什么时候调用这个 Agent。例如:
description: 用于审查最近修改的代码,发现质量、安全和性能问题Claude 看到代码变更时就更容易自动调用它。
第二部分:System Prompt
这是真正的灵魂。例如:
你是一位资深代码审查专家
重点关注:
- 安全问题
- 性能问题
- 可维护性
- 项目规范这部分决定 Agent 的专业能力边界。同样都是 Claude,不同 Prompt,表现可能天差地别。
一个很多人不知道的技巧:Proactively
如果你希望 Claude 主动调用 Agent,可以在 Description 里加入:
description: Proactively suggest running this agent...意思是:
主动建议使用该 Agent这样很多场景下无需手动指定, Claude 会自动委派。
什么样的 Subagent 最有价值?
这是很多人最容易踩坑的地方。
场景1:代码库调研
这是 Subagent 的最佳应用场景。例如:
帮我分析认证系统Explore Agent:
读20个文件
搜索50次
分析调用链主线程:
只收到结果非常省 Context。
场景2:代码审查
很多人不知道, Claude 审查自己写的代码,效果其实一般。原因很简单,它参与了代码编写过程,容易产生“路径依赖”。而独立的 Review Agent 因为没有历史上下文,会更容易发现问题。
场景3:文案写作
Claude Code 默认 Prompt 偏工程师,所以写营销文案时,容易出现:
正确
专业
但没有感染力这时候可以专门创建 Copywriter Agent ,写入:
品牌调性
用户画像
写作风格效果会明显提升。
什么样的 Subagent 没意义?
这是最值得避免的坑。
坑1:专家人格 Agent
例如:
Python Expert
Java Expert
Kubernetes Expert意义很小,因为 Claude 本来就会这些,换个名字不会变得更聪明。
坑2:流水线 Agent
例如:
Agent A 找Bug
↓
Agent B 分析Bug
↓
Agent C 修复Bug看起来很高级,实际上经常翻车。因为每次交接都会丢失信息,调试问题往往需要完整上下文,拆开反而更差。
坑3:测试 Agent
很多人会做 Test Runner Agent,然后:
运行测试
告诉我结果问题在于,测试失败时你真正需要的是:
完整日志
完整报错
完整堆栈而不是一句测试失败了,所以这类场景通常直接运行更好。
高手如何设计 Subagent?
看了很多优秀配置后,我总结出三个原则。
原则一:单一职责
不要做全能开发助手,要做:
代码审查
文档生成
安全检查
测试编写每个 Agent 只负责一件事。
原则二:定义输出格式
这是提升效果最大的技巧。例如:
1. 总结
2. 严重问题
3. 主要问题
4. 次要问题
5. 建议
6. 是否通过Agent 就知道什么时候该停止,什么时候该返回结果,不会无限探索。
原则三:记录障碍
增加一个部分:
Obstacles Encountered要求 Agent 汇报:
环境问题
特殊配置
解决方案
关键命令否则下一次还要重新踩坑。
我最推荐新手创建的 5 个 Subagents
如果你刚开始玩 Claude Code,我建议先做这几个:
1、Code Reviewer 审查代码质量
2、Security Reviewer 检查安全问题
3、Documentation Writer 生成文档
4、Test Engineer 编写测试
5、Explore Agent 专门阅读代码库
这些几乎覆盖了日常开发 80% 的场景。
很多人使用 Claude Code 时,仍然停留在我问一句,它答一句的阶段。
但真正高效的开发方式,不是把 Claude 当成一个程序员,而是把它当成一个组织。
你负责目标,主 Agent 负责协调,Subagents 负责执行。
当任务开始被拆解,当上下文开始被隔离,当不同角色开始各司其职,你会发现 Claude Code 的能力边界突然被拉大了。
从某种意义上说,Subagents 教会我们的不只是如何管理 AI,而是在提醒我们:
复杂问题从来不是靠一个人变得更强来解决的,而是靠把正确的事情交给正确的角色。
这也是软件工程、组织管理乃至整个社会运行最重要的底层规律之一。