并行会话与 Worktree:避免多个 Agent 互相覆盖
Subagents、Agent Teams、后台会话和 Git Worktree 解决的问题不同。本篇用任务拆分、文件隔离、成本控制和合并验收讲清 Claude Code 并行工作的正确方式。
教程基准:Claude Code v2.1.224(当前最新版,核验于 2026-08-07) · 最后核验:2026-08-07 · 适用版本:建议使用最新版 · 官方文档
学习安全回退先分清四种并行方式
| 方式 | 谁协调 | 是否共享当前对话 | 适合什么 |
|---|---|---|---|
| Subagent | 当前主会话 | 通常独立上下文,完成后汇报 | 调研、审查、专项分析 |
/subtask | 当前主会话 | 继承完整对话后在后台工作 | 从当前讨论分出一个明确支线 |
| 后台会话 / Agent View | 用户 | 会话彼此独立 | 同时推进多个需要人工掌控的任务 |
| Agent Teams | Lead Agent | 队友共享任务表并互相通信 | 多角色协作和复杂并行计划 |
并行能力解决“谁来做、怎么协调”;Worktree 解决“在哪里改、如何隔离文件”。这两类问题不能混为一谈。
为什么同目录并行修改很危险
两个会话在同一个工作目录写文件时,会立刻看到对方的变化。可能出现:
- 会话 A 依据旧内容生成补丁,会话 B 已经改了同一段。
- 一个会话运行格式化,另一个会话的 diff 被放大。
- 测试通过时混入了另一项任务的未完成代码。
- 最终没人能说明哪一处修改属于哪个任务。
只读分析可以共享目录;两个写任务只要可能碰到同一文件,就应该串行处理或使用独立 Worktree。
用 Worktree 隔离写任务
在 Git 仓库中可以启动独立工作树:
claude --worktree feature-auth
Claude Code 会为该会话创建独立目录和分支。另一个任务使用不同名字:
claude --worktree fix-payment-test
把 .claude/worktrees/ 加入 .gitignore,避免工作树内容显示成主目录的未跟踪文件。第一次使用前先在仓库里正常启动一次 Claude Code,完成目录信任确认。
Worktree 不是自动合并器。每个任务仍要独立提交、运行测试、审查 diff,再由负责人选择 cherry-pick、merge 或放弃。
怎么决定是否值得并行
满足这些条件再并行:
- 子任务之间依赖很少。
- 每项任务有明确输入和验收标准。
- 文件所有权可以分开,或已经使用 Worktree。
- 主任务有人负责汇总结论。
- 并行节省的时间大于拆分、沟通和合并成本。
不适合并行的例子:需求还没确定、数据库 schema 与调用代码需要同步设计、多个任务都会改路由入口、只有一个很小的错别字。
推荐的任务分区
主目标:完成登录模块重构。 并行任务 A(只读):梳理现有认证流程和风险。 并行任务 B(独立 Worktree):补当前行为的回归测试,只改 tests/auth/**。 并行任务 C(只读):审查迁移兼容性和安全边界。 主会话:根据 A/C 结论确定方案,再决定是否实施重构。
分析类任务优先交给 Subagents;真正写代码的任务优先按目录或 Worktree 隔离。不要按“正好有三个 Agent”硬拆成三份。
/fork、/subtask 和普通 Subagent
当你希望复制当前完整讨论并形成独立后台会话时使用 /fork;希望支线结果回来汇入当前会话时使用 /subtask。普通 Subagent 更适合不需要整段历史的专项任务,可以减少上下文污染。
这些命令在不同版本中有过行为变化。使用前先在 /help 或官方命令表确认当前版本行为,不要把旧教程里的 /fork 语义直接套到新版本。
合并前必须统一验收
每个并行任务的“测试通过”只代表自己的工作树。合并后必须在目标分支重新执行:
- 查看合并后的完整 diff。
- 确认没有重复实现和冲突残留。
- 运行 lint、单元测试和构建。
- 检查跨模块集成测试。
- 让独立审查者检查权限、安全和遗漏。
- 删除或保留 Worktree 前确认分支和提交已经安全保存。
成本控制
每个 Agent 都会消耗独立上下文和 Token。并行数量越多,重复读取项目、汇总报告和处理分歧的成本越高。先用两个互不依赖的任务练习,不要第一次就拉起五个会话。
可以给每个并行任务设置停止条件:证据不足就返回问题、发现会修改未授权文件就停止、超过指定时间仍未定位就汇报当前假设。停止条件能防止并行任务无限扩散。
可复制的并行计划审查
请先只读评估这个任务是否适合并行,不要启动 Agent,不要修改文件。 请列出: 1. 可以独立处理的子任务。 2. 每个子任务会读取和修改哪些目录。 3. 哪些任务只需要 Subagent,哪些写任务需要 Worktree。 4. 任务之间的依赖和冲突点。 5. 每项任务的验收标准和停止条件。 6. 合并后的统一验证步骤。
验收结果
- 你知道并行协调和文件隔离是两个问题。
- 你知道同目录并行写入为什么危险。
- 你会用 Worktree 隔离独立写任务。
- 你知道
/fork、/subtask、Subagent 和 Agent Teams 的适用场景。 - 你会在合并后重新执行统一验收。