一、subagent_type参数概述
在Claude Code的Agent工具中,subagent_type是一个关键参数,它决定了子代理的能力范围、可用的工具集以及任务执行方式。合理使用subagent_type参数可以让任务执行更加高效和精准。
核心概念:subagent_type参数用于指定子代理的类型,不同类型的子代理拥有不同的工具访问权限和行为模式,合理选择能显著提高任务执行效率。
subagent_type参数的主要作用包括:
- 能力限定:控制子代理可以使用的工具范围,从只读搜索到完整的读写权限
- 行为模式:影响子代理的任务处理方式,如探索型、规划型或通用型
- 资源分配:不同类型的子代理消耗的计算资源不同,可优化任务成本
- 任务适配:根据任务性质选择合适的子代理类型,提升执行效率和准确性
Claude Code目前支持三种主要的子代理类型:Explore(探索型)、Plan(规划型)和General-purpose(通用型)。每种类型都有其独特的定位和适用场景。
二、Explore类型子代理
Explore类型子代理是只读搜索代理,专注于信息收集和代码探索任务,不具备任何文件修改能力,是项目中安全可靠的信息检索工具。
可用工具
- Glob:文件模式匹配搜索,快速定位文件
- Grep:内容搜索,支持正则表达式匹配
- Read:只读文件读取,不能编辑文件
使用提示:由于Explore类型子代理只能使用只读工具,它天然安全,适合在大型代码库中进行探索性搜索和信息收集,无需担心意外修改文件。
适用场景
- 代码搜索:在大型项目中搜索特定函数、类或变量的定义和使用
- 文件查找:根据文件模式或命名规则查找目标文件
- 内容调研:阅读和理解代码逻辑,分析代码结构
- 信息收集:搜集项目相关文档、配置文件内容等
- 审计准备:在代码审查前收集相关代码片段和上下文
最佳实践:当只需要了解代码内容而不需要做出任何修改时,优先选择Explore类型。它轻量高效,且避免了误操作的风险。
三、Plan类型子代理
Plan类型子代理是架构设计代理,具备除Edit和Write之外的所有工具访问权限,专注于规划和设计任务,是制定技术方案的理想选择。
可用工具
- 所有只读工具(Glob、Grep、Read)
- Bash:执行Shell命令
- WebFetch、WebSearch:网络资源检索
- TodoWrite:任务管理
- Skill:技能调用
- EnterWorktree、ExitWorktree:工作区管理
- NotebookEdit:Notebook编辑
- 注意:不能使用Edit和Write工具修改文件
适用场景
- 架构设计:分析现有代码结构,设计系统架构方案
- 技术方案制定:对比不同技术方案,编写详细的技术设计文档
- 任务分解和规划:将复杂任务拆解为可执行的子任务列表
- 代码审查和审计:审查代码质量和正确性,提出改进建议但不直接修改
注意事项:Plan类型子代理不能直接修改文件,因此它适合制定方案和策略,实际编码实现需要交给General-purpose类型子代理执行。
四、General-purpose类型子代理
General-purpose类型子代理是通用全功能代理,拥有所有工具的完整访问权限,包括文件读写能力,是实际执行开发任务的主力军。
可用工具
- 所有工具(包括Edit、Write文件修改工具)
- 不受限制的工具集,能执行任何类型的任务
适用场景
- 代码编写:创建新文件、实现新功能模块
- 文件修改:编辑现有文件、重构代码、更新配置
- Bug修复:定位问题并直接修改代码
- 功能实现:从设计到编码的完整开发闭环
- 所有开发任务:包括编码、测试、部署等全流程
核心定位:General-purpose类型是实际执行任务的主力,适用于需要直接产出代码或修改文件的场景,是任务执行者的默认选择。
五、模型选择策略
除了subagent_type参数,子代理的model参数也直接影响任务执行的质量和效率。Claude Code支持在Agent工具中指定模型,实现分层智能。
Sonnet(推荐)
平衡速度和质量的理想选择,适用于大多数开发任务和日常使用场景
Opus(极致质量)
最高质量但速度较慢,适用于复杂推理、架构设计等需要深度思考的任务
Haiku(极速)
速度最快但质量有限,适用于快速探索、简单搜索和低复杂度任务
| 模型 |
特点 |
推荐场景 |
注意事项 |
| Sonnet |
平衡速度与质量 |
一般开发任务、代码编写 |
默认选择,适合绝大多数场景 |
| Opus |
最高质量、较慢 |
复杂推理、架构设计、技术方案 |
成本较高,仅在需要深度思考时使用 |
| Haiku |
速度最快、质量有限 |
快速探索、文件搜索、简单问答 |
不适合复杂编码任务 |
选择建议:在实际应用中,可以灵活组合不同的模型和子代理类型。例如,使用Plan+Opus进行架构设计,使用Explore+Haiku进行快速搜索,使用General-purpose+Sonnet进行编码实现,以达到最佳的成本效益比。
六、角色分工实践
在实际的项目开发中,可以模拟团队协作模式,为不同的子代理分配明确的角色和职责。以下是推荐的四种核心角色及其使用模式:
团队领导(Team Lead)
- 子代理类型:Plan
- 建议模型:Opus
- 职责:负责整体规划、架构设计、任务分配和质量标准制定
- 产出:技术方案、任务分解清单、架构文档
研究员(Researcher)
- 子代理类型:Explore
- 建议模型:Haiku(快速搜索)或Sonnet(深度调研)
- 职责:负责信息收集、代码搜索、技术调研和文档查阅
- 产出:调研报告、代码分析结果、参考资料汇总
执行者(Worker)
- 子代理类型:General-purpose
- 建议模型:Sonnet
- 职责:负责具体编码实现、Bug修复、功能开发和测试编写
- 产出:代码文件、测试用例、功能模块
审查者(Reviewer)
- 子代理类型:Plan
- 建议模型:Opus
- 职责:负责代码审查、质量把关、安全审计和性能优化建议
- 产出:代码审查意见、改进建议列表、质量报告
实践总结:通过合理组合subagent_type和model参数,可以在一个任务中实现多角色协作——先用Explore+Haiku快速调研,再用Plan+Opus设计方案,接着用General-purpose+Sonnet实现编码,最后用Plan+Opus进行审查。这样的分层协作模式能最大化效率和输出质量。