在Claude Code中的AI子代理,可用于特定任务的工作流程和改进的上下文管理。
Claude Code中的自定义子代理是专门的AI助手,可以被调用来处理特定类型的任务。它们通过提供具有自定义系统提示、工具和独立上下文窗口的特定任务配置,实现更高效的问题解决。
具有如下优势:
- 上下文保护:每个子代理在自己的上下文中操作,防止主对话的污染,并保持其专注于高级目标。
- 专业知识:子代理可以通过特定领域的详细指令进行微调,在指定任务上获得更高的成功率。
- 可重用性:一旦创建,子代理可以在不同项目中使用,并与您的团队共享以实现一致的工作流程。
- 灵活权限:每个子代理可以有不同的工具访问级别,允许您将强大的工具限制在特定的子代理类型上。
什么是Sub Agents?
Sub Agents本质上是预配置的专业AI助手,它们能够被Claude Code主系统委托处理特定类型的任务。每个Sub Agent都拥有独立的上下文窗口、定制化的系统提示词以及特定的工具访问权限。这种设计使得每个Sub Agent都能专注于自己的专业领域,如代码审查、调试或数据分析等。
与传统的单一AI助手不同,Sub Agents采用了”术业有专攻”的理念。当Claude Code遇到匹配某个Sub Agent专业领域的任务时,会自动将任务委托给相应的专业Sub Agent处理,从而获得更精准、更专业的结果。
使用场景与最佳实践
在实际应用中,Sub Agents展现出了强大的适应性。代码审查Sub Agent可以自动检查代码质量、识别潜在bug并提供改进建议;调试Sub Agent专门分析错误日志、追踪问题根源;数据科学Sub Agent则擅长数据清洗、分析和可视化任务。
Anthropic建议用户首先使用Claude生成初始的Sub Agent,然后根据具体需求进行定制。这种方法既保证了基础功能的完整性,又允许用户根据个人或团队的特殊需求进行优化。
Sub Agents的推出代表了AI助手向专业化、模块化发展的重要趋势。这种设计不仅提高了任务执行的效率和准确性,还为构建复杂的AI工作流提供了基础框架。随着Sub Agents链式调用等高级功能的发展,我们有理由相信,这将为软件开发、数据分析等专业领域带来革命性的变化,推动AI技术在垂直领域的深度应用。
快速开始
创建您的第一个子代理:
- 打开子代理界面,运行以下命令:
/agents - 选择
Create new agent - 定义子代理
- 推荐:首先用
Generate with Claude,然后自定义使其成为您的 - 详细描述您的子代理以及何时应该使用它
- 选择您想要授予访问权限的工具(或留空以继承所有工具)
- 界面显示所有可用工具,使选择变得容易
- 如果您正在用
Generate with Claude,您也可以通过按e在自己的编辑器中编辑系统提示
- 推荐:首先用
- 保存并使用
您的子代理现在可用了!Claude会在适当时自动使用它,或者您可以显式调用它:
> 使用代码审查员子代理检查我最近的更改
SubAgents 配置
文件位置
子代理存储为带有YAML前言的Markdown文件,位于两个可能的位置:
| 类型 | 位置 | 范围 | 优先级 |
|---|---|---|---|
| 项目子代理 | .claude/agents/ | 在当前项目中可用 | 最高 |
| 用户子代理 | ~/.claude/agents/ | 在所有项目中可用 | 较低 |
当子代理名称冲突时,项目级子代理优先于用户级子代理。
文件格式
每个子代理在Markdown文件中定义,具有以下结构:
配置字段
| 字段 | 必需 | 描述 |
|---|---|---|
name | 是 | 使用小写字母和连字符的唯一标识符 |
description | 是 | 子代理目的的自然语言描述 |
tools | 否 | 特定工具的逗号分隔列表。如果省略,从主线程继承所有工具 |
可用工具
子代理可以被授予访问Claude Code的任何内部工具。请参阅工具文档获取可用工具的完整列表。
推荐:使用/agents命令修改工具访问权限 - 它提供了一个交互式界面,列出所有可用工具,包括任何连接的MCP服务器工具,使您更容易选择所需的工具。
您有两个配置工具的选项:
- 省略
tools字段以从主线程继承所有工具(默认),包括MCP工具 - 指定单个工具作为逗号分隔列表以获得更精细的控制(可以手动编辑或通过
/agents)
MCP工具:子代理可以访问来自配置的MCP服务器的MCP工具。当省略tools字段时,子代理继承主线程可用的所有MCP工具。
管理子代理
使用/agents命令(推荐)
/agents命令为子代理管理提供了一个全面的界面:
这会打开一个交互式菜单,您可以:
- 查看所有可用的子代理(内置、用户和项目)
- 通过引导设置创建新的子代理
- 编辑现有的自定义子代理,包括它们的工具访问权限
- 删除自定义子代理
- 查看当存在重复时哪些子代理是活动的
- 轻松管理工具权限,提供可用工具的完整列表
直接文件管理
您也可以通过直接处理子代理文件来管理它们:
有效使用子代理
自动委托
Claude Code基于以下内容主动委托任务:
- 您请求中的任务描述
- 子代理配置中的
description字段 - 当前上下文和可用工具
为了鼓励更主动的子代理使用,在您的description字段中包含”主动使用”或”必须使用”等短语。
显式调用
通过在命令中提及特定子代理来请求它: