本教程面向中高级开发者,系统讲解Claude Code的多Agent并行开发能力——从内置Task工具的Subagent调度、自定义Agent的目录配置,到Git Worktree的隔离并行。学完即可在单个仓库中同时运行3-10个Agent,将串行数小时的任务压缩到分钟级完成。适合已有Claude Code基础使用经验的开发者和团队负责人。
npm install -g @anthropic-ai/claude-code)传统开发中,你与Claude Code一问一答,所有任务串行执行。当项目变大,瓶颈出现:
| 场景 | 串行耗时 | 并行潜在耗时 |
|---|---|---|
| 全仓库代码审查 | 30分钟 | 5分钟(5文件同时审) |
| 10个文件的Bug修复 | 40分钟 | 8分钟(5Agent并行) |
| 同时写测试+文档+代码 | 45分钟 | 15分钟(3Agent各司其职) |
| 前后端同时开发 | 60分钟+ | 20分钟(2Agent隔离) |
graph TD
A[主Agent<br/>Orchestrator] --> B{任务分析}
B --> C[模式一:Subagent<br/>同一Worktree内]
B --> D[模式二:Worktree<br/>物理隔离目录]
C --> E[轻量级任务<br/>搜索/分析/小修改]
C --> F[只读任务<br/>代码审查/调研]
D --> G[写操作任务<br/>功能开发/Bug修复]
D --> H[长期任务<br/>重构/批量迁移]
Subagent模式:在同一工作目录内派生子Agent,共享文件系统,适合只读或轻量修改。
Worktree模式:每个Agent在独立的Git Worktree中工作,物理隔离,适合并行写操作。
Task工具是Claude Code内置的Subagent调度器。你在对话中请求任务时,Claude Code会自动判断是否需要派生Subagent。
手动触发并行Subagent的Prompt模式:
请同时执行以下三个任务:
1. 搜索所有使用了deprecated API的文件,列出文件路径和行号
2. 分析src/utils目录的测试覆盖率,找出未覆盖的函数
3. 检查package.json中是否有安全漏洞的依赖
Claude Code收到这类请求后,会自动使用Task工具并行派生3个Subagent。
Claude Code提供4种内置Subagent类型:
| 类型 | 用途 | 工具权限 |
|---|---|---|
general-purpose |
通用搜索、研究、多步任务 | 全部工具 |
Explore |
快速代码库探索、文件搜索 | 只读工具(无Edit/Write) |
Plan |
架构设计、实现方案规划 | 只读工具 |
haiku |
简单快速任务,低成本低延迟 | 全部工具 |
选择原则:
- 只需要搜索和阅读?用Explore
- 需要设计方案?用Plan
- 需要修改文件?用general-purpose
- 简单查询追求速度?用haiku
要让Claude Code最大化并行,关键在于Prompt结构:
❌ 低效写法(串行):
帮我搜索X,然后搜索Y,最后搜索Z
✅ 高效写法(并行):
请并行执行以下独立任务,每个任务使用单独的Explore Subagent:
任务A:在src/api/目录中搜索所有使用了fetch的文件,统计每个文件的调用次数
任务B:在tests/目录中搜索所有测试文件,列出哪些源文件缺少对应测试
任务C:搜索所有TODO和FIXME注释,按优先级分类汇总
在项目中创建.claude/agents/目录,定义专属Subagent:
创建文件 .claude/agents/reviewer.md:
---
name: code-reviewer
description: 专注于代码审查的Subagent,检查代码质量、安全漏洞和最佳实践
model: sonnet
tools:
- Read
- Grep
- Glob
- Bash
---
你是一个严格的代码审查专家。你的职责:
1. 检查代码是否符合项目规范
2. 发现潜在的安全漏洞(XSS、注入、敏感数据泄露)
3. 评估错误处理的完整性
4. 检查命名规范和代码风格一致性
审查输出格式:
- 🔴 严重问题(必须修复)
- 🟡 建议改进(推荐修复)
- 🟢 良好实践(值得保留)
不要修改任何文件,只输出审查报告。
创建文件 .claude/agents/tester.md:
---
name: test-writer
description: 自动编写单元测试的Subagent
model: sonnet
tools:
- Read
- Write
- Edit
- Bash
- Grep
- Glob
---
你是一个测试工程师。根据给定的源代码文件:
1. 分析所有导出函数和类的方法
2. 为每个函数设计测试用例(正常路径、边界条件、错误处理)
3. 使用项目已有的测试框架(检查package.json确认)
4. 编写测试文件到对应的tests/目录
5. 运行测试确认全部通过
目录结构:
.claude/
├── agents/
│ ├── reviewer.md # 代码审查Agent
│ ├── tester.md # 测试编写Agent
│ └── docs-writer.md # 文档生成Agent
├── CLAUDE.md # 项目指令
└── settings.json # Agent配置
Subagent有两种运行模式:
前台模式(默认):主Agent等待Subagent完成后继续。
请使用code-reviewer Agent审查src/auth/login.ts文件,审查完告诉我结果
后台模式:Subagent在后台运行,主Agent继续处理其他任务。
请启动以下后台任务:
1. 使用后台模式让code-reviewer审查整个src/目录
2. 同时使用tester为src/utils/calculator.ts编写测试
3. 两个任务完成后汇报结果
Claude Code支持run_in_background: true参数,让Subagent异步执行。
当Subagent需要写操作时,可以指定isolation: "worktree"参数,让它在独立Worktree中运行:
sequenceDiagram
participant M as 主Agent
participant W1 as Worktree Agent A
participant W2 as Worktree Agent B
M->>W1: 创建worktree, 派生任务A
M->>W2: 创建worktree, 派生任务B
W1->>W1: 在隔离目录工作
W2->>W2: 在隔离目录工作
W1->>M: 完成任务, 返回结果
W2->>M: 完成任务, 返回结果
M->>M: 合并结果/分支
在Prompt中触发Worktree隔离:
请并行执行以下两个开发任务,每个任务使用独立的Worktree隔离:
任务A:在feature/auth-redesign分支中重写认证模块
任务B:在feature/api-v2分支中升级API路由
两个任务完成后,分别创建PR。
并行Subagent完成后,主Agent负责收集和合并结果。对于Worktree隔离的任务:
所有并行任务完成后:
1. 汇总每个Agent的修改内容
2. 检查是否有文件冲突
3. 如果无冲突,合并到主分支
4. 如果有冲突,列出冲突文件让我手动处理
Git Worktree允许你从同一个仓库检出多个工作目录,每个目录对应不同的分支:
graph LR
A[主仓库<br/>main分支] --> B[Worktree 1<br/>feature/auth]
A --> C[Worktree 2<br/>feature/api]
A --> D[Worktree 3<br/>bugfix/login]
B --> E[独立目录<br/>独立Agent]
C --> F[独立目录<br/>独立Agent]
D --> G[独立目录<br/>独立Agent]
关键特性:
- 共享.git目录,节省磁盘空间
- 每个Worktree是完整的工作目录
- 分支之间完全隔离,无冲突风险
--worktree模式Claude Code内置了--worktree标志,一键创建隔离环境:
# 方法一:CLI直接启动Worktree模式
claude --worktree
# 方法二:指定Worktree名称
claude --worktree --worktree-name feature-auth
# 方法三:在对话中切换到Worktree
# 直接告诉Claude Code:
# "请使用worktree模式开始feature/dashboard的开发"
在.claude/settings.json中配置Worktree默认行为:
{
"worktree": {
"autoCleanup": true,
"defaultBranch": "worktree/",
"includePatterns": [
"src/**",
"tests/**",
"package.json"
]
}
}
.worktreeinclude文件控制同步内容不是所有文件都需要在Worktree间同步。使用.worktreeinclude精确控制:
# .worktreeinclude - 指定Worktree间同步的文件
CLAUDE.md
.claude/agents/**
.claude/settings.json
.claude/skills/**
不包含在Worktree中的文件(每个Worktree独立):
- node_modules/ — 各自安装
- .env — 各自配置
- 构建输出目录
场景:同时开发3个功能模块
在一个中型Web项目中,你需要同时完成: 1. 用户认证模块重构 2. API接口版本升级 3. 前端Dashboard组件开发
操作步骤:
终端1 — 认证模块:
# 创建Worktree并启动Claude Code
git worktree add .claude/worktrees/auth feature/auth
cd .claude/worktrees/auth
claude
在对话中:
你是认证模块开发Agent。请在这个Worktree中完成以下任务:
1. 将现有的session认证改为JWT
2. 添加refresh token机制
3. 编写对应的单元测试
4. 完成后创建commit,分支名为feature/auth-jwt
终端2 — API升级:
git worktree add .claude/worktrees/api-v2 feature/api-v2
cd .claude/worktrees/api-v2
claude
终端3 — Dashboard:
git worktree add .claude/worktrees/dashboard feature/dashboard
cd .claude/worktrees/dashboard
claude
三个Agent在三个物理隔离的目录中同时工作,互不干扰。
所有Agent完成后,合并结果:
# 查看各Worktree的状态
git worktree list
# 合并各分支
git checkout main
git merge feature/auth-jwt
git merge feature/api-v2
git merge feature/dashboard
# 清理Worktree
git worktree remove .claude/worktrees/auth
git worktree remove .claude/worktrees/api-v2
git worktree remove .claude/worktrees/dashboard
或让Claude Code自动清理(配置了autoCleanup: true时)。
请执行以下两阶段任务:
第一阶段(并行调研):
- Subagent A(Explore):分析现有代码架构,列出所有需要修改的文件
- Subagent B(Explore):调研最佳实践,给出参考实现方案
第二阶段(Worktree隔离实现):
- 根据调研结果,使用Worktree模式派生实现Agent
- 实现Agent完成编码后运行测试
- 汇报结果
graph TD
O[主Agent<br/>接收需求] --> A[Worktree Agent<br/>功能开发]
O --> B[Worktree Agent<br/>测试编写]
A --> C{代码完成?}
B --> D{测试完成?}
C --> E[Subagent<br/>代码审查]
D --> E
E --> F{审查通过?}
F -->|是| G[合并到主分支]
F -->|否| A
Prompt模板:
请使用三Agent并行模式处理以下需求:实现用户导出CSV功能
1. 开发Agent(Worktree隔离):在feature/export-csv分支实现CSV导出API
2. 测试Agent(Worktree隔离):在test/export-csv分支编写集成测试
3. 两个Agent完成后,派生审查Agent检查代码质量
要求:
- 开发和测试同时进行
- 审查在两者都完成后启动
- 如果审查不通过,修复后重新审查
请将项目中所有Class组件迁移为Function组件。
使用并行Agent模式:
1. 首先用Explore Agent扫描所有Class组件文件
2. 将文件列表分为5组
3. 每组派生一个Worktree Agent并行迁移
4. 所有Agent完成后,汇总结果并运行全量测试
约束:
- 每个Agent处理不超过10个文件
- 迁移后保持功能不变
- 保留原有的PropTypes类型定义
每个Subagent的任务应控制在5-15分钟的执行时间。太大则容易超时或偏离,太小则调度开销超过收益。
判断标准:
| 任务大小 | Agent耗时 | 建议 |
|---|---|---|
| 查找一个文件中的Bug | 1-2分钟 | 不需要Subagent,主Agent直接做 |
| 审查一个模块的代码 | 5-10分钟 | ✅ 适合Subagent |
| 重构10个文件 | 10-15分钟 | ✅ 适合Worktree Agent |
| 重写整个认证系统 | 30分钟+ | 拆分为3-5个Subagent |
Claude Code对并行Subagent没有硬性上限,但实际使用中建议:
❌ 危险操作: 两个Subagent同时修改同一个文件。
✅ 安全策略: - 只读任务:自由并行,无限制 - 写入任务:确保每个Subagent修改不同的文件 - Worktree模式:天然隔离,无此限制
每个Subagent启动时会继承主Agent的完整上下文。对于大项目,这会消耗大量Token。
优化方法:
请用Explore Subagent执行以下任务,只提供必要的上下文:
在src/api/routes/目录中搜索所有使用了req.params.id的地方,
检查是否有SQL注入风险。不需要读取其他目录的文件。
让每个Subagent返回结构化的结果,便于主Agent合并:
每个Subagent请按以下格式返回结果:
## 任务:[任务名称]
### 状态:[完成/失败/部分完成]
### 修改文件:[文件列表]
### 发现:[关键发现列表]
### 建议:[后续操作建议]
假设你有一个Express.js项目,需要: 1. 将所有回调风格改为async/await 2. 添加错误处理中间件 3. 为每个路由编写集成测试 4. 更新API文档
这4个任务完全独立,可以并行。
# 项目目录
mkdir parallel-refactor && cd parallel-refactor
git init
# 创建Claude Code配置
mkdir -p .claude/agents
.claude/agents/async-converter.md:
---
name: async-converter
description: 将回调风格代码转换为async/await
model: sonnet
---
你是异步代码转换专家。将目标文件中的所有回调风格代码转换为async/await风格。
转换规则:
1. 将callback(err, result)模式改为throw/return
2. 将Promise回调链改为await表达式
3. 保持函数签名不变(外部接口兼容)
4. 添加适当的try/catch错误处理
5. 转换完成后运行项目测试确认无破坏性变更
.claude/agents/error-handler.md:
---
name: error-handler
description: 添加Express错误处理中间件
model: sonnet
---
你是错误处理专家。为Express.js项目添加统一的错误处理中间件。
要求:
1. 创建src/middleware/errorHandler.js
2. 处理4种错误类型:ValidationError、AuthError、NotFoundError、通用Error
3. 每种错误返回正确的HTTP状态码
4. 在生产环境隐藏错误堆栈
5. 添加请求日志记录
在Claude Code对话中:
请启动4个并行Worktree Agent处理以下任务:
Agent 1(async-converter):将src/routes/目录下所有文件转换为async/await
Agent 2(error-handler):在src/middleware/中添加错误处理中间件
Agent 3(tester):为src/routes/中每个路由编写集成测试
Agent 4(docs-writer):根据最终的路由代码更新API文档
约束:
- Agent 1 和 Agent 2 先执行(无依赖)
- Agent 3 在 Agent 1 完成后启动(测试需要基于新代码)
- Agent 4 在所有Agent完成后启动(文档需要反映最终状态)
每个Agent使用独立的Worktree隔离。
graph TD
START[启动并行任务] --> A1[Agent 1: async转换]
START --> A2[Agent 2: 错误处理]
A1 --> A1D{转换完成?}
A2 --> A2D{中间件完成?}
A1D -->|是| A3[Agent 3: 测试编写]
A2D -->|是| WAIT{等待A3}
A3 --> A3D{测试通过?}
A3D -->|是| A4[Agent 4: 文档更新]
A3D -->|否| FIX[修复测试]
FIX --> A3
A4 --> MERGE[合并所有分支]
MERGE --> FINAL[运行全量测试]
FINAL --> DONE[完成]
# 合并所有分支后运行完整验证
npm test # 运行所有测试
npm run lint # 代码风格检查
npm run build # 确认构建通过
# 检查Git日志确认所有修改
git log --oneline --graph --all
| 问题 | 原因 | 解决方案 |
|---|---|---|
| Subagent超时 | 任务太大或太复杂 | 拆分为更小的子任务 |
| Worktree冲突 | 两个Agent修改同一文件 | 重新分配任务边界 |
| Subagent偏离任务 | Prompt不够明确 | 添加具体的约束和输出格式 |
| Token消耗过大 | 上下文过长 | 使用Explore类型,限制工具范围 |
| Agent间依赖错误 | 并行任务间有隐式依赖 | 使用阶段式执行模式 |
当Subagent结果不理想时,逐步排查:
请帮我分析上一次Subagent调度的效果:
1. 列出所有派生的Subagent及其任务
2. 检查是否有Subagent的任务范围重叠
3. 评估是否有任务应该串行而非并行
4. 建议更优的任务分配方案
# 强制清理残留的Worktree
git worktree prune
# 查看所有Worktree状态
git worktree list
# 手动清理特定Worktree
git worktree remove --force .claude/worktrees/feature-x
在CLAUDE.md中定义团队级并行规范:
## 并行开发规范
### Subagent使用规则
- 只读任务(搜索、分析、审查):使用Explore Subagent
- 写入任务(编码、修改):必须使用Worktree隔离
- 单个Subagent任务不超过15分钟
- 并行Subagent不超过8个
### Worktree命名规范
- 格式:{类型}/{简短描述}
- 示例:feature/user-export, bugfix/login-timeout, refactor/api-v2
### 合并策略
- 每个Worktree完成后先自测
- 使用Squash Merge保持主分支整洁
- 合并前必须通过CI
在GitHub Actions中支持并行Agent的产出:
# .github/workflows/parallel-agent.yml
name: Parallel Agent CI
on:
pull_request:
branches: [main]
jobs:
detect-worktree:
runs-on: ubuntu-latest
outputs:
branches: ${{ steps.detect.outputs.branches }}
steps:
- uses: actions/checkout@v4
fetch-depth: 0
- id: detect
run: |
# 检测来自并行Agent的分支
BRANCHES=$(git branch -r | grep 'worktree/' | jq -R . | jq -s .)
echo "branches=$BRANCHES" >> $GITHUB_OUTPUT
test:
needs: detect-worktree
strategy:
matrix:
branch: ${{ fromJson(needs.detect-worktree.outputs.branches) }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ matrix.branch }}
- run: npm ci && npm test
追踪并行Agent的效率提升:
# 统计各Worktree的修改量
for wt in .claude/worktrees/*/; do
echo "=== $(basename $wt) ==="
git -C "$wt" diff --stat HEAD~5
done
# 计算并行效率
# 理论耗时 = 所有Agent耗时之和
# 实际耗时 = 最长Agent的耗时
# 效率 = 理论耗时 / 实际耗时
| 维度 | 评估 |
|---|---|
| 适合训练营类型 | 进阶开发者训练营、AI辅助开发工作坊 |
| 前置知识要求 | Claude Code基础使用、Git中级操作 |
| 预计教学时长 | 4-5小时(含动手练习) |
| 实验环境需求 | 每人一个多文件Git仓库、Claude Code Pro订阅 |
| 难度等级 | ★★★★☆(中高级) |
| 最佳团队规模 | 3-5人一组,每组负责一个并行Agent |
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
