基於Git的AI編碼代理協調層
Loom是一個構建在Git之上的協調層,專為多個AI編碼代理同時工作而設計。它透過工作樹隔離、意圖租賃和整合驗證門來防止衝突,確保代理不會互相覆蓋檔案,並在出現重疊時提前警告。適用於代理叢集,但不適用於人類正常PR或單一任務競賽。
Loom是一個專為多個AI編碼代理設計的協調層,基於Git構建,旨在解決代理同時工作時常見的檔案覆蓋和衝突問題。其核心思想是,在代理開始工作前透過“意圖租賃”機制檢測潛在衝突,而非等到合併或CI階段才發現問題。
在沒有Loom的情況下,如果兩個Claude Code會話同時操作同一個倉庫,代理A花費40分鐘和約20萬token重寫src/auth/,代理B則清理登入流程,結果B最後完成,其編輯覆蓋了A的工作,測試套件在提交時變紅,需要第三個會話花費大量token診斷。而使用Loom時,代理A首先租賃src/auth/**,代理B詢問Loom後看到該租賃,自動選擇不相交的範圍或等待,衝突在開始時透過一次工具呼叫報告,而不是在預算耗盡後。
Loom為每個任務建立獨立的Git工作樹,確保兩個執行緒不會物理上覆蓋彼此的編輯。代理在編輯前必須宣告一個意圖租賃,包含機器可讀的目標和檔案萬用字元。如果兩個租賃重疊,系統會在宣告時發出警告,讓代理自行調整範圍或等待。這種設計使得昂貴的衝突協調從頻繁變為罕見。
除了隔離和協調,Loom還提供整合功能。主線僅透過綠色驗證和人工審批門前進。當主線和一個執行緒都修改了同一檔案時,系統會拒絕著陸並提示“主線已移動,請變基”,而不是靜默覆蓋。死代理的執行緒會變成“孤兒”,附帶目標、驗收標準和幾秒前的檢查點,任何其他代理都可以認領並繼續工作。
Loom透過Git隱藏引用同步狀態,無需額外伺服器。它支援多人協作,透過loom sync交換狀態。代理可以使用MCP工具與Loom互動,例如申請租賃、提交檢查點、提議著陸等。Loom不適用於人類正常PR工作流或多個代理競爭同一任務的情況。它假設每個代理處理不同的任務。
此外,Loom提供了橋接模式來控制Git歷史粒度:預設使用squash模式,每個編織一次提交;stitches模式將每個檢查點作為提交;both模式則同時保留壓縮提交和執行緒分支。驗證是在整個倉庫的臨時副本中進行的,帶有硬超時,紅色永遠不會著陸。大型檔案(超過8MiB)會被跳過,並可以在stitch結果中看到。刪除操作被視為一等公民,記錄為墓碑。
總之,Loom將衝突檢測從事後移到事前,是管理多代理協作的高效工具。它不取代Git,而是作為其上的協調層。