複数のAIが同時にコーディングするなら?「競合」を未然に防ぐ賢い方法

異なる色のAIエージェントたちが一つのコードリポジトリに向かってそれぞれの計画を送り、Foremergeがその間で競合を調整する様子を形象化した画像
AI Summary

Foremergeは、複数のAIコーディングエージェントがコードを記述する前に互いの作業計画を共有し、競合を事前に通知する新しい調整プロトコルです。

想像してみてください。あなたがチームメンバー5人と一緒に巨大なレゴの城を作っているとします。ところが、3人は「ここに橋を架けよう」と言い、2人は「この場所に城壁を立てよう」と主張して同時に動いたとしたら、どんなことが起こるでしょうか?互いの計画を知らずに各自がレゴを組み立てれば、結局城は崩れ、時間だけを浪費することになるでしょう。

最近、ソフトウェア開発の現場でもこれと全く同じことが起きています。複数のAIコーディングエージェント(coding agents、自らコードを記述・修正するAI)が一つのプロジェクトを同時に修正する時代が来たからです。出典 1 しかし、これらのAIエージェントが互いの計画を知らずにコードを記述すれば、後に統合する際に深刻な競合が発生します。今日は、このような悲劇を未然に防いでくれる新しい技術、「Foremerge」を紹介します。

なぜこの技術が重要なのか?

これまで開発者は「Git(ギット、ソフトウェアのバージョン管理を助けるツール)」というシステムを通じてコードを統合してきました。しかし、これはコードが既にすべて記述された後にしか発生しない問題を後手に回して解決する方式です。出典 2 もし2つのAIエージェントが各々異なる方向にソフトウェアの構造(アーキテクチャ)を変更しようと決定した場合、Gitはこれをコードをすべて書いた後に初めて「競合が発生した」と知らせます。その時はすでに時間と労力が浪費された後です。

このような方式は、プロジェクト全体の安定性を損ないます。AIエージェントがコードを書く前に互いの「意図」を把握できるとしたらどうでしょうか? Foremergeはまさにこの点で革新をもたらします。出典 10

簡単に言えば、「AIのための共有会議室」

Foremergeを一言で定義するなら「AIエージェントのための共有会議室」です。

レゴを組み立てる前に設計図を描くように、Foremergeは各エージェントがコードを一行でも書く前に、自分の設計図を共通リポジトリに掲載させます。出典 8 具体的には次のように作動します。

  1. 意図の共有: エージェントAは「ログイン機能を改善する」と計画を上げます。
  2. 範囲の確認: エージェントBは「じゃあ私はデータベース設定を変更する」と計画を上げます。
  3. 競合の検知: Foremergeは、これら2つの計画が互いに競合するかどうか(例:両方が同じファイルを触ったり、構造が絡まったりするか)を数学的に計算します。出典 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は強制的なハードロックをかける方式ではなく、エージェントに対して発生しうる競合について説明可能なアドバイスを提供する方式です。