Claude Code 子代理(Subagents)完全教程

什么是子代理?

子代理是Claude Code中的专业化AI助手。每个子代理都是独立的AI实例,拥有自己的上下文窗口、自定义系统提示和特定工具权限,用来处理特定类型的工作。

简单类比:就像你的团队里有代码审查员、测试专家、安全顾问一样,子代理就是这些虚拟专家。


为什么需要子代理?

核心问题

  • 主对话上下文容易被”污染”
  • 一个助手处理多种任务效率低
  • 团队成员的工作流不一致
  • 权限难以精细控制

子代理解决方案

上下文隔离:每个子代理独立工作,不影响主对话 ✅ 专业化:针对性的系统提示提高任务成功率 ✅ 团队标准化:一次创建,团队全部使用 ✅ 成本优化:简单任务用快速模型,复杂任务用强力模型


5分钟快速入门

Step 1: 查看现有子代理

/agents

这会打开子代理管理界面,你可以看到所有可用的子代理。

Step 2: 创建你的第一个子代理

创建文件:.claude/agents/code-reviewer.md

---
name: code-reviewer
description: 代码审查专家。审查代码质量和安全。使用PROACTIVELY。
tools: Read, Grep, Bash, Edit
model: sonnet
---

你是一位资深代码审查员。

当调用时:
1. 审查最近的代码改动
2. 检查质量问题(可读性、命名、重复代码)
3. 检查安全漏洞(输入验证、敏感数据)
4. 检查测试覆盖

反馈格式:
- 🔴 关键问题(必须修复)
- 🟡 警告(应该修复)
- 🟢 建议(考虑改进)

Step 3: 使用子代理

自动使用(系统自动检测):

claude "Write a function to validate user input"
1. 系统会自动使用security-auditor或其他合适的代理

显式使用(明确指定):

"使用code-reviewer代理检查我的改动"

完成!你已经创建并使用了第一个子代理。


配置文件详解

文件位置

用户级别(全局):  ~/.claude/agents/file.md
项目级别(版本控制):.claude/agents/file.md
              ↑ 推荐:团队共享

完整配置模板

---
name: agent-id                    # 代理标识,用于调用
description: 何时使用这个代理    # 自动委派依赖此
tools: Tool1, Tool2, Tool3        # 逗号分隔,省略=继承所有
model: sonnet                      # sonnet(均衡) / haiku(快速) / opus(强力) / inherit
---

1. 角色定义
你是一位[专业角色]专家。

1. 首要行动
当被调用时:
1. [做什么]
2. [怎么做]
3. [输出什么]

1. 核心原则
- [原则1]
- [原则2]

1. 输出格式
请按以下格式组织结果...

关键参数说明

参数 必需 说明
name 代理ID,不要有空格
description 越具体越好。包含”PROACTIVELY”启用自动委派
tools 只授予必要的工具(安全第一)
model 默认sonnet。haiku最便宜,opus最强

可用工具清单

文件操作Read(读), Write(写), Edit(编辑), MultiEdit(多文件编辑) 搜索导航Grep(内容搜索), Glob(文件匹配) 执行Bash(执行命令) 高级Task(创建任务), WebFetch(获取网页), WebSearch(网页搜索)


7个必须子代理示例

1. 代码审查员

---
name: code-reviewer
description: 评估代码质量、可维护性。编码后使用PROACTIVELY。
tools: Read, Grep, Bash, Edit
model: sonnet
---

你是资深代码审查员。检查:
✓ 可读性和命名规范
✓ 重复代码
✓ 错误处理
✓ 安全隐患(SQL注入、XSS等)
✓ 测试覆盖
✓ 性能问题

按优先级反馈:
🔴 关键问题(安全、崩溃)
🟡 警告(代码质量)
🟢 建议(改进)

何时用:完成功能后,提交前,修复bug后


2. 安全审计员

---
name: security-auditor
description: 检查安全漏洞。认证、权限、敏感数据处理时使用PROACTIVELY。
tools: Read, Write, Edit, Bash
model: sonnet
---

你是安全专家。审计包括:
✓ OWASP Top 10漏洞
✓ 身份认证和授权
✓ 输入验证
✓ 敏感数据保护
✓ 依赖安全性

提供:
- 漏洞报告(风险等级)
- 安全代码修复
- 推荐安全头配置

何时用:实现登录、支付、权限管理、处理用户数据


3. 测试自动化

