Skip to main content

问题:多个 Agent 改同一份代码

当多个 Agent 同时修改项目文件时,冲突在所难免:
  • Agent A 修改了 config.ts,Agent B 也在改同一个文件
  • Agent A 的测试需要某个状态,Agent B 的修改破坏了它
  • 半完成的修改混在一起,无法分辨哪些是哪个 Agent 做的

解决方案:Git Worktree

Git 原生支持 worktree(工作树)——在同一个仓库中创建多个独立的工作目录,每个目录在自己的分支上独立工作。 Claude Code 利用这个特性为子 Agent 提供隔离的工作空间:
共享工作目录Worktree 隔离
文件冲突多个 Agent 可能互相覆盖每个 Agent 在自己的目录中工作
分支都在同一个分支上每个 Agent 有自己的分支
测试互相干扰完全独立
合并需要手动处理冲突通过 git merge 有序合并

工作流程

1

创建 Worktree

AI 启动带隔离模式的子 Agent,系统自动在 .claude/worktrees/ 下创建新的工作目录
2

独立工作

子 Agent 在自己的 worktree 中自由修改文件、执行命令
3

完成任务

子 Agent 完成后,变更留在 worktree 的分支上
4

合并或丢弃

主 Agent(或用户)决定:合并这些变更到主分支,还是丢弃
5

清理

不再需要的 worktree 会被自动清理

安全网

Worktree 还充当了一个安全网:
  • 子 Agent 的实验性修改不会影响主分支
  • 如果方案不可行,整个 worktree 可以直接丢弃
  • 多个方案可以在不同 worktree 中并行尝试,最后选最好的