Claude Code SubAgents 配置实战:4个现成配置,复制就能用
用 Claude Code 做项目有个烦人的事:上下文窗口不够用。
让它查一下某个模块的实现逻辑,它把 20 个文件的内容全塞进对话里。查完之后你说"好,现在改这个函数",它告诉你上下文快满了,要不要压缩。
上周我重构一个 Express 项目,让 Claude Code 先摸清路由结构,再改中间件。光是"摸清"这一步,它读了 34 个文件,上下文用掉 60%。等到真正要改代码的时候,已经没多少空间了。
SubAgents 就是解决这个问题的。它让你把"查资料"和"干活"拆到不同的上下文窗口里。查完的 Agent 把结论给你,原始内容不会污染主对话。
Claude Code 自带的三个 SubAgent
装完 Claude Code 就有三个内置 SubAgent,不用配置:
Explore:用 Haiku 模型跑,只有读权限,不能改文件。你让 Claude Code 去了解一个不熟悉的代码库,它会自动把任务丢给 Explore。速度快,成本低,查完把摘要丢回来。
Plan:在 plan mode 下工作。你开了 plan mode 让 Claude Code 先做方案再动手,它会派 Plan 去读代码、收集信息,然后拿着信息回来给你做规划。用的是主对话的模型。
general-purpose:啥都能干,有完整的工具权限。当任务比较复杂、需要又读又写的时候,Claude Code 会用这个。
这三个是自动调度的,你不用手动指定。Claude Code 看任务类型自己选。
自定义 SubAgent:两种创建方式
方式一:命令行交互创建
在 Claude Code 里输入:
/agents
切到 Library 标签页,选 Create new agent。它会问你几个问题:
- 放在哪里?Personal(存到
~/.claude/agents/,所有项目都能用)还是 Project(存到.claude/agents/,只在当前项目生效) - 要什么工具权限?只读、全部、还是自己选
- 用什么模型?Haiku 便宜快,Sonnet 平衡,Opus 贵但强
- 要不要持久记忆?开了的话 SubAgent 会在
~/.claude/agent-memory/存东西
方式二:直接写 Markdown 文件
在 ~/.claude/agents/ 或 .claude/agents/ 下创建一个 .md 文件。格式是 YAML frontmatter + Markdown 正文:
---
name: my-agent
description: 一句话描述这个 Agent 干什么
tools: Read, Glob, Grep, Bash
model: sonnet
---
你是一个专门做 XX 事情的 Agent。
这里写系统提示词,告诉它该怎么工作。
存好之后重启 Claude Code 生效。用 /agents 创建的不用重启,即时生效。
作用域和优先级
多个地方都能放 SubAgent 配置,优先级从高到低:
| 位置 | 作用范围 | 优先级 |
|---|---|---|
| 组织级托管配置 | 整个组织 | 最高 |
--agents CLI 参数 |
当前会话 | 2 |
.claude/agents/ |
当前项目 | 3 |
~/.claude/agents/ |
所有项目 | 4 |
| 插件的 agents 目录 | 装了插件的项目 | 最低 |
同名时高优先级覆盖低优先级。
4 个直接能用的 SubAgent 配置
下面是我在用的 4 个 SubAgent,直接复制文件到 ~/.claude/agents/ 就行。
1. 代码审查 Agent
---
name: reviewer
description: 代码审查,检查质量和安全问题。在代码修改后主动使用。
tools: Read, Glob, Grep, Bash
model: sonnet
---
你是代码审查员。收到代码后做这几件事:
1. 检查有没有明显 bug(空指针、数组越界、未处理异常)
2. 检查安全问题(SQL 注入、XSS、硬编码密钥)
3. 检查性能问题(N+1 查询、不必要的循环、内存泄漏风险)
4. 风格问题只提严重的,别纠结缩进和命名偏好
输出格式:
- 问题等级(严重/警告/建议)
- 文件名和行号
- 问题描述
- 修复方案
不要说"代码整体写得不错"之类的话。有问题说问题,没问题就说没发现问题。
这个 Agent 用 Sonnet 跑,够用了。给它只读权限加 Bash(用来跑 lint 或 grep),不给写权限,防止它一边审查一边改。
2. 测试生成 Agent
---
name: test-writer
description: 给代码生成单元测试。在写完新函数或修改逻辑后使用。
tools: Read, Write, Edit, Glob, Grep, Bash
model: sonnet
---
你是测试工程师。根据源代码生成测试用例。
规则:
- 先读源文件,搞清楚函数的输入输出和边界条件
- 测试框架跟项目已有的保持一致(看 package.json 或 pom.xml)
- 每个函数至少覆盖:正常输入、边界值、异常输入
- mock 外部依赖,不要让测试依赖数据库或网络
- 测试文件放在对应的 __tests__ 或 test 目录下
- 写完跑一遍 `npm test` 或对应的测试命令,确认能通过
不要生成那种只测试 "1+1=2" 的无效测试。重点测试业务逻辑的分支。
这个需要写权限,因为它要创建测试文件。
3. 文档扫描 Agent
---
name: doc-scanner
description: 扫描项目文档和 README,找出过时或缺失的内容。
tools: Read, Glob, Grep
model: haiku
---
你是文档审计员。扫描项目的文档文件,检查这些问题:
1. README 里的安装步骤能不能跑通(对照 package.json 的 scripts)
2. API 文档里的参数和实际代码是否一致
3. 配置示例里的环境变量在代码里是否真的用到了
4. 有没有引用了已删除的文件或函数
输出一个清单,列出每个问题的位置和建议修复方式。
用 Haiku 就够了,只需要读文件和匹配文本,不需要多强的推理。省钱。
4. Git 日志分析 Agent
---
name: git-analyst
description: 分析 Git 历史,生成变更摘要或排查问题引入时间。
tools: Read, Bash, Grep
model: haiku
---
你是 Git 历史分析员。通过 git log、git diff、git blame 分析仓库历史。
常见任务:
- 生成最近 N 天的变更摘要(按模块分组)
- 找出某个 bug 是哪个 commit 引入的
- 统计各开发者的提交频率和改动量
- 分析某个文件的修改历史
用 git 命令获取数据,然后整理成可读的报告。不要输出原始 git log,要做归纳。
用 CLI 参数临时创建 SubAgent
不想写文件?用 --agents 参数启动 Claude Code 时临时定义:
claude --agents '{
"quick-grep": {
"description": "快速搜索代码中的模式",
"prompt": "你是代码搜索工具。用户给你一个搜索目标,你用 grep 和 glob 找到所有相关代码位置,输出文件路径和行号。",
"tools": ["Read", "Grep", "Glob", "Bash"],
"model": "haiku"
}
}'
这个 SubAgent 只在当前会话存在,关掉就没了。适合临时用一次的场景。
踩坑记录
1. SubAgent 不能再套 SubAgent
SubAgent 内部不能再派 SubAgent。这是设计上的限制,防止无限嵌套。如果你的任务需要多层委派,考虑用 Agent Teams(多个 Agent 直接通信)或 Background Agents(并行跑多个独立会话)。
2. 文件创建后要重启
手写 .md 文件放到 agents 目录后,必须重启 Claude Code 才能加载。用 /agents 命令创建的不需要重启。我第一次用的时候写好文件,结果怎么都调不出来,折腾了半小时才发现要重启。
3. description 写清楚,不然 Claude 不知道啥时候用
Claude Code 看 description 决定什么时候调用这个 SubAgent。写太笼统(比如"一个有用的助手"),它可能永远不会用。写清楚具体场景:"在代码修改后主动审查代码质量",它才知道什么时候该派这个 Agent 出去。
4. 工具权限给少不给多
审查类的 Agent 别给写权限。我有一次给 reviewer 开了 Write,它一边审查一边把它觉得有问题的代码改了——没经过我确认。后来把 Write 去掉,改成只读,它老老实实只输出报告。
5. 同名冲突不报错
同一个 scope 下(比如 ~/.claude/agents/)如果有两个文件声明了同一个 name,Claude Code 随机保留一个,不会提示你。建议用不同的 name 值,或者整理好目录结构。
frontmatter 字段速查
| 字段 | 作用 | 示例值 |
|---|---|---|
| name | SubAgent 标识符 | reviewer |
| description | 触发条件描述 | 代码审查 Agent |
| tools | 允许使用的工具 | Read, Glob, Grep, Bash |
| disallowedTools | 禁止使用的工具 | Write, Edit |
| model | 使用的模型 | haiku / sonnet / opus |
| permissionMode | 权限模式 | plan(只读)/ full |
| maxTurns | 最大对话轮次 | 10 |
| memory | 持久记忆范围 | user / project / none |
| hooks | 生命周期钩子 | 同 Claude Code Hooks |
| skills | 加载的技能文件 | ["./skills/lint.md"] |
| color | UI 背景色 | blue |
什么时候该用 SubAgent
不是什么任务都要拆成 SubAgent。判断标准:
这个任务会往上下文塞一堆你后面用不到的内容吗?如果是,拆出去。
你经常重复给 Claude Code 同样的指令吗?如果是,做成 SubAgent。
你想让某类任务用便宜的模型跑吗?如果是,做成 SubAgent 指定 Haiku。
如果只是一个简单的"帮我改这个函数",直接在主对话里做,别过度设计。
配置文件都在 GitHub Gist 上存了一份,搜 "claude-code-subagents-config" 能找到。有问题评论区聊。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)