第 02 模块 · 3 节

三 Agent 并行:同一任务的三份解法

《Orca 基础入门》02 第一次多 Agent 会话 · 本节时长 28 分钟

本课就是官方文档最看重的一页「Your first 3-agent session」:从空应用开始,五分钟内让三个 Agent 并行跑同一任务,交付一个 PR。做完这一课,你就走完了 Orca 的全部核心循环。

目标场景

仓库里有个登录竞态 bug(或任意你想修的功能)。我们让三个 Agent 用三种思路各修一份,再挑最好的合并。

第 1 步:创建工作树(×3)

  1. 点仓库旁 +,任务名 fix-login-race,Agent 选 Claude Code
  2. 再建 fix-login-race-2,Agent 选 Codex
  3. 再建 fix-login-race-3,Agent 选 Cursor CLI(或你有的其他 Agent)

现在你有三个工作树、三个分支、三个独立文件系统。

第 2 步:粘贴同一个 prompt

完全相同的任务描述粘贴进三个 Agent 的终端,例如:

仓库存在登录竞态:快速双击登录按钮会触发两次请求。请定位根因并修复,补充必要测试。

让它们各自工作。三个 Agent 互不知晓彼此,也不会碰到对方的文件。

第 3 步:分屏观察

把工作树标签拖到面板右缘 / 底缘分屏,三个 Agent 的进度同屏可见。想更聚焦就用上一课的状态指示——转圈 = 干活中,不用点开每个标签。

第 4 步:挑选赢家并交付

Agent 完成后,逐个打开对应工作树的 diff 视图

  • 评审三份 diff,挑最接近你要的方案
  • 用 Annotate AI Diff 留下批注,把注释发回给最接近的那个 Agent 修订(进阶课展开)
  • 在 Source Control 面板 commit + push,直接开 PR(进阶课展开)
  • 另外两个工作树一键删除,分支随之消失

并行安全的原理

三个 Agent 为什么不会互相踩踏?因为隔离是磁盘级的

主 checkout(base ref origin/main)
 ├── worktree fix-login-race/     ← Claude Code 在改
 ├── worktree fix-login-race-2/   ← Codex 在改
 └── worktree fix-login-race-3/   ← Cursor CLI 在改

各自独立分支、独立工作区、独立依赖副本。共享的只有 git 对象库——而 git 本身就是为并发设计的。


什么时候用并行,什么时候别用

场景 是否并行 原因
同一个 bug 找多种解法 赛跑后挑赢家
互不相关的多个任务 天然隔离,互不阻塞
改动同一处核心文件的多个任务 ⚠️ 合并时冲突多,先评估
高度顺序依赖(A 的结果是 B 的输入) 用单个 Agent 顺序做,或用高级课编排

落地练习:完整跑一遍

  1. 在任意仓库创建一个真实的小任务(修一个已知 bug 或加一个小功能)
  2. 建 2~3 个工作树,用你手上可用的 Agent 并行跑
  3. 分屏观察,记录每个 Agent 的耗时与方案差异
  4. 挑一个方案评审,其余工作树删除

怎么判断做对了?——你能在 5 分钟内描述出「三个分支、三份 diff、同一条 prompt」,并说出哪个方案你选了、为什么。

卡住了怎么办? 只有一个 Agent?也没关系,并行数量可减到 2 甚至 1——重点是理解「每个任务一个工作树」的组织方式。Agent 没反应?先检查它是否处于「等待输入」状态(黄色问号)。


小结

  1. 三 Agent 并行 = 三个工作树 + 同一条 prompt + 三份独立 diff
  2. 磁盘级隔离让并行安全,git 对象库天然支持并发
  3. 交付路径:评审 → 批注修订 → commit/push → 开 PR → 清理
  4. 顺序依赖的任务别硬并行,交给单个 Agent 或编排

下一节,深入工作树模型本身。