Skip to content

3.2 多 Agent 并行编排

预计耗时:15 分钟

本关任务简报

你可能已经注意到:让 Claude 干一个大活时,它有时会自己"派分身"去跑——界面上冒出一个独立的小任务,跑完把结果带回来。这就是子 Agent(Subagent)

子 Agent 的本质不是"为了并行而并行",而是上下文隔离:把那些会产生大量中间输出的活(翻一堆文件搜代码、跑测试、查文档)丢给一个有独立上下文窗口的分身去做,它只把结论带回主对话,那些噪音不会污染你的主上下文。并行(多个分身同时跑)只是顺带的好处。

这一关讲清楚:子 Agent 到底是什么、Claude 什么时候会用它、你怎么主动调它、怎么看它在干嘛、以及它和 Worktree、Agent 团队的分工。


通关奖励:解锁以下技能

  • 🧬 理解子 Agent 的核心价值是上下文隔离,并行是附带收益
  • 🎯 能主动让 Claude 派子 Agent 去处理可独立完成的活
  • 👁️ 会查看和切换正在跑的子 Agent(输入框下方 / 切对话界面、/agents
  • ⏱️ 分得清前台 / 后台子 Agent,知道 Ctrl+B 转后台、Ctrl+X Ctrl+K 全停
  • 🧩 知道内置的 Explore / Plan / general-purpose,也知道能自定义子 Agent

开始前先检查装备

前置知识说明
2.1 界面概览 →了解如何发消息、如何中断执行
2.5 文件引用与上下文 →@src/ 等引用语法——派子 Agent 时常要精确指定范围

机制解析

子 Agent 是什么:有独立上下文的"分身工人"

每个子 Agent 运行在自己独立的上下文窗口里,有自己的系统提示词、工具权限和独立的权限设置。Claude 把一个子任务委派给它,它独立干完,只把结果摘要返回主对话。

它帮你解决四件事:

  • 省上下文:探索、跑测试这类会刷屏的活留在子 Agent 的上下文里,不挤占主对话
  • 加约束:可以限制某个子 Agent 只能用哪些工具(比如只读不写)
  • 专精:给它聚焦的系统提示词,让它在某个领域更专业
  • 控成本:把简单活路由给更快更便宜的模型(如 Haiku)

三个内置子 Agent

Claude Code 自带几个子 Agent,会在合适时机自动调用,不用你配:

子 Agent模型工具干什么
ExploreHaiku(快)只读搜文件、读代码、摸清代码库结构,不改动
Plan跟随主对话只读plan mode 下先调研代码库,再出计划
general-purpose跟随主对话全部既要探索又要动手的复杂多步任务

所以你在 plan mode 看到它"先去翻代码再给方案",或者它派个 Explore 去定位文件——都是内置子 Agent 在起作用。


Claude 怎么决定派子 Agent

Claude 会根据子 Agent 的 description(描述)判断该不该委派。你不需要特殊命令,但可以主动要求,最直接:

text
用一个子 Agent 去调查我们的认证系统是怎么处理 token 刷新的

它会派一个子 Agent 在独立上下文里读相关文件,只把结论带回来——你的主对话不会被一堆文件内容塞满。

如果一个任务能拆成几块互相独立的活,你也可以明确要求并行:

text
帮我对这个代码库做全面审查,分别用子 Agent 并行处理:
1. TypeScript 类型安全问题
2. 安全漏洞(SQL 注入、XSS、不安全依赖)
3. 性能瓶颈(N+1 查询、不必要的重渲染)
4. 测试覆盖率缺口
最后汇总成一份报告

它不是"魔法并行器"

别误以为"把任务写清楚 Claude 就会自动开 N 个分身狂奔"。是否拆、拆几个、前台还是后台,都是 Claude 按任务结构判断的。你能做的是把可独立的子任务列清楚、明确说要并行,提高它拆分的概率。


查看和切换正在跑的子 Agent

子 Agent 跑起来后,你不是只能干等:

  • 输入框下方会出现一个切换栏,列出正在跑 / 刚跑完的子 Agent。用键盘 / 选中某一个,就能切进它的对话界面,实时看它在读什么、干到哪一步。
  • 运行 /agents 打开管理界面,Running 标签同样能看到所有活着的和刚结束的子 Agent,可以打开或停止它们。

前台 vs 后台

子 Agent 有两种跑法:

前台(默认)后台
主对话阻塞,等它跑完不阻塞,你能继续干别的
权限提示会弹给你确认自动拒绝需要确认的操作(用已授权的权限跑)
适合要你盯着、可能要授权的活明确、不需中途授权的长任务

由 Claude 按任务判断走哪种,你也可以干预:

  • 让它"把这个放到后台跑"
  • Ctrl+B 把正在跑的任务转到后台(tmux 用户按两次)
  • Ctrl+X Ctrl+K 停掉本会话所有后台子 Agent(3 秒内按两次确认)

后台子 Agent 若因缺权限失败,重新用前台子 Agent 跑同一个任务,让它把需要授权的地方弹出来确认即可。


自定义子 Agent(进阶)

除了内置的,你可以定义自己的子 Agent——比如一个"只读的安全审查员"。它们是带 YAML frontmatter 的 Markdown 文件:

位置作用范围
.claude/agents/<name>.md当前项目(可纳入版本控制、团队共享)
~/.claude/agents/<name>.md所有项目

最省事的创建方式是运行 /agents → Library 标签 → Create new agent,让 Claude 帮你生成 name / description / 系统提示词,再挑工具、选模型、定颜色。frontmatter 里能配 tools(限制工具)、model(指定模型)、isolation: worktree(给它独立工作树,见 3.3)等。


和 Worktree、Agent 团队的分工

并行干活有几套机制,别搞混:

  • 子 Agent(本关):一个会话内,派分身去做隔离的子任务,主要图上下文干净
  • Git Worktree3.3):多个分支物理隔离同时开发,图文件不打架。子 Agent 也能加 isolation: worktree 各自隔离
  • Agent 团队 / 后台会话:要跑很多个互相独立的会话并集中监控,是另一套机制(agent teams / background agents),属于更重的编排,本站暂不展开

