如果说Claude的记忆与 CLAUDE.md 是在教 Claude 如何记住事情,那么这一篇要讲的,就是如何让 Claude 学会带团队。

很多人使用 Claude Code 的方式,其实非常像刚入职的管理者:所有事情都自己做。查代码自己查,写代码自己写,审查代码自己审,写文档自己写,查资料自己查。

结果就是上下文越来越长,响应越来越慢,Claude 开始遗忘前面讨论过的内容,一次复杂任务做到后面越来越容易跑偏。

而 Subagents(子代理)的出现,本质上就是解决这个问题。它让 Claude 不再是一个单兵作战的程序员,而是变成一个拥有多个专业助手的项目经理。

什么是 Subagents?

官方定义比较复杂。如果用一句人话解释,Subagent 就是 Claude 的分身。

当 Claude 遇到某些任务时,它可以把工作交给另一个专门的 Claude 去完成。

例如你说,帮我分析这个项目的登录流程。

Claude 不一定亲自去翻几十个文件。它可能会启动一个 Explore Agent:

CODE
搜索代码
查找路由
阅读认证逻辑
梳理调用链

最后只返回一句总结:JWT 校验逻辑位于 middleware/auth.js,通过 api/router.js 调用。

而那些搜索过程、文件读取过程、分析过程,全部留在子代理自己的上下文里,主对话不会被污染。

为什么 Subagents 如此重要?

要理解 Subagents,必须先理解 Claude 最大的限制。

Context Window(上下文窗口) 

每一次对话:

CODE
你的提问
Claude 的回答
文件读取
工具调用
搜索结果

都会进入上下文。例如你让 Claude 帮我分析支付系统,它可能:

CODE
读取20个文件
搜索50次
查看各种日志

最终回答可能只有200字。但前面产生的几万字分析过程,已经塞满了上下文。

久而久之 Claude 会越来越健忘。很多人觉得 Claude 怎么越聊越笨?其实不是变笨,而是上下文被无关信息占满了。

Subagents 是如何工作的?

可以把它想象成这样:

CODE
你
 ↓
主 Claude
 ↓
───────────────
│ Explore Agent │
│ Review Agent  │
│ Test Agent    │
│ Writer Agent  │
───────────────

当你提出任务:分析项目结构。

主 Claude: 

CODE
我自己不分析
我派 Explore Agent 去

Explore Agent 会: 

CODE
读取文件
搜索代码
分析架构
整理结果

最后返回:

CODE
项目采用DDD架构
认证模块位于xxx
支付模块位于xxx

然后,整个子代理的上下文直接销毁,主线程只保留最终结论。

这就是它节省 Context 的核心原理。

Claude Code 自带哪些 Subagents?

Claude Code 默认内置了几个 Agent。

1、General Purpose 通用代理

适合:

CODE
多步骤任务
复杂任务拆分
综合分析

2、Explore Agent 探索型代理

适合: 

CODE
阅读代码库
搜索文件
查找函数
理解架构

这是最常被调用的 Agent。

3、Plan Agent 规划型代理

当你进入 Plan Mode 时经常会看到。负责:

CODE
调研代码
设计方案
输出实施计划

如何创建自己的 Subagent?

最简单的方法:

CODE
/agents

进入后选择:

CODE
Create New Agent

然后 Claude 会一步步引导你完成配置。

创建时需要选择什么?

第一步:选择范围 

Project Agent 

CODE
.claude/agents/

仅当前项目可见。 

适合:

CODE
当前项目专用规范
项目专属工作流

User Agent 

CODE
~/.claude/agents/

所有项目共享。 适合: 

CODE
通用代码审查
通用文档写作
通用测试生成

第二步:选择工具 

Claude 会询问:允许使用哪些工具? 例如: 

只读工具(Read-only)

CODE
Read
Glob
Grep

适合:

CODE
代码分析
架构调研

编辑工具(Edit)

CODE
Edit
Write

适合: 

CODE
自动修改代码
自动生成文件

执行工具(Execution)

CODE
Bash

适合: 

CODE
运行命令
执行测试
Git操作

