ARISE: A Repository-level Graph Representation and Toolset for Agentic Fault Localization and Program Repair
ARISE は、関数内データフローエッジとクエリ可能なスライシング API を備えたマルチ粒度プログラムグラフを導入することで、故障特定とプログラム修正のための LLM ベースのエージェントを強化するリポジトリレベルのフレームワークであり、SWE-bench Lite ベンチマークにおいて故障特定精度と修正成功率の大幅な向上を達成する。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
あなたは、巨大で広大な都市(ソフトウェアリポジトリ)で犯罪を解決しようとする探偵だと想像してください。この都市には何千もの建物(ファイル)があり、それぞれに数百の部屋(関数)が含まれており、その部屋の中には無数の家具や書類(コードの行)が収められています。
あなたの仕事は、都市の電力網を停止させる嘘(バグ)を含んでいるたった一つの特定の書類を見つけ出し、それを修正するためにその書類を書き換えることです。
問題:都市で迷子になること
過去、これらの事件を解決しようとした探偵(AI エージェント)には、主に二つの問題がありました。
- 彼らには建物の地図しかなかった:どの建物がどの建物に隣接し、どの建物がどの建物への扉を持っているかは知っていました。しかし、部屋の中で情報がどのように移動するかは知りませんでした。
- すべてを読まなければならなかった:嘘を見つけるために、彼らはしばしば本全体を読んだり、建物のすべてのページをスキャンしたりして、手がかりに偶然出会おうとしていました。これは遅く、高価であり、しばしば彼らを間違った部屋へと導きました。
解決策:ARISE(超探偵の道具箱)
著者たちは、ARISEと呼ばれる新しいシステムを作成しました。ARISE を、単に建物だけでなく、ある特定の証拠(変数)が部屋の中でどのようにある書類から別の書類へ移動するかを正確に示す、超強力なインタラクティブな 3 次元マップを探偵に与えるものだと考えてください。
以下に、ARISE がどのように機能するかを、3 つのシンプルなツールに分解して示します。
1. 構造マップ(ティア 1)
これは「建物の地図」です。これは探偵に、「このファイルにはこのクラスが含まれており、それがその関数を呼び出している」と伝えます。図書館が学校と接続していることを知っているようなものです。これにより、探偵はどの建物を検索すべきかを絞り込むことができますが、本のどのページが間違っているかは教えてくれません。
2. 「お金の流れを追う」ツール(ティア 2 - 大きな革新)
これが魔法の部分です。昔、探偵が書類の中で疑わしい数字を見つけると、その数字がどこから来てどこへ行ったかを確認するために、その前後のすべてのページを手動でめくらなければなりませんでした。
ARISE は、データフロースライシングと呼ばれるツールを導入します。あなたは魔法の拡大鏡を持っていると想像してください。その拡大鏡を書類の中の特定の数字に向け、「この数字に触れたすべてのものを示せ」と言います。
- 後方スライス:その拡大鏡は、その数字を作成または変更したすべての文を瞬時にハイライトします。
- 前方スライス:その数字を後で使用したすべての文をハイライトします。
50 ページを読む代わりに、探偵は実際に重要な 5、6 行の文だけをリストアップした、ハイライトされた単一のリストを受け取ります。これは、配管の残りを無視して、蛇口からシンクまでの特定の水滴の軌跡を瞬時に追跡できるようなものです。
3. 証拠ファイル(ティア 3)
探偵が疑わしい文を見つけると、バグを修正するためにそれらを報告書にまとめなければなりません。時には、報告書が長くなりすぎて、探偵の脳(AI モデル)が圧倒されてしまいます。
このツールは、賢い司書のように機能します。ハイライトされたすべての文を取り出し、重要性でランク付けし、探偵のバックパック(メモリ制限)に完璧に収まる、整然とした簡潔な「証拠ファイル」にまとめます。これにより、探偵が最も重要な手がかりを最初に確認できることが保証されます。
結果:機能しましたか?
研究者たちは、人気のあるソフトウェアプロジェクトからの 300 の実際の「犯罪」(バグ)でこの新しいシステムをテストしました。彼らは、基本的なツールしか持っていない標準的な探偵(SWE エージェント)と比較して、ARISE を評価しました。
- 犯罪現場の特定:標準的な探偵は、約 57% の確率で正しい建物(ファイル)を当てることができました。ARISE は 67% の確率で正解しました。
- 正確な部屋の特定:標準的な探偵は、43% の確率で正しい部屋(関数)を当てることができました。ARISE は**60%**まで跳ね上がりました。
- 正確な文の特定:標準的な探偵は、26% の確率で正しいコードの行を見つけました。ARISE はこれを**41%**に改善しました。
最も重要なのは、探偵がより迅速かつ正確に正確な問題を見つけることができたため、バグを成功裏に修正できた割合が**22%であり、標準的な探偵の17%**と比較して高かったことです。
論文からの主要な教訓
- 構造だけでは不十分:ファイルがどのように接続しているかを知るだけでは不十分です。コードの中でデータがどのように移動するかを知る必要があります。
- 「魔法の鏡」が鍵:最大の改善は、データフロースライシングツールから生じました。これにより、AI は推測をスキップし、問題の源に直接進むことができました。
- 翻訳者の必要はない:研究者たちは、小さな AI がデータを平易な英語に要約して主要な探偵に渡すステップを追加しようと試みました。彼らはこれが不要であることを発見しました。主要な探偵(大規模な AI モデル)は、生の構造化データをそのまま読み取ることができました。要約ステップを追加することは、時間と金の無駄でした。
- 限界:このシステムは、単一の部屋内の問題を見つけるのに優れています。しかし、問題が一つの部屋で始まり、隣人の部屋へ渡され、そこでクラッシュを引き起こす場合、探偵は時々混乱します。これが、著者が将来さらに取り組む必要があると述べている唯一の領域です。
要するに、ARISE は AI エージェントにコードを通じて変数の「糸」を追跡する方法を与え、藁の中の針を探すような探索を、解決策への直接の道へと変えるものです。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。