Kozuchi Agent: A Language-Agnostic Open-Weight Agent for Software Repair
Kozuchi Agentは、永続的な状態を持つCI運用パイプラインを活用することで、ファインチューニングを行うことなくSWE-bench VerifiedおよびMulti-SWE-benchベンチマークにおいて最先端の性能を達成する、言語に依存しないオープンウェイトのソフトウェア修復システムであり、その残された限界がフォーマットや独自のモデルへのアクセスによるものではなく、主に意味的な正確性と選択のエラーに起因することを実証している。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
広大で複雑なソフトウェアエンジニアリングの世界において、コードは現代生活を築く基礎ですが、それは壊れやすいものでもあります。プログラムが誤作動を起こすと、エラーの内容を記述したレポートが生成され、人間の開発者が問題を診断し、数千行のテキストの中から欠陥を特定し、他の部分を壊すことなく問題を解決する修正案を書き込まなければなりません。このプロセスは遅く、困難であり、コストがかかります。近年、これらのレポートを読み、自ら修正を試みることができる新しい世代の人工知能が登場しました。これらのシステムは、しばしば「エージェント」と呼ばれ、コンピュータのファイルシステムを操作し、テストを実行し、コードを編集することができるデジタル的な徒弟(アプレンティス)のように振る舞います。しかし、これらのエージェントに長期間にわたって安定して作業させることは、大きな障壁となってきました。彼らは細部に迷い込んだり、以前のステップで学んだことを忘れたり、コードを修正するために必要なツールの使用に失敗したりすることがよくあります。研究者たちの課題は、人間による絶え間ない監視なしに、複雑な問題を解決できるよう、これらのデジタルワーカーを集中させ、整理し、責任を持たせるシステムを構築することでした。
富士通研究所の研究チームは、「Kozuchi Agent」と呼ばれるシステムを開発することで、この課題に対処しました。彼らの研究は、新しいデータに対して特別な学習を必要とせず、代わりにその振る舞いを導くために注意深く設計されたフレームワークに依存する、特定の種類の人工知能に焦点を当てています。研究者たちは、エージェントが明確に定義された段階を経て動作するデジタル環境を構築しました。エージェントを問題の中で自由に彷徨わせるのではなく、システムは、まずエラーを再現して存在を確認し、次に問題の正確な発生源を特定し、最後に修正を記述してテストするという一連のステップを強制します。各段階において、エージェントは次のステップに進む前に特定の成果物を生成しなければならず、システムはエージェントが行ったすべてのことを永続的に記録します。この構造により、エージェントが混乱したり同じ間違いを繰り返したりすることを防ぎ、混沌とした探索を規律ある監査可能なプロセスへと変えています。
チームはこのシステムを、実世界のソフトウェア問題の膨大なコレクション、具体的にはPythonプログラミング言語の500個のイシューに対してテストしました。彼らは、この特定のタスクのために修正や再学習が行われていない、強力なオープンソースの人工知能モデルを使用しました。結果の堅牢性を確保するため、彼らは各問題に対してエージェントを8回別々に実行し、8つの異なる潜在的な解決策を生成しました。その後、システムは巧妙な選択手法を用いて、これらの解決策を互いに比較しました。隠された正解に頼って最良の修正を選ぶのではなく、システムは8回の試行によって生成されたテストを使用して、他の試行を評価しました。ある修正が別の試行によって作成されたテストを通過した場合、それは強力な候補であるとみなされました。このアプローチにより、システムは事前に正解を知ることなく、最も信頼できる解決策を特定することができました。
結果は極めて重要でした。Kozuchi Agentは、500個のPython問題のうち374個を解決することに成功し、成功率は約75パーセントに達しました。このパフォーマンスにより、本システムは全提出作品と比較して全体で12位にランクインし、オープンで公開されているモデルを使用するシステムの中では第1位となりました。研究者たちは、同じシステムをJavaプログラミング言語で書かれた異なる問題のセットでもテストしました。これら2つの言語の違いにもかかわらず、システムは同様の一貫性を示し、128個のJavaイシューのうち41個を解決しました。これは、このフレームワークが単一の言語に縛られるものではなく、異なるタイプのソフトウェアに広く適用できることを証明しています。
本研究の重要な発見は、失敗が発生した原因が、エージェントが乱雑なコードや壊れたコードを書いたことによるものではないということでした。実際、エージェントによって生成されたパッチのほとんどは、ソフトウェアにきれいに適用されていました。問題は、修正自体のロジックにありました。エージェントは、見た目は正しいように見えるものの、実際には根本的な問題を解決しない修正をしばしば書いていました。この区別は非常に重要です。なぜなら、改善への主な障壁は、コードの形式やツールの使用能力ではなく、問題の意味に対する深い理解にあることを示唆しているからです。また、研究者たちは、このシステムがその運用において非常に効率的であることも発見しました。ワークフローを自動化し、プロセスの異なる部分を再利用できるようにすることで、これら一連のテストを実行するために必要な人間の労力を、5つの個別の手動ステップから1つの自動化されたアクションへと削減しました。
研究では、システムの成功が単なる推測や、ごく一部の企業しかアクセスできない大規模な独自のモデルによるものであるという考えを明確に否定しました。エージェントは270億のパラメータを持つモデルを使用しており、これは大規模ではありますが、今日利用可能な最も強力なモデルよりもはるかに小さく、特別なファインチューニングなしにその結果を達成しました。研究者たちはまた、システムが運に頼っていないことも示しました。パフォーマンスは、異なる実行や異なる種類のソフトウェアリポジトリにわたって一貫していました。このシステムは完璧ではなく、依然として最も困難な意味論的な問題には苦戦していますが、人工知能をソフトウェアエンジニアリングにおける信頼できるパートナーにするための大きな一歩となっています。構造化されたワークフローとスマートな選択プロセスを組み合わせることで、Kozuchi Agentは、オープンでアクセシブルなテクノロジーが、実世界のコーディングの課題を解決する上で最も高度なシステムと競合できることを示しました。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。