Claude Code 中的 agents 目录详解:自定义子代理完全指南

很多人在使用 Claude Code 时,会注意到 ~/.claude/ 目录下有一个 agents 文件夹,但不清楚它的用途、文件格式,以及它和 CLAUDE.md 的区别。本文做一个系统性的梳理。

1. agents 目录是什么?

~/.claude/agents/ 用于存放自定义子代理(sub-agent)定义文件 。每个 .md 文件定义一个专门的 AI 助手,可以被 Claude Code 通过 Agent 工具按需调用。

子代理的核心价值:

  • 上下文隔离 --- 每个 agent 有独立的上下文窗口,不会污染主会话
  • 并行执行 --- 多个 agent 可以同时工作,提升效率
  • 专门化配置 --- 每个 agent 可以有自己的模型、工具集、权限策略

存放位置支持两级:

级别 路径 作用域
全局 ~/.claude/agents/ 所有项目可用
项目级 <project>/.claude/agents/ 仅当前项目可用

2. 文件格式规范

Agent 文件采用 Markdown + YAML frontmatter 格式,文件扩展名通常为 .md.agent.md

基本结构

markdown 复制代码
---
name: my-agent
description: 简短描述何时触发这个 agent
model: sonnet
tools: [Read, Grep, Glob, Bash]
maxTurns: 50
---

# Agent 的具体指令

这里写 markdown 格式的指令内容...

常用 frontmatter 字段

字段 类型 说明
name string Agent 标识名称
description string 描述何时触发(帮助 Claude 决定是否调用)
model string 使用的模型:sonnet / opus / haiku / inherit
tools list 允许使用的工具列表
disallowedTools list 明确禁止使用的工具
permissionMode string 权限模式:strict / relaxed / inherit
maxTurns number 最大对话轮次
skills list 可使用的 skills 列表
mcpServers list 可访问的 MCP 服务器
memory boolean 是否持久化上下文
color string UI 显示颜色(如 "#hexcode"

示例:一个代码审查 Agent

markdown 复制代码
---
name: code-reviewer
description: Use this agent to perform thorough code reviews on pull requests or changed files.
model: opus
tools: [Read, Grep, Glob, Agent]
maxTurns: 30
---

# Code Review Agent

You are a senior code reviewer. When reviewing code:

1. Check for correctness and potential bugs
2. Evaluate code style and consistency
3. Look for security vulnerabilities
4. Suggest performance improvements
5. Verify error handling completeness

Output a structured review report with severity levels: Critical / Warning / Info.

3. agents 目录名能改吗?

不能。 agents 是 Claude Code 硬编码的查找路径,无法更名。Claude Code 会固定在以下两个位置查找 agent 定义:

复制代码
~/.claude/agents/           # 全局
<project>/.claude/agents/   # 项目级

如果你需要在多个工具间共享 agent 配置,可以考虑使用符号链接(symlink)

4. agents 与 CLAUDE.md 的区别

这是最容易混淆的地方。两者虽然都在 ~/.claude/ 目录下,但定位完全不同:

对比维度 CLAUDE.md agents/*.md
定位 全局指令和项目规范 专门化的子代理 worker
加载方式 每次会话自动加载 按需调用或触发时加载
上下文 共享主会话上下文 独立隔离的上下文窗口
执行方式 作为主 agent 的一部分运行 作为独立子进程运行
文件格式 纯 Markdown YAML frontmatter + Markdown
层级机制 支持(全局 → 项目 → 子目录) 不支持层级覆盖
并行能力 单线程执行 多个 agent 可并行

用一句话总结:

  • CLAUDE.md = "我是谁、我的规矩是什么"(身份和规范)
  • agents/ = "我手下有哪些专家可以调遣"(专门化工具人)

CLAUDE.md 适合放什么

markdown 复制代码
# CLAUDE.md 示例
- 项目使用 TypeScript + React
- 代码风格遵循 Airbnb 规范
- 提交信息使用 Conventional Commits 格式
- 构建命令:npm run build
- 测试命令:npm test

agents 适合放什么

  • Crash 分析专家(自动 GDB 调试)
  • 代码审查员(专注 review 逻辑)
  • 文档生成器(自动生成 API 文档)
  • 安全审计员(扫描漏洞模式)

5. 为什么 CLAUDE.md 不能放在 agents 目录里?

这是由两者完全不同的加载机制决定的:

原因一:加载时机不同

CLAUDE.md 在每次对话开始时自动注入到系统提示中,始终生效。而 agents 目录下的文件只在匹配到特定任务时才被加载。如果把 CLAUDE.md 放进 agents 目录,它就变成了一个"子代理定义",不再是全局指令了。

原因二:层级加载机制

CLAUDE.md 支持多级覆盖:

复制代码
Enterprise 策略(如有)
  └── ~/.claude/CLAUDE.md(个人全局)
        └── <project>/CLAUDE.md(项目级)
              └── <project>/src/CLAUDE.md(子目录级)

越具体的目录,CLAUDE.md 的优先级越高。agents 不具备这种层级关系。

原因三:文件格式不同

CLAUDE.md 是纯 Markdown,Claude Code 直接将其内容作为上下文注入。而 agent 文件需要 YAML frontmatter 来声明模型、工具、权限等配置,两者的解析逻辑完全不同。

原因四:架构职责分离

将"我应该遵守的规则"和"我可以调用的专家"混在一起,会导致职责不清。这是良好的软件设计原则 ------ 关注点分离。

6. 最佳实践

  1. CLAUDE.md 保持精简:只放始终需要的全局指令,避免超过 200 行
  2. Agent 按职责拆分:每个 agent 专注一个领域,不要做"全能 agent"
  3. 善用项目级 agents:通用 agent 放全局,项目特定的放项目目录
  4. 合理设置 maxTurns:避免 agent 无限循环,一般 30-50 轮足够
  5. 选择合适的 model :简单任务用 haiku/sonnet,复杂推理用 opus

总结

你想要... 用什么
设置全局编码规范 CLAUDE.md
定义项目构建命令 CLAUDE.md
创建专门的 crash 分析助手 agents/
创建并行工作的代码审查员 agents/
保存用户偏好设置 CLAUDE.md
隔离复杂任务避免上下文溢出 agents/

~/.claude/ 目录的设计体现了清晰的架构思想:CLAUDE.md 是记忆,agents 是能力。理解这个区别,才能更好地定制你的 Claude Code 工作流。

相关推荐
uccs21 小时前
流式响应的三次进化:EventSource → ReadableStream → TransformStream
openai·ai编程·claude
洛卡卡了1 天前
我们在用 AI 写代码时,为什么建议要好好维护 AGENTS.md 呢?
面试·agent·claude
ZzT1 天前
让 AI 少写一半代码:拆解爆火的 ponytail
ai编程·claude
我不是外星人1 天前
我把 Claude Code 搬到网页!自研高颜值 Web 交互工作台
前端·ai编程·claude
counterxing3 天前
最近发现一个 Mac 工具,有点像把 Raycast、语音输入法、截图和录屏塞到了一起
macos·ai编程·claude
码哥字节3 天前
为什么 Claude Code 读你的代码库,光靠 embedding 根本不够?
claude·代码规范
用户223586218204 天前
Loop Engineering:从 Prompt 到 Loop
claude
爱吃的小肥羊4 天前
Claude Fable 5 最新动态:灰度回归,GPT-5.6 分阶段发布跟进
aigc·ai编程·claude