教程2026-10-29 · 智涌AI

Claude Code 子 Agent 怎么配:agents 文件、工具与模型

Claude Code 子 Agent 配置头图:终端展示 .claude/agents/code-reviewer.md 的 frontmatter(name、description、tools、model)与 plugin validate、--agent 命令

在 Claude Code 里跑测试、翻日志、查一遍代码库,输出很快把主对话的上下文塞满。子 Agent(subagents)专接这种活:在自己的上下文窗口里干完,只把摘要交回来。官方文档写明,同一类活反复派、指令也一样时,就该把它写成自定义子 Agent。下面按 Claude Code 官方 subagents 文档(2026-10-29 北京时间查阅)整理文件写法、字段、调用方式和常见坑。

前置条件:一个能用的 Claude Code,加一个你反复在派的活

先认识内置的三个:Explore、Plan、general-purpose

不写任何文件,Claude Code 也会自动派子 Agent:

内置子 Agent工具用在哪
Explore只读,禁 Write / Edit搜文件、读代码、摸清代码库;启动时不带 CLAUDE.md 和 git status
Plan只读,禁 Write / Editplan 模式下先调研再出计划
general-purpose子 Agent 能用的全部工具既要探索又要改代码的多步任务

你在用户或项目目录里放一个同名的 Explore,就会覆盖内置版本并用你写的 model,比如设成 haiku 让探索跑在便宜模型上。不想让 Claude 用某个内置类型,在设置里 permissions.deny 加 "Agent(Explore)" 即可。

第一步:建文件,选好作用域

子 Agent 是带 YAML frontmatter 的 Markdown 文件。放的位置决定谁能用,同名时优先级高的生效:

位置作用域优先级
托管设置(managed settings)整个组织1(最高)
--agents 命令行参数当前会话2
.claude/agents/当前项目3
~/.claude/agents/你所有项目4
插件的 agents/ 目录启用插件的地方5(最低)

项目级的提交进 git,团队一起用、一起改。目录会递归扫描,可以按 agents/review/、agents/research/ 分子文件夹,但调用名只看 name 字段,和路径无关。

一个只读代码审查员,放进 .claude/agents/code-reviewer.md:

---
name: code-reviewer
description: Expert code reviewer. Use proactively after code changes.
tools: Read, Grep, Glob, Bash
model: sonnet
---

You are a senior code reviewer. Run git diff, focus on modified files,
and report issues as Critical / Warning / Suggestion with concrete fixes.

正文就是这个子 Agent 的系统提示。它拿不到 Claude Code 自己的系统提示,只有这段话加工作目录等环境信息,要交代的规矩都得写在这里。

只想临时试一下,不落盘,用 --agents 传 JSON:

claude --agents '{
  "code-reviewer": {
    "description": "Expert code reviewer. Use proactively after code changes.",
    "prompt": "You are a senior code reviewer. Focus on code quality, security, and best practices.",
    "tools": ["Read", "Grep", "Glob", "Bash"],
    "model": "sonnet"
  }
}'

第二步:把 description 写成路由规则

Claude 靠 description 决定什么时候派活。想让它主动派,官方建议在描述里写「use proactively」这类说法。描述会常驻上下文:除内置的之外,所有子 Agent 的描述加起来超过 15,000 token,启动时会报警告。细节挪到正文系统提示里,正文只在这个子 Agent 运行时才加载。

description 管「什么时候找它」,正文管「找来以后怎么干」。混在一起写,每个会话都得多背一段。

第三步:收紧工具、选模型、定权限

工具级做不到的细粒度控制交给 hooks:在 frontmatter 里挂 PreToolUse,脚本以退出码 2 拦下命令。官方示例是只放行 SELECT 的数据库只读子 Agent。

---
name: db-reader
description: Execute read-only database queries
tools: Bash
hooks:
  PreToolUse:
    - matcher: "Bash"
      hooks:
        - type: command
          command: "./scripts/validate-readonly-query.sh"
---

第四步:给子 Agent 预装 Skills、MCP 和记忆

Skill 和子 Agent 怎么分工,可以对照站内Claude Code 斜杠命令怎么写:Skill 跑在主对话上下文里,子 Agent 有自己的窗口。

第五步:调用和验收

官方给了从弱到强三种调用方式:

# 1) 自然语言点名,Claude 决定要不要派
Use the code-reviewer subagent to look at my recent changes

# 2) @ 提及,这一次一定由它来跑
@"code-reviewer (agent)" look at the auth changes

# 3) 整个会话切成这个子 Agent
claude --agent code-reviewer

想让项目默认就用某个子 Agent,在 .claude/settings.json 写 {"agent": "code-reviewer"},命令行参数会覆盖它。运行中的子 Agent 用 /tasks 查看,行上会标出它实际用的模型。

文件写完先查一遍:

claude plugin validate .claude/agents
claude --debug

plugin validate 会找出 frontmatter 解析失败的文件(不会提示缺 name)。v2.1.296 起,--debug 日志里搜 does not recognize or apply,能看到最多 5 个没认出的字段名,名字接近时还附上可能的正确写法。

常见坑

拦危险命令别只靠子 Agent 的提示词,项目级的 Hooks 在子 Agent 里同样生效。

完成标准

最后

挑一件你最常派、输出又最长的活,先写成只读子 Agent,跑顺了再加工具。什么时候该把子 Agent 折回主循环,看这篇官方思路整理。

关注公众号「智涌AI速递」

每天的 AI 快讯、实用教程和 AI项目实测,也会同步发到微信公众号。在微信里搜索「智涌AI速递」就能关注;不用微信的话,可以用 RSS 订阅本站。