并行会话与 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 TeamsLead Agent队友共享任务表并互相通信多角色协作和复杂并行计划

并行能力解决“谁来做、怎么协调”;Worktree 解决“在哪里改、如何隔离文件”。这两类问题不能混为一谈。

为什么同目录并行修改很危险

两个会话在同一个工作目录写文件时,会立刻看到对方的变化。可能出现:

只读分析可以共享目录;两个写任务只要可能碰到同一文件,就应该串行处理或使用独立 Worktree。

用 Worktree 隔离写任务

在 Git 仓库中可以启动独立工作树:

claude --worktree feature-auth

Claude Code 会为该会话创建独立目录和分支。另一个任务使用不同名字:

claude --worktree fix-payment-test

.claude/worktrees/ 加入 .gitignore,避免工作树内容显示成主目录的未跟踪文件。第一次使用前先在仓库里正常启动一次 Claude Code,完成目录信任确认。

Worktree 不是自动合并器。每个任务仍要独立提交、运行测试、审查 diff,再由负责人选择 cherry-pick、merge 或放弃。

怎么决定是否值得并行

满足这些条件再并行:

  1. 子任务之间依赖很少。
  2. 每项任务有明确输入和验收标准。
  3. 文件所有权可以分开,或已经使用 Worktree。
  4. 主任务有人负责汇总结论。
  5. 并行节省的时间大于拆分、沟通和合并成本。

不适合并行的例子:需求还没确定、数据库 schema 与调用代码需要同步设计、多个任务都会改路由入口、只有一个很小的错别字。

推荐的任务分区

主目标:完成登录模块重构。

并行任务 A(只读):梳理现有认证流程和风险。
并行任务 B(独立 Worktree):补当前行为的回归测试,只改 tests/auth/**。
并行任务 C(只读):审查迁移兼容性和安全边界。

主会话:根据 A/C 结论确定方案,再决定是否实施重构。

分析类任务优先交给 Subagents;真正写代码的任务优先按目录或 Worktree 隔离。不要按“正好有三个 Agent”硬拆成三份。

/fork/subtask 和普通 Subagent

当你希望复制当前完整讨论并形成独立后台会话时使用 /fork;希望支线结果回来汇入当前会话时使用 /subtask。普通 Subagent 更适合不需要整段历史的专项任务,可以减少上下文污染。

这些命令在不同版本中有过行为变化。使用前先在 /help 或官方命令表确认当前版本行为,不要把旧教程里的 /fork 语义直接套到新版本。

合并前必须统一验收

每个并行任务的“测试通过”只代表自己的工作树。合并后必须在目标分支重新执行:

  1. 查看合并后的完整 diff。
  2. 确认没有重复实现和冲突残留。
  3. 运行 lint、单元测试和构建。
  4. 检查跨模块集成测试。
  5. 让独立审查者检查权限、安全和遗漏。
  6. 删除或保留 Worktree 前确认分支和提交已经安全保存。

成本控制

每个 Agent 都会消耗独立上下文和 Token。并行数量越多,重复读取项目、汇总报告和处理分歧的成本越高。先用两个互不依赖的任务练习,不要第一次就拉起五个会话。

可以给每个并行任务设置停止条件:证据不足就返回问题、发现会修改未授权文件就停止、超过指定时间仍未定位就汇报当前假设。停止条件能防止并行任务无限扩散。

可复制的并行计划审查

请先只读评估这个任务是否适合并行,不要启动 Agent,不要修改文件。

请列出:
1. 可以独立处理的子任务。
2. 每个子任务会读取和修改哪些目录。
3. 哪些任务只需要 Subagent,哪些写任务需要 Worktree。
4. 任务之间的依赖和冲突点。
5. 每项任务的验收标准和停止条件。
6. 合并后的统一验证步骤。

验收结果