RPG: A Repository Planning Graph for Unified and Scalable Codebase Generation
大規模言語モデルによる大規模なコードリポジトリ生成の課題を解決するため、構造化された「リポジトリ計画グラフ(RPG)」を提案し、これに基づいて開発されたフレームワーク「ZeroRepo」が、既存の最強力なベースラインと比較して大幅に大規模かつ高精度なコード生成を実現したことを示す論文です。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
論文「RPG: リポジトリ・プランニング・グラフ」の解説
~AI に「ゼロから巨大なソフトウェア」を作らせるための「設計図」の革命~
この論文は、**「AI に頼んで、ゼロから本格的なソフトウェア(アプリやライブラリ)全体を作らせたい」**という課題に挑んだ研究です。
これまでの AI は「この関数を作って」「このファイル直して」という小さな指示には得意でしたが、「この機能を持った Web サイトを全部作って」といった大きなプロジェクトをゼロから作り上げると、すぐに迷子になったり、破綻したりしていました。
この論文では、その問題を解決するために**「RPG(リポジトリ・プランニング・グラフ)」という新しい仕組みと、それを使った「ZeroRepo(ゼロレポ)」**というシステムを紹介しています。
1. 従来の AI の問題点:「メモ帳」の限界
これまでの AI によるコード生成は、まるで**「メモ帳に書き殴られた指示」**に頼っていました。
- 指示: 「ログイン機能を作って、データベースと繋いで、エラー処理も入れてね」
- AI の反応: 最初は順調にコードを書くが、10 行目くらいで「あ、データベースの接続コードが書いてないな」と気づき、後から追加しようとする。でも、そのコードが他のファイルと衝突してエラーになる。
問題点:
- 曖昧さ: 自然言語(普通の言葉)は曖昧で、「繋ぐ」の意味がファイルによって違う。
- 記憶の欠如: 長いプロジェクトになると、AI が「さっき作ったファイル」と「今作っているファイル」の関係性を忘れる。
- 破綻: 指示がバラバラになり、最終的に動かないコードの山ができる。
2. 解決策:「RPG(リポジトリ・プランニング・グラフ)」とは?
この論文が提案するRPGは、単なるメモ帳ではなく、**「立体的な建築設計図(ブループリント)」**のようなものです。
創造的な例え:「都市の建設計画」
AI にソフトウェアを作らせるのを、**「新しい都市を作る」**ことに例えてみましょう。
従来の AI(自然言語):
「街を作ってください。公園もあれば、学校も、家も。道路は繋いでね。」
→ AI は「公園」を作ろうとして、その場所に「学校」を建ててしまったり、道路が湖に突き当たったりします。計画が崩壊します。新しい AI(RPG を使う):
AI はまず、**「都市の設計図(グラフ)」**を描きます。- ノード(点): 「学校」「公園」「家」「病院」などの建物。
- エッジ(線): 「学校から公園へは道が通っている」「病院は救急車ルートで繋がっている」という関係性。
- データフロー(流れ): 「雨水は公園の池に流れ込む」「電気は発電所から家へ送られる」という仕組み。
この**「設計図」が完成してから**、AI は一つ一つビル(コード)を建てていきます。
- 「まず基礎(ベースクラス)を作る」
- 「次に水道管(データの流れ)を引く」
- 「最後に壁(機能)を貼る」
このように、「全体像(設計図)」を常に持ちながら作業を進めるため、どこを直せばいいか、何と何がつながっているかが明確になります。
3. ZeroRepo:設計図を元に建てる「職人」
この設計図(RPG)を使って実際にコードを生成するシステムが**「ZeroRepo」**です。
3 つのステップ
- 提案レベル(何を作るか決める):
ユーザーの「機械学習ライブラリを作って」という要望から、必要な機能(分類、回帰、可視化など)をすべてリストアップし、設計図の骨格を作ります。 - 実装レベル(どう作るか決める):
「どのファイルにどの機能を入れるか」「どのデータがどのファイルに流れるか」を設計図に詳しく書き込みます。まるで、建築士が「1 階はリビング、2 階は寝室、配管はここを通す」と決めるようなものです。 - コード生成(実際に建てる):
設計図に従って、テスト(検査)をしながら一つずつコードを書きます。設計図があるので、新しい機能を追加しても、既存の建物と衝突しないように慎重に組み立てられます。
4. 驚異的な成果:「36,000 行」のコード生成
このシステムを実際にテストした結果、従来の最強の AI(Claude Code など)と比べて圧倒的な差が出ました。
- 規模の差:
- 従来の AI:平均 1,000 行程度のコードしか作れなかった。
- ZeroRepo:36,000 行ものコードを生成しました。
- 比喩: 従来の AI が「一軒家」しか建てられなかったのに対し、ZeroRepo は**「高層ビル群を含む巨大な都市」**を建てたようなものです。
- 正確さ:
- 作ったコードが実際に動くかどうかをテストしたところ、**81.5%**の機能が正しく実装されました(従来の AI は 54% 程度)。
- 設計図があるおかげで、部品同士が矛盾せず、スムーズに動きます。
5. なぜこれが重要なのか?
この研究は、AI が単なる「コードの補完ツール」から、**「ソフトウェアのアーキテクト(設計者)」**へと進化できることを示しました。
- 複雑な依存関係の管理: 大規模なソフトウェアは、部品同士が複雑に絡み合っています。RPG という「設計図」があるおかげで、AI はこの複雑さを理解し、管理できるようになりました。
- スケール(拡張性): 従来の AI は、指示が増えると混乱して止まってしまいましたが、RPG を使うと、機能が増えるにつれてコードの量も直線的に(安定して)増え続けることが分かりました。
- ** Localization(場所特定)の高速化:** 「どこを直せばいいか」を探す際、設計図があれば瞬時に「あ、この建物の 2 階の配管だ!」と特定できます。これにより、バグ修正や機能追加が劇的に速くなりました。
まとめ
この論文は、**「AI に巨大なソフトウェアを作らせるには、ただ『作って』と言うだけではダメ。まずは『設計図(RPG)』を描かせる必要がある」**と説いています。
まるで、**「設計図なしに無計画に家を建てると倒壊するが、しっかりした設計図があれば、摩天楼も建てられる」**のと同じです。この「設計図」の考え方が、これからの AI による自動プログラミングの未来を大きく変える可能性を秘めています。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。