Orca 並行 Agent 工作流教程:用 Git Worktree 同時運行 Codex 和 Claude Code

Orca 把 Codex、Claude Code 等終端 Agent 放進獨立 Git worktree 並行運行。本文說明適用任務、準備步驟、並行拆分、結果合併與常見衝突處理。

多個 Agent 同時改一個倉庫,最怕的不是速度不夠,而是它們相互覆蓋文件、污染未提交改動,最後很難判斷哪一份結果可合併。Orca 的做法是爲每個 Agent 分配獨立的 Git worktree:同一個倉庫可以並行運行 Codex、Claude Code 或其他終端 Agent,完成後再比較 diff、選擇併合並結果。Orca 官方倉庫

它不是另一個模型,也不會替代 Codex 或 Claude Code;更準確地說,它是給多個 CLI Agent 加上一層工作區、任務和結果管理界面。適合需要並行探索方案、但又希望保留 Git 隔離邊界的開發者。

Orca 適合什麼任務

Orca 最適合“目標相同、實現路徑可比較”的任務,例如:

  1. 讓兩個 Agent 分別實現同一個接口,再比較測試、可讀性和改動範圍。
  2. 一邊排查 bug,另一邊補測試或閱讀相關模塊。
  3. 同時嘗試保守修復與重構方案,最後只合並其中一個。
  4. 把前端、後端、文檔拆成互不重疊的子任務並行推進。

不適合直接拆開的情況也很常見:多個 Agent 同時改同一個核心文件、需要共享未提交狀態的調試過程,或需求本身還沒有明確。這時先用一個 Agent 梳理計劃,通常比並行啓動五個窗口更省時間。

工作原理:每個 Agent 一棵獨立工作樹

Git worktree 允許一個倉庫同時檢出多個分支到不同目錄。Orca 在此基礎上爲 Agent 創建和管理這些獨立目錄:每個 Agent 都有自己的文件改動、終端會話和分支上下文,不會直接覆蓋主工作目錄。

官方 README 描述的典型流程是:把同一個提示分發給多個 Agent,每個 Agent 在隔離 worktree 中完成任務,然後比較結果併合並勝出的實現。Parallel Worktrees 說明

可以把關係理解爲:

層級 負責什麼
Codex / Claude Code 理解任務、修改代碼、執行測試
Git worktree 隔離每個方案的文件和分支改動
Orca 創建工作樹、啓動 Agent、集中查看會話與 diff
拆分任務、審查結果、決定合併哪個方案

開始前的倉庫準備

並行之前先把主目錄收拾乾淨。worktree 能隔離新分支的文件改動,卻不能替你判斷主目錄裏哪些未提交變更應該保留。

1
2
3
4
git status
git fetch --all --prune
git switch main
git pull --ff-only

如果 git status 不是乾淨狀態,先提交、暫存或明確保留當前改動。隨後爲不同方案建立清晰的分支命名,例如:

1
2
3
agent/fix-login-codex
agent/fix-login-claude
agent/add-login-tests

Orca 支持 Windows、macOS 和 Linux 桌面端;安裝包和當前版本以 官方發佈頁 爲準。它可以運行任何能在終端執行的 Agent,因此還要確認本機已經完成 Codex、Claude Code 或你計劃使用的 CLI 的登錄和基礎配置。

一個可複用的並行拆分方式

以“登錄偶發失敗”爲例,不要給三個 Agent 都發送“修復登錄 bug”。更好的拆分是把交付物寫清楚:

1
2
3
Agent A:定位請求重試與 token 刷新路徑;只提交最小修復,並補充復現步驟。
Agent B:不改業務邏輯;爲登錄失敗、過期 token、網絡超時補自動化測試。
Agent C:審查最近登錄相關改動,給出根因假設、風險文件和建議,不直接修改代碼。

這樣三條工作樹的輸出可以直接比較:A 提供候選修復,B 提供迴歸保護,C 提供獨立審查。即使最終只採用 A 的修改,B 和 C 的結果仍能幫助驗證方向。

對於同一個功能的多方案競賽,也應限制範圍:要求每個 Agent 只改指定模塊、運行相同測試命令、在最終說明中列出修改文件和未解決問題。沒有共同的驗收標準,多個 Agent 的“完成”很難橫向比較。

在 Orca 中啓動並行 worktree

具體界面會隨版本變化,但操作順序通常如下:

  1. 打開一個已初始化 Git 的倉庫,確認基線分支和主目錄沒有意外改動。
  2. 爲每個子任務創建獨立 worktree 或讓 Orca 從任務創建工作樹。
  3. 分別選擇 Codex、Claude Code 等本機可用 Agent,給出不重疊的任務說明和驗收命令。
  4. 讓 Agent 在自己的 worktree 中執行;不要在主目錄同時手動修改同一批文件。
  5. 完成後查看每棵工作樹的 diff、測試輸出和提交記錄,再決定保留、修改或丟棄。

Orca 還提供終端分屏、diff 行內評論、文件拖放給 Agent,以及通過 CLI 管理工作樹的能力;例如其文檔列出了 orca worktree createsnapshot 等工作流命令。功能入口以當前版本文檔爲準。Orca CLI 介紹

如何合併結果,避免把三個方案混在一起

最安全的順序是先審查、後合併:

1
2
3
4
5
6
7
# 在主工作樹中查看某個候選分支
git diff main...agent/fix-login-codex
git log --oneline main..agent/fix-login-codex

# 確認測試和改動範圍後再合併
git switch main
git merge --no-ff agent/fix-login-codex

如果測試工作樹和修復工作樹都值得保留,先合併測試,再合併修復,或用 git cherry-pick 挑選單獨提交。不要因爲它們都由 Agent 生成,就直接把全部 worktree 一次性 merge;重複的依賴升級、格式化改動和同文件重構最容易在這裏引入衝突。

合併前至少檢查四項:

  1. 改動是否只覆蓋了任務範圍內的文件。
  2. 測試命令是否實際運行且結果可復現。
  3. 是否包含密鑰、生成文件、大型鎖文件或無關格式化。
  4. 兩個候選方案是否改了同一段業務邏輯;若是,保留一個作爲主方案,另一個只作爲參考。

常見問題

Orca 會替我購買或共享 Codex、Claude Code 的額度嗎?

不會。Orca 的定位是編排終端 Agent;你仍使用自己已有的 Agent 訂閱、賬號和本機登錄狀態。多開 Agent 也可能更快消耗對應產品的用量額度。

多個 Agent 可以修改同一個文件嗎?

可以,因爲它們位於不同 worktree;但後續合併會產生競爭。若同一個文件不可避免地要改,最好指定一個主實現 Agent,其他 Agent 只做審查、測試或提出補丁建議。

沒有 Git 倉庫能用嗎?

Orca 能運行終端 Agent,但並行 worktree 的隔離和可控合併依賴 Git。對重要項目,先初始化倉庫並建立可回滾的基線,再開始並行任務。

Orca 與直接開多個終端有什麼區別?

手動開多個終端也能並行,但你需要自己創建工作樹、記住分支、追蹤會話和對比結果。Orca 把這些步驟放到同一界面,重點是降低並行 Agent 的管理成本,而不是改變 Agent 本身的能力。

小結

Orca 的實用之處在於把“並行試錯”變成可審查的 Git 工作流:每個 Agent 在獨立 worktree 中工作,結果用 diff、測試和分支提交來比較。先把任務拆到互不干擾,再只合並經過審查的候選分支,才能讓 Codex、Claude Code 的並行能力真正服務於交付,而不是製造更多衝突。

记录并分享
使用 Hugo 建立
主題 StackJimmy 設計