实践指南
从零创建 Claude Code 子代理:配置格式、触发机制、实用模板与高级技巧
快速回顾
在上一篇文章中,我们了解了 Subagent 的核心概念:它是独立上下文的专门化 AI 助手,通过上下文隔离解决复杂任务中的信息过载问题。Claude Code 内置了三种 Subagent:Explore(探索)、Plan(计划)、General-purpose(通用)。本文将从实战角度出发,带你创建自定义 Subagent 并掌握高级用法。
管理 Subagent
通过 /agents 命令
最简单的方式是使用交互式界面:
/agents这会打开一个菜单,你可以:
- 查看所有 Subagent(内置 + 自定义)
- 创建新的 Subagent
- 编辑现有 Subagent 的配置和工具权限
- 删除不需要的 Subagent
- 查看名称冲突时哪个 Subagent 是活跃的
通过文件管理
Subagent 以 Markdown 文件形式存储。你也可以直接创建和编辑文件。
存储位置:
| 位置 | 路径 | 作用域 |
|---|---|---|
| 项目级 | .claude/agents/ | 当前项目专用,可提交到 Git |
| 用户级 | ~/.claude/agents/ | 跨所有项目可用 |
| Plugin | 插件的 agents/ 目录 | 随 Plugin 安装 |
优先级:项目级 > 用户级 > Plugin 级
当同名 Subagent 存在于多个位置时,优先级高的会覆盖低的。
创建你的第一个 Subagent
第一步:创建目录
mkdir -p .claude/agents第二步:创建 Markdown 文件
.claude/agents/code-reviewer.md:
---
name: code-reviewer
description: 专业的代码审查代理,用于代码质量检查。在完成代码编写后主动使用。
tools: Read, Grep, Glob, Bash
---
你是一位资深的代码审查专家,专注于确保代码质量和安全性。
当被调用时:
1. 运行 `git diff` 查看最近的更改
2. 分析修改的文件
3. 提供结构化的审查反馈
审查清单:
- 代码可读性和命名规范
- 错误处理和边界条件
- 安全漏洞(注入、敏感信息泄露)
- 性能优化机会
- 测试覆盖情况
输出格式:
- 严重问题(必须修复)
- 警告(建议修复)
- 建议(可以改进)第三步:测试 Subagent
在 Claude Code 中:
> 用 code-reviewer 代理审查我最近的修改或者让 Claude 自动选择:
> 帮我审查一下代码质量如果 description 写得足够清晰,Claude 会自动识别并调用你的 Subagent。
配置字段详解
Subagent 配置文件由两部分组成:YAML frontmatter 和 Markdown 正文。
YAML Frontmatter
---
name: your-agent-name
description: 描述这个代理做什么,以及何时应该被使用
tools: Tool1, Tool2, Tool3
model: sonnet
permissionMode: default
skills: skill1, skill2
---| 字段 | 必需 | 说明 |
|---|---|---|
name | 是 | 唯一标识符,使用小写字母和连字符 |
description | 是 | 自然语言描述(Claude 用此判断何时调用) |
tools | 否 | 逗号分隔的工具列表。省略则继承所有工具 |
model | 否 | 模型选择:sonnet、opus、haiku 或 inherit |
permissionMode | 否 | 权限模式(见下文) |
skills | 否 | 自动加载的 Skills(Subagent 不继承父会话的 Skills) |
权限模式
| 模式 | 说明 |
|---|---|
default | 正常权限检查 |
acceptEdits | 自动接受编辑操作 |
bypassPermissions | 跳过所有权限检查 |
plan | 只提出计划,不执行 |
ignore | 忽略此 Subagent |
Markdown 正文
正文是 Subagent 的系统提示。写得越详细,Subagent 的表现越好。
好的系统提示应该包含:
- 明确的角色定义
- 具体的工作步骤
- 关键检查清单
- 输出格式要求
触发机制
自动委托
Claude 会根据任务内容和 Subagent 的 description 自动决定是否委托。
鼓励自动使用的技巧:在 description 中使用触发词:
description: Use PROACTIVELY after writing code for quality checks或:
description: MUST BE USED when encountering errors or test failures显式调用
直接告诉 Claude 使用哪个 Subagent:
> 使用 code-reviewer 代理检查我的代码
> 让 debugger 代理分析这个错误
> 调用 test-runner 代理运行测试工具配置
常用工具列表
| 工具 | 说明 |
|---|---|
Read | 读取文件内容 |
Write | 写入文件 |
Edit | 编辑文件 |
Glob | 文件模式匹配 |
Grep | 正则表达式搜索 |
Bash | 执行 shell 命令 |
WebFetch | 获取网页内容 |
WebSearch | 搜索网页 |
工具配置策略
只读 Subagent(探索、分析):
tools: Read, Grep, Glob, Bash注意:即使包含 Bash,Subagent 也应该只用于只读命令(ls, git status, git log 等)。
读写 Subagent(修复、重构):
tools: Read, Edit, Write, Bash, Grep, Glob最小权限原则:只授予必需的工具,避免意外操作。
实用 Subagent 模板
代码审查器
---
name: code-reviewer
description: Expert code review. Use PROACTIVELY after writing or modifying code.
tools: Read, Grep, Glob, Bash
model: inherit
---
你是一位资深的代码审查专家,确保代码质量和安全性。
当被调用时:
1. 运行 `git diff` 查看最近的更改
2. 聚焦于修改的文件
3. 立即开始审查
审查清单:
- 代码清晰可读
- 函数和变量命名规范
- 无重复代码
- 正确的错误处理
- 无暴露的密钥或 API 密码
- 输入验证完整
- 测试覆盖充分
- 性能考虑到位
按优先级组织反馈:
- 严重问题(必须修复)
- 警告(建议修复)
- 建议(可以改进)
包含具体的修复示例。调试专家
---
name: debugger
description: Debugging specialist. Use PROACTIVELY when encountering errors or test failures.
tools: Read, Edit, Bash, Grep, Glob
---
你是一位调试专家,专注于根因分析。
当被调用时:
1. 捕获错误信息和堆栈跟踪
2. 识别复现步骤
3. 定位失败位置
4. 实施最小修复
5. 验证解决方案有效
调试流程:
- 分析错误信息和日志
- 检查最近的代码更改
- 形成并测试假设
- 添加战略性的调试日志
- 检查变量状态
对每个问题提供:
- 根因解释
- 支持诊断的证据
- 具体的代码修复
- 测试方法
- 预防建议
专注于修复根本问题,而非表面症状。测试运行器
---
name: test-runner
description: Test automation expert. Use PROACTIVELY to run tests and fix failures.
tools: Read, Edit, Bash, Grep, Glob
permissionMode: acceptEdits
---
你是一位测试自动化专家。
当你看到代码更改时:
1. 识别相关的测试文件
2. 运行适当的测试
3. 如果测试失败,分析原因并修复
测试策略:
- 优先运行与更改相关的测试
- 分析失败的测试输出
- 区分代码问题和测试问题
- 修复后重新运行验证
对于新功能:
- 确认测试覆盖关键路径
- 检查边界条件测试
- 验证错误处理测试文档生成器
---
name: doc-generator
description: Documentation specialist. Use when creating or updating documentation.
tools: Read, Write, Grep, Glob
---
你是一位技术文档专家。
当被调用时:
1. 分析代码结构和注释
2. 识别公共 API 和关键功能
3. 生成清晰的文档
文档风格:
- 简洁明了
- 包含代码示例
- 解释为什么,而不只是是什么
- 考虑读者背景
输出格式:
- API 参考用 Markdown
- 使用恰当的标题层级
- 包含目录(如果文档较长)安全扫描器
---
name: security-scanner
description: Security specialist. Use PROACTIVELY when reviewing code for security issues.
tools: Read, Grep, Glob, Bash
---
你是一位安全专家,专注于发现代码中的安全漏洞。
扫描范围:
- 注入漏洞(SQL、命令、XSS)
- 认证和授权问题
- 敏感数据暴露
- 安全配置错误
- 依赖漏洞
检查清单:
- 用户输入是否经过验证和转义
- 敏感数据是否加密存储
- API 密钥是否硬编码
- 是否使用安全的默认配置
- 依赖是否有已知漏洞
输出格式:
- 严重(立即修复)
- 高危(尽快修复)
- 中危(计划修复)
- 低危(考虑修复)
每个问题包含:
- 漏洞描述
- 风险说明
- 修复建议
- 参考资料高级用法
生产级设计模式
在生产环境中,有几种经过验证的多代理协作模式:
3 Amigos 模式
由产品、架构、实现三个角色组成的协作模式:
PM Agent → Architect Agent → Claude Code
(产品定义) (技术设计) (代码实现)| 角色 | 职责 | 工具配置 |
|---|---|---|
| PM Agent | 功能定义、需求梳理 | Read, WebSearch |
| Architect Agent | 技术方案设计 | Read, Glob, Grep |
| Claude Code | 代码实现 | 所有工具 |
三阶段流水线
将复杂任务分解为三个明确阶段:
规格制定 → 架构评审 → 实现测试
(Spec) (Review) (Implement)每个阶段由专门的 Subagent 负责,输出作为下一阶段的输入。
模型编排策略
不同阶段使用不同模型,优化成本和效果:
| 阶段 | 推荐模型 | 原因 |
|---|---|---|
| 规划阶段 | Sonnet | 需要深度推理 |
| 执行阶段 | Haiku | 快速、低成本 |
| 审查阶段 | Sonnet | 需要综合判断 |
配置示例:
---
name: quick-executor
model: haiku
---Subagent 链接
对于复杂工作流,可以链接多个 Subagent:
> 首先用 code-analyzer 代理找出性能问题,
> 然后用 optimizer 代理修复它们可恢复执行
Subagent 执行可以暂停和恢复,保持之前的完整上下文:
初始调用:
> 用 code-analyzer 代理开始分析认证模块
[Agent 完成初始分析并返回 agentId: "abc123"]恢复代理:
> 恢复代理 abc123,继续分析授权逻辑
[Agent 继续,保持之前的完整上下文]使用场景:
- 长时间运行的研究,分多个会话完成
- 迭代改进,保持上下文
- 多步工作流,依序处理相关任务
为 Subagent 配置 Skills
Subagent 不会自动继承父会话的 Skills。如果需要,显式声明:
---
name: code-reviewer
skills: code-standards, security-checklist
---CLI 动态定义
无需保存文件,直接在命令行定义临时 Subagent:
claude --agents '{
"quick-reviewer": {
"description": "Quick code review",
"prompt": "You are a code reviewer...",
"tools": ["Read", "Grep", "Glob"],
"model": "haiku"
}
}'适用于快速测试或一次性使用。
最佳实践
1. 保持专注
✅ 好:单一责任
---
name: code-reviewer
description: Expert code review for quality and security
---
❌ 差:试图做太多
---
name: super-agent
description: Does everything - reviews, tests, deploys, documents...
---一个 Subagent 做好一件事,比一个 Subagent 做很多事效果更好。
2. 编写清晰的描述
Claude 用 description 决定何时使用 Subagent。好的描述应该回答:
- 这个 Subagent 做什么? 列出具体能力
- 什么时候应该使用它? 包含触发词
✅ 好:具体和清晰
description: 从 PDF 文件提取文本和表格,填写表单,合并文档。
当处理 PDF 文件或用户提到 PDF、表单、文档提取时使用。
❌ 差:太模糊
description: 处理文档3. 限制工具访问
只授予需要的工具:
---
name: code-reviewer
tools: Read, Grep, Glob, Bash
---这防止了 Subagent 意外修改文件,也让它更专注于审查工作。
4. 编写详细的系统提示
系统提示越详细,Subagent 表现越好:
- 明确的角色定义
- 具体的工作步骤
- 关键检查清单
- 输出格式要求
5. 版本控制
将项目级 Subagent 提交到 Git:
git add .claude/agents/
git commit -m "Add code-reviewer subagent"团队成员克隆项目后自动获得相同的 Subagent。
常见问题排查
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| Subagent 不被调用 | description 不够清晰 | 添加触发词,写得更具体 |
| Subagent 不被调用 | 文件位置错误 | 确认文件在 .claude/agents/ 或 ~/.claude/agents/ |
| 工具不可用 | tools 字段配置错误 | 检查工具名拼写,确认用逗号分隔 |
| 输出不稳定 | 系统提示太模糊 | 添加具体的步骤和输出格式要求 |
| 上下文丢失 | 会话结束 | 使用可恢复执行功能 |
| 名称冲突 | 多个位置有同名 Subagent | 用 /agents 查看哪个是活跃的 |
与团队共享
方式一:通过 Git
将 Subagent 放在 .claude/agents/ 目录,提交到项目仓库。团队成员克隆后自动获得。
方式二:通过 Plugin
将 Subagent 放在 Plugin 的 agents/ 目录,通过 Plugin 机制分发。
方式三:用户级共享
将常用 Subagent 放在 ~/.claude/agents/,跨所有项目可用。可以用 dotfiles 管理在多台机器间同步。
学习资源
官方文档
| 资源 | 链接 | 说明 |
|---|---|---|
| Claude Code 文档 | docs.anthropic.com | 官方文档入口 |
| Subagents 指南 | Claude Code Docs | Subagent 配置详解 |
| Agentic 设计模式 | Anthropic Docs | 六种核心设计模式 |
| 多代理研究 | Anthropic Engineering | 90.2% 性能提升的研究详情 |
社区资源
| 资源 | 链接 | 说明 |
|---|---|---|
| wshobson/agents | GitHub | 99 个 Agent + 15 个编排器模板 |
| Compound Engineering | GitHub | 17 个专门化代理的 Plugin |
| awesome-claude-code | GitHub | Claude Code 最佳实践汇总 |
推荐阅读
| 文章 | 来源 | 主题 |
|---|---|---|
| Building effective agents | Anthropic | Agent 设计原则 |
| How we built our multi-agent research system | Anthropic | 多代理架构实践 |
| Claude Skills, Commands, Subagents, and Plugins | Young Leaders Tech | 功能对比分析 |
小结
Claude Code Subagent 是提升 AI 编程效率的强大工具。通过独立上下文和专门化配置,它让复杂任务变得可管理。
快速开始:
- 运行
/agents打开管理界面 - 创建一个简单的 Subagent(如代码审查器)
- 测试自动委托和显式调用
- 根据需要调整配置
随着使用深入,你可以逐步:
- 为团队创建专属 Subagent
- 配置 Subagent 链接处理复杂工作流
- 利用可恢复执行处理长期任务
如果你想把 Subagent 与其他配置打包分发,请阅读《Claude Code Plugin 实战指南》。