Skip to content

14. 子代理(Subagents)

本章你将学到

  • 子代理是什么,解决什么问题
  • 如何创建和配置子代理
  • 内置子代理的使用方式
  • 子代理 vs Skill 的选择

14.1 子代理是什么

子代理(Subagent)是一个拥有独立上下文窗口的 Claude 实例,配备一套专属工具,为特定任务量身定制。

主要使用场景:

场景为什么用子代理
代码库研究读大量文件不污染主对话的上下文
无偏审查让一个独立实例审查它自己刚写的代码(减少确认偏差)
专项任务安全审查、性能分析等需要专业视角的任务
并行工作多个子代理同时处理不同任务

子代理 vs Skill 的区别

特性SkillSubagent
上下文与主会话共享完全独立
工具继承主会话 + 额外允许独立定义
适合改变 Claude 的行为方式需要隔离的重任务

14.2 创建子代理

.claude/agents/ 目录下创建 Markdown 文件:

bash
# 个人级(所有项目可用)
mkdir -p ~/.claude/agents/

# 项目级(只在当前项目,可提交 git)
mkdir -p .claude/agents/

示例:安全审查代理

.claude/agents/security-reviewer.md

markdown
---
name: security-reviewer
description: 审查代码中的安全漏洞,包括注入、认证问题、数据处理缺陷。
             当用户说"审查安全性"或"找安全漏洞"时使用。
tools: Read, Grep, Glob, Bash
model: opus
---

你是一名拥有 10 年经验的安全工程师。你的任务是审查代码中的安全问题。

重点关注:
- **注入漏洞**:SQL 注入、命令注入、XSS、SSTI
- **认证与授权**:会话固定、越权访问、弱密码策略
- **硬编码密钥**:API Key、密码、私钥直接写在代码里
- **不安全数据处理**:未验证的用户输入、不安全的反序列化
- **敏感信息泄露**:日志、错误信息、API 响应中的敏感数据

对每个发现:
1. 指出具体文件和行号
2. 说明漏洞类型和严重程度(高/中/低)
3. 提供具体的修复方案
4. 给出修复后的代码示例

14.3 调用子代理

Claude 可以根据你的描述自动选择合适的子代理,也可以显式指定:

# 自动选择(Claude 根据描述判断)
用子代理审查这段代码的安全问题

# 显式调用
用 security-reviewer 审查 src/auth/ 目录

# 启动时指定
claude --agent security-reviewer

14.4 子代理配置字段

yaml
---
name: agent-name             # 代理名称(小写字母、数字、连字符)
description: 做什么用        # 帮助主 Claude 判断何时使用
tools: Read, Grep, Glob      # 允许使用的工具列表
model: opus                  # 使用的模型(默认继承当前设置)
---

常用工具组合

用途工具组合
只读分析Read, Grep, Glob
代码审查Read, Grep, Glob, Bash
代码修改Read, Edit, Write, Bash, Grep, Glob
完整能力省略 tools 字段(继承全部)

14.5 内置子代理

Claude Code 预置了以下子代理:

代理功能工具
Explore快速代码库探索,只读Read, Grep, Glob
Plan架构设计和规划,只读Read, Grep, Glob
general-purpose通用研究和任务全部

在提示中引用:

用 Explore 代理分析 src/db/ 目录的结构,不要修改任何东西

14.6 实战示例

Writer + Reviewer 协作模式

# 会话 A(你在操作):让主 Claude 写代码
实现一个 API 限流中间件,支持每 IP 每分钟 100 次请求

# 写完后,让子代理审查
用 security-reviewer 子代理审查刚写的 src/middleware/rateLimiter.ts,
找边界情况、竞态条件,以及和已有中间件模式的一致性问题

# 根据审查结果改进
根据审查结果修复以下问题:[子代理输出]

下一步:钩子(Hooks)

基于官方文档整理,持续更新