这里有个原则——永远给最小权限。

例如代码审查 Agent,根本不需要 Write 权限。

Agent 文件长什么样?

创建完成后,Claude 会生成:

CODE
.claude/agents/code-reviewer.md

类似这样: 

CODE
---
name: code-reviewer
description: 审查代码质量和安全问题
tools: Read, Grep, Bash
model: sonnet
color: purple
---
你是一名资深代码审查专家...

这里面有两个最重要的部分。

第一部分:Description 

很多人以为 Description 只是介绍,其实不是。它决定 Claude 什么时候调用这个 Agent。例如:

CODE
description: 用于审查最近修改的代码,发现质量、安全和性能问题

Claude 看到代码变更时就更容易自动调用它。 

第二部分:System Prompt 

这是真正的灵魂。例如: 

CODE
你是一位资深代码审查专家
重点关注:
- 安全问题
- 性能问题
- 可维护性
- 项目规范

这部分决定 Agent 的专业能力边界。同样都是 Claude,不同 Prompt,表现可能天差地别。

一个很多人不知道的技巧:Proactively 

如果你希望 Claude 主动调用 Agent,可以在 Description 里加入: 

CODE
description: Proactively suggest running this agent...

意思是: 

CODE
主动建议使用该 Agent

这样很多场景下无需手动指定, Claude 会自动委派。

什么样的 Subagent 最有价值?

这是很多人最容易踩坑的地方。

场景1:代码库调研 

这是 Subagent 的最佳应用场景。例如:

CODE
帮我分析认证系统

Explore Agent: 

CODE
读20个文件
搜索50次
分析调用链

主线程: 

CODE
只收到结果

非常省 Context。 

场景2:代码审查 

很多人不知道, Claude 审查自己写的代码,效果其实一般。原因很简单,它参与了代码编写过程,容易产生“路径依赖”。而独立的 Review Agent 因为没有历史上下文,会更容易发现问题。 

场景3:文案写作 

Claude Code 默认 Prompt 偏工程师,所以写营销文案时,容易出现: 

CODE
正确
专业
但没有感染力

这时候可以专门创建 Copywriter Agent ,写入:

CODE
品牌调性
用户画像
写作风格

效果会明显提升。

什么样的 Subagent 没意义?

这是最值得避免的坑。

坑1:专家人格 Agent 

例如: 

CODE
Python Expert
Java Expert
Kubernetes Expert

意义很小,因为 Claude 本来就会这些,换个名字不会变得更聪明。 

坑2:流水线 Agent 

例如: 

CODE
Agent A 找Bug
↓
Agent B 分析Bug
↓
Agent C 修复Bug

看起来很高级,实际上经常翻车。因为每次交接都会丢失信息,调试问题往往需要完整上下文,拆开反而更差。

坑3:测试 Agent 

很多人会做 Test Runner Agent,然后:

CODE
运行测试
告诉我结果

问题在于,测试失败时你真正需要的是:

CODE
完整日志
完整报错
完整堆栈

而不是一句测试失败了,所以这类场景通常直接运行更好。

高手如何设计 Subagent?

看了很多优秀配置后,我总结出三个原则。

原则一:单一职责 

不要做全能开发助手,要做:

CODE
代码审查
文档生成
安全检查
测试编写

每个 Agent 只负责一件事。 

原则二:定义输出格式 

这是提升效果最大的技巧。例如:

CODE
1. 总结
2. 严重问题
3. 主要问题
4. 次要问题
5. 建议
6. 是否通过

Agent 就知道什么时候该停止,什么时候该返回结果,不会无限探索。

原则三:记录障碍 

增加一个部分:

CODE
Obstacles Encountered

要求 Agent 汇报:

CODE
环境问题
特殊配置
解决方案
关键命令

否则下一次还要重新踩坑。

我最推荐新手创建的 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,而是在提醒我们:

复杂问题从来不是靠一个人变得更强来解决的,而是靠把正确的事情交给正确的角色。 

这也是软件工程、组织管理乃至整个社会运行最重要的底层规律之一。