问题:多个 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 有序合并 |
工作流程
安全网
Worktree 还充当了一个安全网:- 子 Agent 的实验性修改不会影响主分支
- 如果方案不可行,整个 worktree 可以直接丢弃
- 多个方案可以在不同 worktree 中并行尝试,最后选最好的