Claude Code Manual
进阶:子代理与技能
用熟了以后,你会发现有些任务总在重复交代同样的要求。子代理和技能就是把这些要求固定下来的办法。
子代理:专门的帮手
子代理(subagent)是一个有专门职责的助手,比如“代码审查员”“测试员”。Claude Code 可以把一部分任务交给它,它在自己独立的上下文里工作,做完把结果交回来。好处是:
- 主对话不会被大量中间过程塞满;
- 每个子代理可以有自己的指令、可用工具和模型。
子代理是一个 Markdown 文件,放在:
| 位置 | 作用范围 |
|---|---|
~/.claude/agents/ | 你所有的项目 |
项目/.claude/agents/ | 这个项目,可以提交到 Git 共享 |
最简单的创建方法是直接让 Claude Code 帮你写:
在 ~/.claude/agents/ 创建一个名叫 reviewer 的子代理:只读,负责检查改动里有没有明显的错误、遗漏的边界情况和泄露的密钥,用中文列出问题。生成的文件大致是这样:
---
name: reviewer
description: 检查改动中的错误、遗漏和泄露的密钥。修改代码后使用。
tools: Read, Grep, Glob
model: sonnet
---
你是一名代码审查员。逐条列出发现的问题,说明原因并给出修改建议,用中文回答。description决定 Claude 什么时候会把任务交给它,写清楚“做什么、什么时候用”。tools限制它能用的工具,上例只能读、不能改。
使用时直接说“用 reviewer 子代理检查这次改动”。输入 /agents 可以查看可用的子代理。如果刚新建了 ~/.claude/agents/ 目录,需要重启 Claude Code 才能识别。
技能:可复用的做法
技能(skill)是一份写好的操作说明。Claude 会在合适的时候自动使用它,你也可以输入 /技能名 直接调用。适合固定流程,比如“按公司模板写周报”“发版前检查清单”。
技能是一个文件夹,里面放一个 SKILL.md:
| 位置 | 作用范围 |
|---|---|
~/.claude/skills/技能名/SKILL.md | 你所有的项目 |
项目/.claude/skills/技能名/SKILL.md | 这个项目,可以提交到 Git 共享 |
例子:创建一个周报技能。
mkdir -p ~/.claude/skills/weekly-report在 ~/.claude/skills/weekly-report/SKILL.md 写入:
---
description: 把零散的工作记录整理成周报。用户要求写周报、周总结或工作汇报时使用。
---
## 格式
1. 本周完成:按项目分组,每条一句话,写清结果。
2. 进行中:写明进度和预计完成时间。
3. 风险与需要的支持。
4. 下周计划:不超过 5 条。
## 要求
- 用中文,语气客观,不夸大。
- 原始记录里没有的事情不要编造。
- 缺少日期或负责人时,在末尾列出需要确认的问题。之后对 Claude Code 说“帮我把这些记录整理成周报”,它会按这个技能来写;也可以输入 /weekly-report 直接调用。
description 同样很关键:写明“做什么”和“什么时候用”,Claude 才知道何时自动调用。
子代理和技能怎么选
| 子代理 | 技能 | |
|---|---|---|
| 本质 | 一个独立工作的助手 | 一份操作说明 |
| 上下文 | 独立的,不占用主对话 | 加载到当前对话里 |
| 适合 | 审查、调研这类可以单独完成的任务 | 固定格式、固定流程 |
拿不准时,先写技能,它更简单。