1. 理解Claude Code中的agents目录
在Claude Code的工作环境中,~/.claude/agents/目录是一个专门用于存放自定义子代理(sub-agent)定义文件的地方。这个目录的设计体现了模块化和专业化的思想,让开发者能够创建针对特定任务的专门化AI助手。
提示:子代理的核心价值在于它们能够独立运行,不会干扰主会话的上下文,这就像是在你的开发团队中雇佣了各种专业顾问,每个顾问只专注于自己擅长的领域。
1.1 agents目录的定位与价值
agents目录中的每个.md文件都定义了一个专门的AI助手,这些助手可以被Claude Code通过Agent工具按需调用。这种设计带来了几个显著优势:
-
上下文隔离:每个子代理拥有独立的上下文窗口,不会污染主会话。想象一下,这就像是在不同的会议室里进行不同的讨论,每个会议都有自己独立的记录板。
-
并行执行:多个子代理可以同时工作,大大提升了工作效率。比如你可以同时运行代码审查代理和文档生成代理,而不需要等待一个任务完成再开始另一个。
-
专门化配置:每个子代理可以有自己的模型选择、工具集和权限策略。这意味着你可以为不同的任务选择最适合的AI模型和工具组合。
1.2 存放位置与作用域
Claude Code支持两种级别的agents目录:
| 级别 | 路径 | 作用域 |
|---|---|---|
| 全局 | ~/.claude/agents/ |
所有项目可用 |
| 项目级 | <project>/.claude/agents/ |
仅当前项目可用 |
这种分级设计非常实用。全局agent适用于那些跨项目的通用任务,比如代码审查或文档生成;而项目级agent则适合处理特定项目的独特需求,比如某个项目的特殊构建流程或测试规范。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Agent文件格式详解
2.1 基本文件结构
Agent文件采用Markdown + YAML frontmatter的格式,通常使用.md或.agent.md作为文件扩展名。这种格式既保持了可读性,又能包含必要的配置信息。
一个典型的agent文件结构如下:
markdown复制---
name: my-agent
description: 简短描述何时触发这个agent
model: sonnet
tools: [Read, Grep, Glob, Bash]
maxTurns: 50
---
# Agent的具体指令
这里写markdown格式的指令内容...
2.2 YAML frontmatter字段解析
YAML frontmatter部分是agent的配置核心,下面详细解析常用字段:
| 字段 | 类型 | 说明 | 示例值 |
|---|---|---|---|
name |
string | Agent的唯一标识名称 | code-reviewer |
description |
string | 描述何时触发这个agent | "用于执行代码审查" |
model |
string | 使用的AI模型 | sonnet/opus/haiku/inherit |
tools |
list | 允许使用的工具列表 | [Read, Grep, Glob, Bash] |
disallowedTools |
list | 明确禁止使用的工具 | [Write, Delete] |
permissionMode |
string | 权限模式 | strict/relaxed/inherit |
maxTurns |
number | 最大对话轮次 | `3 |