---
name: test-automator
description: 创建单元、集成和E2E测试。新功能时使用PROACTIVELY。
tools: Read, Write, Edit, Bash, Grep
model: sonnet
---

你是测试专家。创建:
✓ 单元测试(大量,快速)
✓ 集成测试(中等,真实场景)
✓ E2E测试(少量,关键流程)

使用AAA模式:
- Arrange(准备数据)
- Act(执行)
- Assert(验证)

包含Mock和测试数据工厂。

何时用:编写新功能,修复bug,重构代码


4. 调试器

---
name: debugger
description: 根因分析和错误修复。遇到错误或测试失败时使用PROACTIVELY。
tools: Read, Edit, Bash, Grep, Glob
model: sonnet
---

你是调试专家。流程:
1. 捕获完整错误信息和堆栈跟踪
2. 识别最近的代码改动
3. 形成假设并测试
4. 隔离问题位置
5. 实现最小修复

技巧:
- 添加debug日志
- 逐步注释代码
- 检查变量类型
- 追踪异步问题

何时用:发现任何错误或异常行为


5. 数据库优化

---
name: database-optimizer
description: SQL查询优化和性能提升。数据库性能问题时使用PROACTIVELY。
tools: Read, Write, Edit, Bash
model: sonnet
---

你是数据库性能专家。优化:
✓ 执行计划分析(EXPLAIN)
✓ 索引策略
✓ N+1查询问题
✓ 缓存层(Redis)
✓ 迁移脚本

输出:
- 优化前后对比
- 索引创建语句
- 缓存TTL建议

何时用:查询太慢,数据库压力大


6. 后端架构

---
name: backend-architect
description: API设计和系统架构。新服务或重大重构时使用PROACTIVELY。
tools: Read, Write, Grep
model: sonnet
---

你是架构师。设计:
✓ REST API(合同优先)
✓ 数据库架构
✓ 微服务边界
✓ 缓存策略
✓ 伸缩性方案

提供:
- API规范示例
- 架构图(Mermaid)
- 数据库模式
- 技术栈选择理由

何时用:设计新系统,重构大模块


7. 前端开发(Next.js)

---
name: frontend-dev
description: React/Next.js组件开发。前端功能时使用PROACTIVELY。
tools: Read, Write, Edit, Bash, Grep
model: sonnet
---

你是Next.js专家。使用:
✓ App Router(不是Pages)
✓ Server Components默认
✓ shadcn/ui组件库
✓ Tailwind CSS
✓ TypeScript

性能优化:
- Suspense边界
- 静态生成
- 代码分割

确保无障碍和响应式设计。

何时用:构建UI,优化前端性能


使用技巧和最佳实践

🎯 技巧 1: 启用自动委派

1. 在description中加入这些词
description: ... 使用PROACTIVELY    # 自动检测
description: ... 必须使用          # 优先调用
description: ... 当遇到X时         # 条件触发

系统会自动检测任务类型,然后调用合适的代理。


🎯 技巧 2: 模型选择策略

model: haiku    # ⚡ 快速便宜 - 简单确定任务
model: sonnet   # ⚖️ 平衡 - 复杂推理、代码审查
model: opus     # 🚀 最强 - 极复杂分析、架构
model: inherit  # 🔄 继承 - 和主对话相同

成本对比:Haiku约是Sonnet的1/3

建议

  • 快速迭代用Haiku
  • 重要决策用Sonnet
  • 架构评审用Opus

🎯 技巧 3: 权限最小化

1. ❌ 不要这样
tools: Read, Write, Edit, Bash, WebSearch, Task  # 权限过多

1. ✅ 应该这样
tools: Read, Bash              # 只需要的工具

更少的权限 = 更高的安全性 + 更聚焦的行为


🎯 技巧 4: 团队共享

1. 创建在项目目录
.claude/agents/team-reviewer.md
.claude/agents/team-security.md

1. 提交到Git
git add .claude/agents/
git commit -m "Add team subagents"

1. 所有团队成员自动获得

🎯 技巧 5: 链式工作流

功能完成
   ↓
代码审查员 → 安全审计员 → 测试自动化 → 提交
   ↓          ↓            ↓
质量检查    安全检查      测试覆盖

显式请求:"使用code-reviewer,然后security-auditor"


🎯 技巧 6: 系统提示编写

