第1章 子代理 (Sub-Agents)

学会用子代理分解复杂任务,让多个 AI 并行工作

1.1 什么是子代理?

想象你是技术负责人,手下有好几个工程师。你可以把一个大任务拆开,并行交给不同的人去做,最后汇总结果。

子代理就是这个思路——你在 Claude Code 中和「主 Claude」对话,当遇到复杂任务时,主 Claude 可以派出子代理去执行子任务。每个子代理是独立的 AI 会话,有自己的工具和上下文。

核心概念:子代理 = 独立的 AI 工作进程。它会自己思考、自己调用工具、然后向你汇报结果。主对话的上下文不会被子代理的中间过程污染。

1.2 什么时候用子代理?

以下场景非常适合使用子代理:

场景说明使用的子代理类型
跨文件代码搜索在大型项目中找一个功能在哪里实现的Explore
并行研究同时调研多个技术方案,最后横向对比general-purpose
代码审查独立审阅 PR,给出客观反馈general-purpose (review)
方案设计分析需求,输出可执行的实现计划Plan
复杂任务分解把一个大型重构拆成多个独立子任务并行执行general-purpose

1.3 子代理的类型

Explore(探索型)

专为代码搜索和发现设计。速度很快,只读操作,不会修改任何文件。

# 在对话中,你可以这样让主 Claude 调用 Explore 子代理:
"帮我在项目中找到所有关于用户认证的逻辑代码"

# 主 Claude 会派出 Explore 子代理去搜索,然后告诉你结果

适合场景:

general-purpose(通用型)

最灵活的子代理,拥有全部工具。可以读、写、搜索、执行命令。

# 示例:让通用子代理并行研究两个技术方案
"请帮我研究两个缓存方案:Redis 和 Memcached。分别评估它们
在以下维度的优劣:性能、运维成本、社区生态。请同时进行。"

# 主 Claude 会派出两个 general-purpose 代理并行工作
注意:通用代理可以修改文件,所以给它任务时要明确说明是否需要它写代码。如果只是调研,要明确说"只做研究,不要修改任何文件"。

Plan(规划型)

专门用来设计实现方案。它会分析需求、探索代码库、输出详细的实现计划。

# 使用 Plan 代理设计实现方案
"我需要给这个项目添加用户权限管理系统,请帮我设计一个实现计划"

1.4 实践:并行代码搜索

练习 1:用 Explore 代理搜索代码

假设你在一个大型项目中,需要同时找到以下信息:

  1. 认证中间件在哪里定义
  2. 数据库迁移文件的位置
  3. 哪些 API 路由需要认证

你只需要向主 Claude 说:

我需要同时了解三件事:
1. 认证中间件在哪里定义
2. 数据库迁移文件放在哪个目录
3. 哪些路由配置了认证中间件
请并行搜索,一次性给我结果

主 Claude 会派出多个 Explore 代理并行执行这些搜索,大大加快速度。

1.5 实践:用通用代理做独立审查

练习 2:代码审查

你想让 AI 审查你刚写的代码,但又不想让它被你的思路影响:

请作为一个独立的代码审查员,审查 src/auth/login.ts 这个文件。
重点关注:
- 安全性(SQL注入、XSS、密码处理)
- 错误处理是否完善
- 是否有明显的性能问题
只给出审查意见,不要修改任何代码。

通用代理会在独立上下文中分析代码,给出不受主对话历史影响的客观意见。

1.6 后台子代理

子代理支持后台运行。你可以同时启动多个后台代理去干不同的事情,等它们完成时你会收到通知。

# 启动后台代理去跑测试
"请在后台运行完整的测试套件"

# 同时启动另一个后台代理去构建项目
"请在后台执行 npm run build"

# 你不需要等它们完成——继续在主对话中做其他事情
# 当后台任务完成时,系统会自动通知你

1.7 子代理的核心使用原则

  1. 任务要独立:子代理之间不应该有依赖关系,否则并行没意义。
  2. 指令要清晰:告诉子代理具体要做什么、要不要修改代码、输出什么格式。
  3. 用对类型:搜代码用 Explore,设计方案用 Plan,复杂任务用 general-purpose。
  4. 不要过度使用:简单的单文件修改不需要子代理,直接让主 Claude 做更快。
一句话总结:子代理 = 你的 AI 工程师团队。学会分配任务,就能让 Claude 的能力成倍放大。

1.8 常见问题

Q: 子代理能看到主对话的历史吗?

A: 不能。子代理从一个全新的空白会话开始,只接收你给它的任务描述。这其实是优势——可以避免主对话中的错误信息污染子代理的判断。

Q: 子代理的上下文窗口有多大?

A: 与主对话相同。对于长任务的子代理,系统会自动压缩上下文。

Q: 一次能启动多少个子代理?

A: 没有硬性限制,但建议同时不超过 5 个,避免资源竞争。