如果多個 AI 同時寫程式?提前預防「衝突」的聰明方法

一幅圖像,展現了不同顏色的 AI 代理向同一個程式碼庫發送各自的計劃,而 Foremerge 在中間進行衝突協調的景象。
AI Summary

Foremerge 是一種全新的協調協議,能讓多個 AI 編程代理在編寫程式碼之前,先分享彼此的工作計劃,並提前通知潛在的衝突。

想像一下,你正和 5 名隊友一起堆疊一座巨大的樂高城堡。然而,3 個人堅持說「這裡要架一座橋」,另外 2 個人卻主張「要在這個位置蓋城牆」,並且同時動手。結果會如何呢?如果不了解彼此的計劃而各自組裝,最終城堡只會倒塌,浪費時間。

最近,軟體開發領域也發生了同樣的事情。因為我們進入了一個多個「AI 編程代理」(coding agents,能自主編寫並修改程式碼的 AI)同時修改同一個專案的時代。出處 1 然而,如果這些 AI 代理在不了解對方計劃的情況下編寫程式碼,合併時就會產生嚴重衝突。今天,我們要介紹一項能提前防止這類悲劇的新技術——「Foremerge」。

為什麼這項技術很重要?

過去,開發人員一直透過「Git」(一種輔助軟體版本管理的工具)來合併程式碼。然而,這種方式是在程式碼已經全部寫完後,才滯後地解決產生的問題。出處 2 如果兩個 AI 代理決定各自以不同的方向更改軟體結構(架構),Git 只有在程式碼寫完後才會告知「發生衝突」。屆時,時間和精力早已耗盡。

這種方式損害了整個專案的穩定性。如果 AI 代理在編寫程式碼前就能掌握彼此的「意圖」,情況會如何呢?Foremerge 正是從這一點帶來了創新。出處 10

簡單來說,就是「AI 專用的共享會議室」

若將 Foremerge 定義為一句話,那就是「AI 代理的共享會議室」

就像在組裝樂高前繪製藍圖一樣,Foremerge 要求每個代理在寫下任何一行程式碼之前,先將自己的設計圖發布到公共儲存庫中。出處 8 具體運作方式如下:

  1. 共享意圖:代理 A 上傳計劃:「我要改進登入功能」。
  2. 確認範圍:代理 B 上傳計劃:「那我來更改資料庫設定」。
  3. 偵測衝突:Foremerge 會以數學方式計算這兩個計劃是否衝突(例如:兩者是否都觸碰了同一個檔案,或者結構是否會糾結)。出處 3
  4. 提供建議:若預計會發生衝突,Foremerge 會向代理提供可解釋的建議:「等等!這樣下去以後會發生衝突」。出處 2

有趣的是,Foremerge 的偵測過程並未使用昂貴的 LLM(大型語言模型)。出處 2 取而代之的是利用 SQLite(一種輕量且快速的資料庫)與既定規則,快速且精確地進行判斷。出處 5

目前進展如何?

Foremerge 目前已開發為一種在 Git 上運行的開源協調協議。出處 3 開發人員即便在各自獨立的開發環境中工作,也能透過 Foremerge 分享工作意圖與變更預定事項。出處 7

它採取的不是強制阻止工作的方式,而是提供開發者參考建議,因此非常靈活。出處 2 得益於此,人類與 AI,或者多個 AI 代理之間的協作變得更加順暢。

會成為 AI 時代的協作標準嗎?

隨著 AI 編程代理執行越來越複雜的任務,協調它們的技術將成為必然,而非選項。像 Foremerge 這類「基於意圖的衝突預防系統」,極有可能在未來成為企業級軟體開發環境中的標準。出處 6 未來,我們將不再於程式碼寫完後才產生爭執,而是讓 AI 彼此對話、預先避開衝突,這種智慧開發環境將成為常態。


參考資料

  1. ShowHN: Foremerge – Catch Intent Conflicts Between Parallel Coding Agents https://modernorange.io/item/49789356
  2. Foremerge: catch intent conflicts before code conflicts https://foremerge.com/
  3. GitHub - naw103/foremerge: Catch intent conflicts before code conflicts https://github.com/naw103/foremerge
  4. ShowHN: Foremerge – Catch Intent Conflicts Between Parallel Coding Agents Comments https://vk.ru/wall-238001969_5977
  5. Foremerge: a Git like coordination protocol for parallel coding agents. https://users.rust-lang.org/t/foremerge-a-git-like-coordination-protocol-for-parallel-coding-agents-one-binary-sqlite-deterministic-conflict-rules/142084
  6. Foremerge: Local Coordination for Coding Agents - Open Source https://reporank.net/en/repo/naw103-foremerge.html
  7. Foremerge: Foremerge catches intent conflicts before code conflicts https://softwareontheweb.com/product/foremerge
  8. Foremerge demo - YouTube https://www.youtube.com/watch?v=miuABG2hlkg
  9. Foremerge MCP Server https://mcp.so/servers/foremerge
  10. 31 hard questions about coordinating parallel coding agents, answered https://dev.to/naw103/31-hard-questions-about-coordinating-parallel-coding-agents-answered-2md2
AD
測試你的理解
Q1. Foremerge 與傳統 Git 衝突解決方式最顯著的區別是什麼?
  • 在程式碼完成後確認衝突
  • 在編寫程式碼之前提前偵測計劃衝突
  • AI 自動修正所有衝突
Foremerge 並非在修改程式碼階段才介入,而是在代理各自開始工作前,先共享「意圖(Intent)」與「範圍」,從而預先防止結構性衝突。
Q2. 關於 Foremerge 偵測衝突的方式,下列敘述何者正確?
  • 每次都使用 LLM 來理解上下文
  • 需要使用者親自審查程式碼
  • 使用預先定義的確定性規則,不使用 LLM
Foremerge 的偵測路徑不包含 LLM,而是基於 SQLite 等工具的確定性規則運作。
Q3. Foremerge 會強制停止代理的工作嗎?
  • 是的,會實施硬鎖定(Hard Lock)
  • 不是,它提供的是建議(Advisory)
  • 直到使用者批准前都會暫停
Foremerge 並非採取強制性的硬鎖定方式,而是為代理提供關於潛在衝突的可解釋建議。