본문으로 건너뛰기

实践指南

AI 보조

从零创建 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模型选择:sonnetopushaikuinherit
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。好的描述应该回答:

  1. 这个 Subagent 做什么? 列出具体能力
  2. 什么时候应该使用它? 包含触发词
✅ 好:具体和清晰
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 DocsSubagent 配置详解
Agentic 设计模式Anthropic Docs六种核心设计模式
多代理研究Anthropic Engineering90.2% 性能提升的研究详情

社区资源

资源链接说明
wshobson/agentsGitHub99 个 Agent + 15 个编排器模板
Compound EngineeringGitHub17 个专门化代理的 Plugin
awesome-claude-codeGitHubClaude Code 最佳实践汇总

推荐阅读

文章来源主题
Building effective agentsAnthropicAgent 设计原则
How we built our multi-agent research systemAnthropic多代理架构实践
Claude Skills, Commands, Subagents, and PluginsYoung Leaders Tech功能对比分析

小结

Claude Code Subagent 是提升 AI 编程效率的强大工具。通过独立上下文和专门化配置,它让复杂任务变得可管理。

快速开始:

  1. 运行 /agents 打开管理界面
  2. 创建一个简单的 Subagent(如代码审查器)
  3. 测试自动委托和显式调用
  4. 根据需要调整配置

随着使用深入,你可以逐步:

  • 为团队创建专属 Subagent
  • 配置 Subagent 链接处理复杂工作流
  • 利用可恢复执行处理长期任务

如果你想把 Subagent 与其他配置打包分发,请阅读《Claude Code Plugin 实战指南》。

댓글

목차

实践指南 | Yu의 사이버 데스크