共计 2642 个字符,预计需要花费 7 分钟才能阅读完成。
文章目录[显示]
Claude Code 从入门到脱发 · Day 7
到目前为止,Claude Code 是你的独家助手——你说一件事,它做一件事。效率不低,但遇到大型任务时还是有瓶颈。
比如你说 " 帮我重构这个模块 ",它得先分析代码、再改文件、改完跑测试、测试不过再修。这些步骤只能串行执行,因为只有一个 " 脑子 " 在干活。
子代理(Subagent)解决的就是这个问题。Claude Code 可以派出多个子代理,每个负责一个独立任务,并行执行。主代理负责协调,子代理负责干活。
就像一个技术负责人,不用事事亲力亲为,把任务分给团队成员,自己负责把关和整合。
本文你将学到:
- 子代理是什么,跟直接对话有什么区别
- Claude Code 的内置 Agent 工具
- 如何有效利用子代理并行执行任务
- Explore 子代理和自定义子代理
阅读时间 :8 分钟 | 实操时间 :20 分钟 | 难度:中级
子代理是什么
子代理是 Claude Code 在主对话之外启动的独立 AI 实例。每个子代理有自己的上下文窗口、工具权限和专注目标。
关键区别:
| 特性 | 直接对话 | 子代理 |
|---|---|---|
| 上下文 | 共享主对话上下文 | 独立上下文窗口 |
| 干扰 | 搜索结果污染主上下文 | 结果隔离,只返回摘要 |
| 并行 | 串行执行 | 可以并行 |
| 适合 | 简单直接的任务 | 探索、研究、独立子任务 |
打个比方:直接对话像你跟助理面对面沟通,事无巨细都在同一个会议室里讨论。子代理像你发邮件给不同团队成员分配任务,各自回去做,做完把结果汇报给你。
内置 Agent 工具
Claude Code 有一个内置的 Agent 工具,你不需要特殊配置就能使用。在对话中,Claude Code 会在合适的时候自动使用子代理。
最常见的场景是 Explore 子代理——当 Claude Code 需要在代码库中进行大量搜索时,它会启动一个 Explore 子代理去翻代码,这样搜索过程的大量中间结果不会塞满主对话的上下文。
你也可以主动触发:
> 用一个子代理帮我分析 src/services/ 目录下所有文件的职责,另一个子代理分析 src/utils/ 的所有导出函数
Claude Code 会启动两个子代理并行工作,各自返回分析结果。
什么时候该用子代理
适合用子代理的场景
1. 代码库探索
> 帮我找出这个项目里所有跟用户认证相关的代码
这种开放式搜索可能要翻几十个文件。用子代理去翻,主对话保持干净。
2. 多个独立任务并行
> 同时做三件事:> 1. 给 UserService 写单元测试
> 2. 给 OrderService 写单元测试
> 3. 检查所有 API 接口的错误处理是否完善
三个任务互不依赖,可以并行。
3. 代码审查
> 帮我审查最近的改动,关注安全性、性能和代码风格三个维度
可以起三个子代理分别关注不同维度,最后汇总。
4. 调研和比较
> 帮我比较 Zustand、Jotai 和 Redux Toolkit 三个状态管理方案,分别评估学习成本、性能和生态
不适合用子代理的场景
- 简单的单文件修改
- 前后有依赖关系的任务(必须串行的)
- 需要频繁跟你确认的交互式操作
自定义子代理
除了内置的通用子代理,你还可以定义专用子代理。自定义子代理放在 .claude/agents/ 目录下。
创建一个代码审查子代理
创建文件 .claude/agents/code-reviewer.md:
---
name: code-reviewer
description: 专业的代码审查助手
tools:
- Read
- Glob
- Grep
model: claude-sonnet-4-6
---
你是一个资深代码审查员。审查代码时关注以下维度:1. 安全性:是否有注入、XSS、硬编码密钥等问题
2. 性能:是否有 N+1 查询、不必要的渲染、内存泄漏风险
3. 可维护性:命名是否清晰、函数是否过长、职责是否单一
4. 错误处理:异常是否被正确捕获和处理
输出格式:- CRITICAL:必须修复
- WARNING:建议修复
- INFO:可以改进
然后在 Claude Code 中:
> /code-reviewer 帮我审查 src/services/payment.ts
创建一个测试助手子代理
创建文件 .claude/agents/tdd-guide.md:
---
name: tdd-guide
description: 测试驱动开发助手
tools:
- Read
- Write
- Edit
- Bash
- Glob
- Grep
---
你是 TDD 教练。严格按照以下流程工作:1. RED:先写失败的测试
2. GREEN:写最少的代码让测试通过
3. REFACTOR:重构代码,保持测试通过
每一步都要告知用户当前阶段,并等待确认后再进入下一步。
子代理的上下文管理
子代理最大的价值之一是保护主上下文的干净。
想象你在主对话里让 Claude Code 搜索一个大型代码库——它可能要 Grep 几十次、Read 十几个文件,这些中间结果全部堆在主上下文里,很快就会塞满上下文窗口,导致响应变慢甚至触发自动压缩。
用子代理的话:
- 主代理派出子代理去搜索
- 子代理在自己的上下文里翻了 50 个文件
- 子代理把精炼后的结论返回给主代理
- 主代理的上下文只收到一个简洁的摘要
干净、高效、省 Token。
团队协作:Agent Teams
Claude Code 还支持更高级的 Agent Teams 功能——多个代理组成团队协作。你可以定义一个 team-lead 代理来协调多个专业代理:
- 一个负责前端
- 一个负责后端
- 一个负责测试
- team-lead 分配任务、收集结果、做最终决策
这个功能比较高级,适合复杂的大型项目。如果你的需求还没到这个程度,内置的子代理功能已经足够。
常见问题 Q&A
Q1:子代理的对话内容我能看到吗?
子代理的执行过程会在 Claude Code 界面里显示,你可以看到它在做什么。但它的详细中间过程不会污染主对话上下文。
Q2:子代理能用 MCP 工具吗?
可以。自定义子代理可以在配置中指定它能使用的 MCP 工具。你可以创建一个专门的数据库查询子代理,只给它数据库 MCP 的权限。
Q3:子代理会额外收费吗?
子代理消耗独立的 Token,所以确实会增加费用。但因为它的上下文更小更聚焦,通常比在主对话里做同样的事情更省 Token。省钱的前提是:别为简单任务启动子代理。
小结
今天学了子代理的用法:
- 子代理是独立的 AI 实例,有自己的上下文窗口
- 核心价值:并行执行、保护主上下文干净
- 适合探索、调研、独立子任务、代码审查等场景
- 可以创建自定义子代理专注特定任务
子代理让 Claude Code 从 " 单兵作战 " 升级到 " 指挥团队 "。但要指挥好团队,你得有好的 " 作战手册 "。
明天 Day 8,我们聊 Skills 和自定义 Agents——如何打造可复用的 AI 工作流,让常见任务一键执行。
系列进度:7/10