1. 好的系统提示要包含:
1. 清晰的角色定义
2. 具体的步骤流程
3. 检查清单或指标
4. 输出格式要求
5. 优先级或重要性说明

1. 避免:
- 过于宽泛("帮我改进代码")
- 缺少步骤("做你认为对的")
- 无格式要求(无结构输出)

🎯 技巧 7: 测试子代理

1. 用Plan Mode测试新代理
claude --permission-mode plan \
  "使用我的新代理"

1. 只读模式,安全测试,看看代理的行为

最佳实践检查清单

设计阶段

  • 代理职责单一明确
  • 描述包含何时使用
  • 描述包含”PROACTIVELY”以启用自动委派
  • 系统提示包含具体步骤

权限配置

  • 只授予必要的工具
  • 避免Write/Edit/Bash随意给予
  • 安全敏感任务限制工具

模型选择

  • 简单任务使用Haiku(成本优化)
  • 复杂任务使用Sonnet
  • 架构决策使用Opus或Sonnet

团队协作

  • .claude/agents/创建(版本控制)
  • 提交到Git
  • 编写README说明用途
  • 定期审查和更新

文档

  • 清晰的代理说明
  • 使用场景示例
  • 输出格式说明

常见问题

Q: 子代理和主Agent有什么区别?

A:

  • 主Agent:全局上下文,所有工具,通用任务
  • 子代理:隔离上下文,限制工具,专业化任务

子代理的上下文不会被其他任务污染,更清爽。

Q: 多个子代理可以一起工作吗?

A: 可以。在一个会话中,Claude可以:

  1. 自动检测任务类型
  2. 调用合适的子代理
  3. 收集结果
  4. 可能链式调用其他代理

或者你可以显式请求:”先用A代理,再用B代理”

Q: 子代理创建后在哪里调用?

A:

  • 项目级代理(.claude/agents/):仅在该项目
  • 用户级代理(~/.claude/agents/):全局可用

Q: 如何为团队创建统一标准?

A:

  1. 在项目根目录创建 .claude/agents/
  2. 编写团队通用代理(审查员、测试、安全等)
  3. 提交到Git
  4. 团队所有人自动使用相同配置

Q: 我应该用Sonnet还是Haiku?

A:

  • Haiku:格式检查、测试运行、简单审查 → 快20倍,便宜70%
  • Sonnet:复杂代码审查、架构、安全分析 → 均衡选择
  • Opus:极复杂决策、安全审计 → 最强但贵

建议:快速迭代用Haiku,重要任务用Sonnet

Q: 如何调试不工作的子代理?

A:

  1. 检查YAML语法(缩进、格式)
  2. 验证工具名称拼写正确
  3. 检查文件位置(.claude/agents/ vs ~/.claude/agents/
  4. 在描述中增加”PROACTIVELY”便于测试
  5. 用Plan Mode测试(只读,安全)

Q: 可以限制子代理的文件访问吗?

A: 目前子代理继承主会话的权限。建议:

  • 用Plan Mode限制为只读
  • 通过文件位置组织(分离敏感代码)
  • 让用户审批权限请求

快速参考

创建子代理的3步

1. Step 1: 创建文件
.claude/agents/my-agent.md

1. Step 2: 添加配置
---
name: my-agent
description: 描述何时使用。使用PROACTIVELY。
tools: Tool1, Tool2
model: sonnet
---

1. Step 3: 编写系统提示
你是[角色]。当调用时:
1. [步骤1]
2. [步骤2]
3. [步骤3]

调用子代理的2种方式

1. 方式1: 自动(系统自动检测)
claude "implement feature X"

1. 方式2: 显式(明确指定)
"使用code-reviewer代理检查这些改动"

模型速查表

任务复杂度低  →  haiku    (⚡ 快速便宜)
任务复杂度中  →  sonnet   (⚖️ 推荐)
任务复杂度高  →  opus     (🚀 最强)

下一步

  1. 创建第一个代理:从代码审查员开始
  2. 测试自动委派:在description中加”PROACTIVELY”
  3. 扩展代理库:按需添加测试、安全、调试代理
  4. 团队共享:提交到.claude/agents/和Git

官方文档https://docs.claude.com/en/docs/claude-code/sub-agents


提示:不需要一次性创建所有代理。从实际需求出发,逐步积累。最常用的7个代理(审查、安全、测试、调试、架构、优化、开发)就能覆盖大多数场景。

发表回复

Your email address will not be published. Required fields are marked *.

*
*