Created time
Apr 13, 2026 04:29 PM
category
library
date
Apr 7, 2026
status
Published
icon
password
slug
how-to-use-subagents-in-claude-code
summary
如何高效利用子智能体优化Claude Code中的复杂任务处理?
tags
Claude
工程实践
Agent
type
post
原文链接:https://claude.com/blog/subagents-in-claude-code 发表日期:2026年4月7日
Claude Code 子智能体实用指南:它们在哪些场景下真正有用、如何主动引导,以及判断"值得委派"的关键信号。
Claude Code 非常擅长处理复杂的多步骤项目,但长时间的会话会不断积累负担。每读取一个文件、每一次偏离主线的探索、每一个悬而未决的思路,都会留在上下文窗口中,拖慢响应速度,推高 Token 成本。
设想这样一个场景:你正在一个大型 TypeScript 单体仓库里开发新功能,主线任务是写代码,但旁支问题接连涌现——现有服务是怎么处理身份验证的?日期格式化有没有现成的工具函数?设计系统里有没有类似的组件?这些问题本身不需要完整的项目上下文,放在主会话里处理只会徒增噪音。如果能把它们并行跑起来呢?
这正是子智能体(Subagents) 的用武之地。子智能体是一个拥有独立上下文窗口的隔离 Claude 实例——它接收任务、独立完成,最终只把结果返回给你。可以把它理解为 Claude Code 会话里的"浏览器新标签页":在不打断主线的前提下,随时去处理那些分支任务。
本文将探讨:什么时候该用子智能体、怎么调用它们,以及什么时候反而不适合用。
什么是子智能体?
子智能体是拥有独立上下文窗口、能够独立运行的智能体。当 Claude 启动一个子智能体时,它会自主工作——读取文件、探索代码、执行修改。任务完成后,只将关键结果返回主对话,过程细节不会污染主线上下文。
每个子智能体都从零开始,不继承任何对话历史或已有假设。多个子智能体可以并行运行,且每个智能体可以拥有不同的权限:负责研究的子智能体可以只有只读权限,负责实现的子智能体则拥有完整的编辑能力。
Claude Code 内置了多种子智能体类型,包括:
- 通用智能体:处理复杂的多步骤任务
- 规划智能体:在制定实现方案前先对代码库进行调研
- 探索智能体:专为快速、只读的代码检索优化
Claude Code 通常会自动启动子智能体来完成分配的任务。你也可以主动引导这一行为,甚至定义可复用的专属智能体,让 Claude 在合适时机自动委派。真正的价值在于:知道什么时候该用子智能体。
哪些场景适合用子智能体?
某些类型的任务天然适合委派给子智能体。识别这些场景,能让这一功能发挥出更大的价值。
🔍 研究密集型任务
当"弄清楚某个东西怎么运作"是"动手修改它"的前提时,让子智能体去探索代码库并返回摘要,远比把几十个文件塞进主对话要干净得多。
- 信号:收集上下文需要大量读取文件
- 收益:主对话保持整洁,拿到的是综合后的结论,而非原始内容
⚡ 多个相互独立的任务
当你需要修复多个文件里的 Bug、在多个组件里更新某个模式,或者执行一批互不依赖的改动时,并行子智能体能大幅提速。
- 信号:子任务之间没有依赖关系
- 收益:三个子智能体同时推进,总耗时通常远低于串行
🧹 需要全新的视角
当你需要对某个实现方案进行无偏见审查时,子智能体提供了一块"干净的白板"——它不会继承主对话里的假设、上下文或思维定势。
- 信号:需要验证,且不希望被对话历史带偏
- 收益:得到更客观、更清晰的反馈
- 小技巧:
/clear命令同样可以重置上下文,但代价是彻底丢失历史记录。子智能体则在保留主对话完整性的同时,实现了同等的"全新视角"
✅ 提交前的独立验证
在最终提交前,让一个未参与实现过程的子智能体来检验:方案是否过度拟合测试?有没有遗漏边缘情况?
- 信号:提交代码前需要"第二双眼睛"
- 收益:捕捉那些因为"太熟悉代码"而容易忽视的问题
🔗 流水线式工作流
当任务有清晰的阶段划分(如:设计 → 实现 → 测试),且每个阶段都需要高度专注时,流水线模式非常有效。
- 信号:存在明确交接点的顺序阶段
- 收益:每个子智能体只专注于自己的阶段,不受其他阶段上下文干扰
- 经验法则:如果任务涉及超过十个文件的探索,或需要三项以上相互独立的工作,这就是明确信号——该引导 Claude 使用子智能体了
如何引导子智能体
调用子智能体的方式多种多样,从直接对话到自动化工作流均可。选择合适的切入点,随着使用模式逐渐清晰,再考虑增加复杂度。
💬 对话式调用
最灵活的方式,就是在对话中直接让 Claude 使用子智能体。这适用于所有 Claude Code 界面:终端、VS Code、JetBrains、网页和桌面端。
以下这些自然语言表达能可靠触发子智能体:
- "用子智能体探索一下这个代码库里身份验证是怎么实现的"
- "让一个独立智能体审查这段代码有没有安全问题"
- "并行研究这几块内容——同时检查 API 路由、数据库模型和前端组件"
- "启动子智能体,并行修复不同包里的这些 TypeScript 报错"
说清楚很重要:明确范围,在任务独立时主动要求并行,并描述期望的输出形式。
示例提示词结构:
🤖 自定义子智能体
如果某类子智能体(比如安全审查员、测试编写者、文档校对员)被反复使用,可以将其定义为自定义子智能体。Claude 会在任务与描述匹配时自动委派,无需每次手动提示。
自定义子智能体以 Markdown 文件形式存放在
.claude/agents/(项目级,团队共享)或 ~/.claude/agents/(用户级,所有项目可用)。每个智能体有自己的系统提示词、工具权限,以及可选的指定模型。最简单的创建方式是使用
/agents 命令,它会引导你完成交互式配置。📋 CLAUDE.md 指令
自定义子智能体定义的是"专家是谁",而
CLAUDE.md 文件定义的是"Claude 什么时候应该寻求帮助的规则"。如果你希望所有代码审查都走只读子智能体,或者所有架构问题都先触发研究阶段,这些策略就写在 CLAUDE.md 里。🛠 技能(Skills)
对于需要反复运行的复杂多步骤工作流,技能提供了一个可复用的调用接口。在
.claude/skills/ 中定义一次,之后通过 /技能名 调用,或让 Claude 在任务匹配时自动加载。技能适合那些"需要时能用,但不该套用到每个提示词"的工作流。🪝 钩子(Hooks)
钩子是用户自定义的 Shell 命令、HTTP 端点或 LLM 提示词,会在 Claude Code 生命周期的特定节点自动执行。通过钩子,可以基于事件自动触发子智能体工作流,完全无需手动调用。
实用使用模式
- 先研究,再实现:面对陌生代码库时,先委派研究任务,让后续的实现讨论建立在扎实的认知基础上
- 并行修改:需要在多个文件里更新同一模式时,并行子智能体不仅更快,还能保持各自的专注度
- 独立审查:实现复杂功能后,用一个未参与实现过程的子智能体做验证,捕捉因"太了解代码"而产生的盲点
- 流水线工作流:将任务拆分为阶段,用文件输出作为阶段间的交接机制,确保每个阶段高度专注
什么时候不该用子智能体?
子智能体虽然有用,但并非没有代价。每个子智能体都需要初始化自己的上下文、消耗 Token,并在你与工作之间引入额外的间接层。
以下场景通常在主对话里直接处理更简单:
- 步骤之间存在强依赖:如果第二步必须依赖第一步的完整输出,单次会话往往比子智能体接力更清晰直接
- 多个智能体编辑同一文件:并行修改同一文件极易产生冲突
- 小型快速任务:对于简单修复或快速提问,委派的开销远大于收益
- 定义了过多专属智能体:自定义智能体数量过多,会降低自动委派的可靠性
- 任务需要智能体之间协作:子智能体只向主对话汇报,无法直接相互通信。如果任务需要多个智能体协同工作,请使用智能体团队(Agent Teams)
从对话开始,再逐步自动化
子智能体在被审慎、有意识地使用时,才能发挥最大价值。Claude 提供的自动调用能力固然方便,但清楚地知道"何时委派研究、何时并行推进、何时需要全新视角",会比单纯依赖随机触发带来更好的结果。
建议从对话式提示词出发,观察哪些请求模式反复出现,等模式足够清晰后再构建自动化。最终目标,是让子智能体的委派变得毫不费力——这样你才能把注意力放在真正重要的事上。