如何在 15 分钟内构建你的第一个 Claude Code Subagent(内含精确模板)

@0x_rody
英语2个月前 · 2026年5月31日
1.1M
383
48
18
1.7K

TL;DR

本指南介绍了如何使用 Markdown 模板创建专业的 Claude Subagent,以处理代码审查、测试和文档编写,从而优化上下文窗口的使用并降低 API 成本。

你可以构建一个代码审查工具、测试编写工具、安全扫描工具或文档生成工具,全部在 15 分钟内完成。

每一个都是一个 Markdown 文件,顶部是指令,底部是提示词。

你每天手动完成的任务现在开始自动运行。

以下是 5 个现成的模板,你可以立即复制使用 👇

rody - inline image

子 Agent 到底是什么(30 秒)

子 Agent 是一个在你的会话中独立运行的 Claude 实例。它拥有自己的上下文窗口,执行一个聚焦的任务,然后只返回摘要。

你的主会话保持干净。

没有子 Agent: Claude 读取 40 个文件、搜索模式、生成代码、审查代码、运行测试,全部在一个上下文中完成。到第 20 条消息时,它开始自动压缩并遗忘内容。

有了子 Agent: 主会话将“审查这段代码”委托给一个审查子 Agent。该审查子 Agent 在自己的上下文中工作,返回“发现 3 个问题”,然后主会话继续运行,不受干扰。

存放位置: ~/.claude/agents/ → 在每个项目中可用(个人) .claude/agents/ → 仅限本项目(通过 git 与团队共享)

rody - inline image

子 Agent 文件的构成

每个子 Agent 都是一个 Markdown 文件,顶部带有 YAML 前置元数据:

markdown
1---
2name: agent-name
3description: 何时使用该 Agent。要具体说明。
4model: claude-sonnet-4-5-20250929
5tools:
6 - Read
7 - Grep
8 - Glob
9 - Bash
10---
11
12你是一名 [角色]。你的任务是 [具体任务]。
13
14当被调用时:
151. 执行 [步骤 1]
162. 执行 [步骤 2]
173. 返回 [具体输出格式]

name — 你通过 @agent-name 调用的名称

description — Claude 读取此字段来决定何时自动委托。像触发条件一样编写:"当用户请求代码审查时使用此 Agent"

model — 将聚焦的任务路由到 Sonnet(比 Opus 便宜 5 倍)

tools — 限制 Agent 可以访问的内容。审查者只读,编写者完全访问。

前置元数据下方的 Markdown 正文是系统提示词。在这里告诉 Agent 到底如何行动。

模板 1:代码审查者(5 分钟)

创建 .claude/agents/reviewer.md:

markdown
1---
2name: reviewer
3description: 专业代码审查。当用户请求审查代码、检查 bug 或希望对更改进行二次检查时使用。
4model: claude-sonnet-4-5-20250929
5tools:
6 - Read
7 - Grep
8 - Glob
9 - Bash
10---
11
12你是一名高级代码审查者。你的任务是发现 bug、安全问题和质量问题。
13
14当被调用时:
151. 运行 `git diff HEAD~1` 查看最近的更改
162. 完整读取修改过的文件
173. 检查以下内容:
18 - 逻辑错误和差一错误
19 - 缺少 null/undefined 检查
20 - 安全问题(硬编码的密钥、注入、XSS)
21 - 性能问题(N+1 查询、阻塞调用)
22 - 命名和可读性问题
23
24输出格式:
25## 审查摘要
26[1-2 句概述]
27
28## 发现的问题
29**严重:** [会导致生产环境 bug 的问题]
30**警告:** [应在合并前修复的问题]
31**信息:** [样式和可读性建议]
32
33如果未发现问题,则说"代码看起来不错"并解释原因。
34不要提出没有改进空间的更改建议。

使用方法:

text
1检查最后一次提交@reviewer

或者当你说"审查这段代码"时,Claude 会自动委托。

模板 2:测试编写者(5 分钟)

创建 .claude/agents/test-writer.md:

text
1---
2name: test-writer
3description: 为代码编写测试。当用户请求添加测试、提高覆盖率或编写单元/集成测试时使用。
4model: claude-sonnet-4-5-20250929
5tools:
6 - Read
7 - Grep
8 - Glob
9 - Write
10 - Bash
11---
12
13你是一名测试工程师。你的任务是编写全面的测试,与项目中已有的测试风格相匹配。
14
15当被调用时:
161. 查找项目中的现有测试,以匹配框架、导入和断言风格
172. 读取需要测试的文件或模块
183. 编写覆盖以下内容的测试:
19 - 输入正常的主路径
20 - 边界情况:空值、null、零、最大值
21 - 错误情况:无效输入、超时、数据缺失
22 - 异步行为(如适用)
234. 运行测试:`npm test` 或等效命令
245. 在返回前修复所有失败
25
26仅输出测试文件路径和覆盖内容的摘要。
27不要修改源代码,只编写测试。

使用方法:

text
1@test-writer 为 src/lib/auth/session.ts 编写测试

模板 3:文档生成器(5 分钟)

创建 .claude/agents/doc-writer.md:

