想让 AI 并行工作?首先给每个 AI 分配独立的开发空间
在同一个项目上运行多个 AI agent 非常困难。
如果你让多个 agent 访问同一个文件夹,它们会覆盖你的文件,搞乱你的项目状态,最终导致项目一团糟。
你需要隔离。
并行使用 AI 有两种方式:
- 只读任务:一个 agent 读取日志,另一个 agent 读取文档。它们可以共享同一个工作空间。
- 写入任务:多个 agent 编辑代码。它们必须拥有独立的工作空间。
我曾尝试通过克隆不同的文件夹来解决这个问题,但因为磁盘空间不足而失败了。带有大量依赖的大型项目会占用数 GB 的空间,多次克隆会浪费大量存储。
我转向了使用 git worktree。
git worktree 允许你为一个仓库拥有多个工作目录。它们共享同一个 .git 历史记录。这既节省了磁盘空间,又保持了条理性。
以下是如何将其与 AI 结合使用的方案:
子 Agent 并行:告诉 AI 并行运行任务。它可以自动创建自己的 worktree。
手动并行:如果你自己打开了多个 AI 终端,AI 并不知道其他终端的存在。你必须告诉它:“另一个 AI 正在编辑此目录。请在 worktree 模式下工作。”
工作流程遵循以下步骤:
- 将任务拆分为独立的各个部分。
- 为每个部分分配一个唯一的 worktree。
- 使用一个主导 agent 将更改逐一合并回主分支。
- 每次合并后验证代码。
- 任务完成后删除 worktree。
清理工作至关重要。被遗忘的 worktree 会占用你的磁盘空间。我在 AI 指令中添加了一条规则:在删除 worktree 之前,验证所有 commit 是否都已合并到主分支。这可以防止丢失工作成果。
不要为了微小的任务使用 worktree。如果你只修改一个文件,请留在同一个工作空间。只有在处理复杂功能时才使用 worktree。
有一条规则始终不变:永远不要直接在主干(trunk)上工作。始终从新分支开始。这能保持你的主代码库整洁且安全。
git worktree 是一个老工具了。但对于并行 AI 工作流来说,它是完美的解决方案。
你是否想知道为什么 AI 并不能让我们在一天结束时不再感到疲惫?请在评论区告诉我。
Source: https://dev.to/kanfu-panda/want-ai-to-work-in-parallel-first-give-each-one-its-own-workspace-40ch
Optional learning community: https://t.me/GyaanSetuAi