开始闯关

目标:主动派一个子 Agent 去做隔离的活,并切进去看它干。

第 1 步:派一个探索型子任务

在你的项目里说:

text
用一个子 Agent 去摸清这个项目的目录结构和各模块职责,给我一份简报

第 2 步:切进子 Agent 的界面看

它跑起来后,看输入框下方的切换栏,用 / 选中这个子 Agent,切进去看它在读哪些文件。

第 3 步:试一个并行任务

text
分别用子 Agent 并行检查:① 有没有循环依赖 ② 公共工具函数的复用情况
最后合并成一份报告

观察:是否起了多个子 Agent、完成顺序是否和列举顺序不同、汇总质量如何。

第 4 步:试试后台

让它跑一个稍长的活,按 Ctrl+B 转后台,继续干别的,回头再看结果。


通关检定

  • [ ] 知道子 Agent 的核心价值是上下文隔离,并行是附带
  • [ ] 能主动让 Claude 派子 Agent 处理可独立完成的活
  • [ ] 会用输入框下方 / 切进某个子 Agent 的对话界面,或用 /agents 查看
  • [ ] 分得清前台 / 后台,知道 Ctrl+B 转后台、Ctrl+X Ctrl+K 全停
  • [ ] 知道有内置的 Explore / Plan / general-purpose,也知道能在 .claude/agents/ 自定义

全部点亮就算通关 ✓


卡关了?翻车指南在这

说了"并行",Claude 还是一个个顺序做

把子任务逐条列清楚、明确说"分别用子 Agent 并行处理"。但也接受现实:是否拆是 Claude 按任务结构判断的,强行要求不一定拆——任务本身得真的可独立。

切换栏里看不到子 Agent / 找不到在哪切

只有真的派了子 Agent 时切换栏才有内容。没派出来时是空的。也可以直接 /agents 看 Running 标签确认有没有活着的子 Agent。

后台子 Agent 没干成,说缺权限

后台子 Agent 会自动拒绝需要确认的操作。把同一个任务用前台子 Agent 重跑一遍,需要授权的地方它会弹出来让你确认。

子 Agent 结果质量参差不齐

某个子任务输出差,通常是对它的要求不够清晰。把不满意的那个单独再发一次、补充约束和期望格式,再合并回去。

担心子 Agent 太费 token

每个子 Agent 有独立上下文,总 token 确实高于单轮。权衡:只在任务量大、并行能明显省时,或中间输出会严重污染主上下文时才用;小活直接在主对话做更省。


下一关

3.3 Git Worktree 并行实例 →

子 Agent 解决"同一会话里的隔离与并行",下一关解决"不同分支上的并行开发"——用 Git Worktree 让多个 Claude 实例在不同分支上同时推进、文件互不打架。

面向公开用户维护,内容基于 Claude Code 官方文档与真实使用经验整理