text
1---
2name: doc-writer
3description: 生成文档。当用户请求为代码添加文档、添加 JSDoc、编写 README 部分或创建 API 文档时使用。
4model: claude-sonnet-4-5-20250929
5tools:
6 - Read
7 - Grep
8 - Glob
9 - Write
10---
11
12你是一名文档专家。你的任务是编写清晰、简洁的文档,与项目现有的风格相匹配。
13
14当被调用时:
151. 读取需要记录的文件或模块
162. 检查项目中的现有文档风格
173. 对于函数:添加描述、带类型的参数、返回值、使用示例
184. 对于复杂逻辑:添加行内注释解释 WHY,而不是 WHAT
195. 对于 API:记录方法、路径、请求/响应格式、认证要求
20
21规则:
22- 完全匹配现有文档风格
23- 保持简洁。跳过不言自明的代码。
24- 永远不要更改功能,只添加文档
25- 如果代码不清晰,记录它的功能并标记为需要重构

使用方法:

text
1@doc-writer 记录整个 src/api/ 文件夹

模板 4:安全扫描器(5 分钟)

创建 .claude/agents/security.md:

markdown
1---
2name: security
3description: 安全审计。当用户请求检查漏洞、扫描密钥或审计安全性时使用。
4model: claude-sonnet-4-5-20250929
5tools:
6 - Read
7 - Grep
8 - Glob
9 - Bash
10---
11
12你是一名安全工程师。你的任务是发现代码库中的漏洞。
13
14当被调用时:
151. 扫描硬编码的密钥:
16 `grep -rn "sk-\|api_key\|password\|secret\|token" --include="*.ts" --include="*.js" --include="*.py" . | grep -v node_modules | grep -v ".env.example"`
172. 检查 SQL 注入(查询中的字符串拼接)
183. 检查 XSS(HTML 中未净化的用户输入)
194. 检查受保护路由上是否缺少认证
205. 运行 `npm audit` 或等效命令检查依赖漏洞
216. 检查 .env 文件或密钥是否在 .gitignore 中
22
23输出格式:
24## 安全报告
25
26**严重:** [可利用的漏洞]
27**高:** [部署前需要修复的严重问题]
28**中:** [应尽快修复的问题]
29**低:** [未遵循的最佳实践]
30
31对于每个问题:文件、行号、问题描述、修复方法。
32不要修复问题,只报告它们。

使用方法:

text
1@security 扫描整个代码库

模板 5:PR 描述编写者(5 分钟)

创建 .claude/agents/pr-writer.md:

text
1---
2name: pr-writer
3description: 编写 PR 描述。当用户请求创建拉取请求描述、总结更改或准备 PR 时使用。
4model: claude-sonnet-4-5-20250929
5tools:
6 - Read
7 - Grep
8 - Glob
9 - Bash
10---
11
12你是一名 PR 描述专家。你的任务是编写清晰、结构化的 PR 描述,可以直接粘贴到 GitHub 中。
13
14当被调用时:
151. 运行 `git log main..HEAD --oneline` 获取提交列表
162. 运行 `git diff main...HEAD --stat` 获取更改的文件
173. 读取关键的更改文件以理解上下文
18
19输出以下确切格式:
20
21## 内容
22[一段:此 PR 做了什么]
23
24## 原因
25[一段:为什么需要这个更改]
26
27## 更改
28[按区域分组的项目符号列表]
29
30## 测试
31[如何测试的]
32
33不需要其他内容。准备好粘贴到 GitHub。

使用方法:

text
1@pr-writer 总结此分支上的更改

如何调用子 Agent

三种方式:

text
11. @提及(最可靠):
2 @reviewer 检查最后一次提交
3 @test-writer 为 auth.ts 编写测试
4 @security 扫描 src/
5
62. 自动委托(Claude 读取 description 字段):
7 "审查这段代码" → Claude 自动选择 @reviewer
8 "编写测试" → Claude 自动选择 @test-writer
9
103. /agents 命令(管理和浏览):
11 /agents → 打开 Agent 库
12 运行选项卡 → 查看活跃的子 Agent
13 库选项卡 → 浏览、创建、编辑 Agent

为了让自动委托生效,请确保 description 字段具体明确。"当用户请求代码审查时使用此 Agent" 有效。"处理代码" 无效。

成本计算

每个子 Agent 在自己的上下文窗口中运行,这意味着消耗 token。但同时也让主会话保持轻量。

text
1没有子 Agent:
2- 一个会话处理所有事情
3- 到第 20 条消息时上下文膨胀到 200K+ token
4- 后续每条消息成本更高
5- 自动压缩丢失重要上下文
6
7有子 Agent:
8- 主会话保持在约 30K token
9- 每个子 Agent 独自使用约 15-20K token
10- 摘要返回到主会话(500 token)
11- 总 token 可能相似,但质量更高
12- 将子 Agent 路由到 Sonnet → 每个 Agent 便宜 5 倍

真正的节省:将子 Agent 路由到 Sonnet,同时主会话运行 Opus。

text
1# 在你的环境配置中 export CLAUDE_CODE_SUBAGENT_MODEL="claude-sonnet-4-5-20250929"

从哪里开始

复制一个模板,随便哪个。放到 .claude/agents/ 中。使用一次。

如果你只想尝试一个:从 reviewer 开始。下次代码更改后,输入 @reviewer check the last commit。你再也不会回到自我审查的模式。

感谢阅读!

@0x_rody

rody - inline image
一键保存

使用 YouMind AI 深度阅读爆款文章

保存原文、追问细节、总结观点,并在一个 AI 工作空间里把爆款文章沉淀成可复用笔记。

了解 YouMind
写给创作者

把你的 Markdown 变成干净的 𝕏 文章

图片上传、表格、代码块,往 𝕏 上手动重排太痛苦。YouMind 把整篇 Markdown 一键转成干净、可直接发布的 𝕏 文章草稿。

试试 Markdown 转 𝕏

更多可拆解样本

近期爆款文章

探索更多爆款文章