共计 2310 个字符,预计需要花费 6 分钟才能阅读完成。
之前视频中已经介绍了 Claude Code 的 MCP 和 Skill 两大功能,今天我们来介绍一下 Subagent ,Subagent 是 Claude Code 中一个独立的 AI 助手,拥有独立的上下文空间,可以并行处理不同的任务。
Subagent 和其他 Claude Code 推出的功能一样,目的是为了拓展 Claude Code 的能力和边界。
- MCP,模型上下文协议,是为了让 Claude 能够连接外部的资源,包括文件、数据库、网络等
- Skills,是包括了指令、脚本和资源的模块化能力扩展包,让 Cloud 在特定的任务上表现得更专业,会根据场景自动触发。
- 而今天要介绍的 Subagent 是配置的 AI Agent,可以让 Claude Code 将任务委托给他们单独处理。
那接下来我们从应用场景子代理是什么?它和 Skills 有什么区别?我们如何去创建和配置使用Subagent来完整介绍一下 Subagent。
应用场景
在使用场景上面, Skills 和 Subagent 它们有一定的相似,初学者很容易被这两个概念搞混。我们在使用场景上可以做这样的区分:
- 何时使用 Skill
- 单一,明确的任务
- 需要在 Claude 应用和 Claude Code 中共享使用
- 想要自动化特定工作流
- 比如文件转换,遵循品牌指南
- 何时使用 Subagent
- 复杂的多步骤任务
- 需要手动将任务分配给合适的 Subagent
- 并行处理多模块任务,比如,同时开发前后端应用
- 需要独立工作空间的专业工作,比如进行代码审查,调试,深度数据分析,安全审计等
Subagents
子代理 Subagents 是一个独立的 AI 助手,拥有自己的知识,工具。可以创建一个擅长查找 Bug 的代码审查 Subagent,也可以创建一个精通 SQL 的数据科学家 Subagent。
和 Skills 不同,Subagent 拥有更多的控制权,Claude 可以自动将任务分配给合适的 Subagent,用户也可以直接调用它。但是最大的区别在于每个 Subagent 都在各自独立的上下文窗口中运行。这意味着 Subagent 不会受到主对话历史记录的干扰,可以完全专注于自身的任务。
在职责划分上,Skill 更适合单一,明确的任务(比如文件转换)。而 Subagent 更适合多步骤的工作流(比如代码调试)等。
- Subagent 拥有独立的 200K token 上下文
- 多个 Subagent 可以同时工作,大幅提升效率
- 复杂工作流,适合多个步骤,复杂的任务处理
Subagent vs Skills
调用方式区别:自动和显式
Skills 的核心是自动发现,Claude 会根据任务的描述自动查找并使用 Skill,这对于简单的任务来说非常方便,不需要记住工具名称的列表,只需要说出需求,Claude 就会自动完成。但缺点就是对 Skill 的直接控制(调用)会减少,如果 Claude 认为某个 Skill 不符合当前的任务,那么就不会用到。
而相反 Subagent 则是提供了更多的控制选择,Claude 可以自动将任务委派给 Subagent,也可以明确告诉 Subagent 该做什么,比如可以直接在提示词中说明 Use the debugger subagent to check the error。这可以让用户更加精确地控制工作流,始终使用最「合适」的专家来负责处理任务。
上下文窗口区别
Skills 和 Subagent 另外一大非常重要的区别就是对上下文窗口的使用。Skills 非常轻量,因为它只将必要的信息加入到了主对话中,只有当确实需要调用这个 Skill 的时候才会触发 Skills 完整的查询,目的是为了增强当前的聊天,而不是开启全新的对话。
而 Subagent 强大之处在于其独立的上下文窗口,对于调试代码,分析大型代码仓库等多步骤复杂任务,这种分离至关重要。Subagent 可以不受主对话的干扰而独立完成整个流程,确保至始至终的专注和准确性。
可用性差异
Skills 目前可以在 Claude 应用,Claude Code 和 API 中使用,Pro,Max,Team,Enterprise 版本中使用。但是 Subagent 目前仅支持 Claude Code。
配置 Subagent
最推荐的方式就是使用交互式命令 /agents,会直接展示可用的 Subagent 列表,可以创建,编辑,删除。
Subagent 的作用域:
~/.claude/agents用户级别.claude/agents在项目级别
可以用两种方式生成
- Generate with Claude, 由 Claude 基于描述生成初始版本,然后可以由用户自定义
- Manual Configuration, 完全由用户输入
基于文件配置
Subagent 配置以 Markdown 格式存储在磁盘中。
---
name: your-agent-name
description: 描述此子代理的调用时机
tools: tool1, tool2, tool3 # 可选 - 省略时继承所有工具
model: sonnet # 可选 - 指定模型别名或 'inherit'
permissionMode: default # 可选 - 权限模式设置
---
在这里编写系统提示。
定义子代理的角色、能力和问题解决方法。
| 字段 | 必需 | 说明 |
|---|---|---|
| name | 是 | 使用小写字母和连字符的唯一标识符 |
| description | 是 | 自然语言描述 Subagent 的目的和触发时机 |
| tools | 否 | 以逗号分隔的工具列表。省略时继承主线程的所有工具 |
| model | 否 | 模型别名(sonnet、opus、haiku)或 inherit |
| permissionMode | 否 | 权限模式:default、acceptEdits、bypassPermissions、plan、ignore |
reference