上个月我让 Claude Code 帮一个项目补测试覆盖率。任务不小:十几个模块,每个都要写单测,还要检查边界条件。
我直接扔给它:「帮我把这个项目的测试覆盖率从 40% 提到 80%。」
Claude 开始干。一个模块、两个模块、三个模块……每做完一个,上下文里就多一堆已经处理过的信息。做到第七个模块的时候,它开始遗忘前面的约定。做到第十个的时候,它写的测试风格已经和前面的不一致了。
不是 Claude 不够聪明。是我给它的任务超出了单个 session 合理处理的范围,它只能串行往下撑,上下文越来越重。
你在手动拆任务,Claude 其实可以自己拆。
什么是 Sub-agents
Sub-agents 是 Claude Code 的一个能力:在处理复杂任务时,Claude 可以自动将任务拆解成多个子任务,并行启动多个独立的子 agent 来分别处理,最后汇总结果。
每个子 agent 都是一个独立的 Claude 实例,有自己干净的上下文,互不干扰。主 agent 负责协调和汇总,子 agent 负责具体执行。
用人话说:Claude 可以自己雇人干活,不需要你手动把任务拆成十份再一份份喂给它。
这不是多开几个窗口那种「并行」。那叫你在并行。Sub-agents 是 Claude 在并行。
为什么 Sub-agents 解决了一个真实问题
单个 Claude session 有两个内在限制:
一:上下文窗口是有限的。 任务越复杂、做的越久,上下文里积累的信息越多,性能越来越差。这不是 bug,是物理限制。
二:串行执行是慢的。 如果任务 A、B、C 之间没有依赖关系,串行做就是在浪费时间。
Sub-agents 同时解决这两个问题:
- 每个子 agent 有自己干净的上下文,主 agent 的上下文不会被子任务污染
- 没有依赖关系的子任务可以并行跑,不需要等待
怎么触发 Sub-agents
Sub-agents 不需要特殊命令,Claude Code 会在判断合适的情况下自动使用。但你可以在提示词里明确引导它。
方式一:直接要求并行
这个项目有 12 个模块需要补单测。每个模块独立,没有依赖关系。
请并行处理,不要串行一个个做。
方式二:描述任务结构,让它自己规划
我需要同时做三件事:
1. 给 auth 模块写单测
2. 给 api 模块补文档
3. 检查 config 模块的边界条件处理
这三个任务互相独立,你来决定怎么高效处理。
方式三:结合 Plan Mode 使用
先用 /plan 让 Claude 规划任务,确认哪些子任务可以并行,再执行。
什么任务适合用 Sub-agents
判断标准很简单:子任务之间是否有依赖关系?
适合的场景:
- 多模块批量处理(补测试、补文档、lint 修复)
- 并行研究调查(同时查多个 API 文档、比较多个实现方案)
- 独立功能开发(几个互不依赖的 feature 同时推进)
- 大文件批量操作(多个文件的同类型修改)
不适合的场景:
- 任务 B 依赖任务 A 的输出(必须串行)
- 需要共享状态的操作(容易产生冲突)
- 简单的单文件修改(拆解的开销大于收益)
一个容易踩的坑
多个子 agent 同时修改同一个文件,会产生冲突。在任务描述里明确说明各个子 agent 的文件边界,不要让它们有交叉。配合 Git Worktree,可以给每个子 agent 分配独立的工作目录,彻底消除冲突风险。
下次遇到一堆互相独立的子任务,试试在提示词里加一句:「这些任务互相独立,请并行处理。」
然后看 Claude 怎么拆、怎么跑。
你用 Claude Code 处理过哪些复杂的多任务场景?欢迎评论区说说。
这是「Claude Code 那些没人告诉你的用法」第七篇。关注不迷路。
更多深度内容与完整文章,欢迎关注我的微信公众号:SamLai 效率研习社
主要分享:
AI 编程与开发效率
技术趋势与工程思考
实用工具与工作流