← 最新の論文
💻 computer science

SWE-NFI: Studying and Benchmarking Coding Agents for Non-Functional Improvements

本論文は、非機能的な改善に関するコーディングエージェントを評価するために設計された、188の現実世界のタスクと92の実行可能なルールからなるベンチマークであるSWE-NFIを紹介しており、エージェントが機能的な正確性においては高い成果を達成している一方で、振る舞いを維持したコードの強化を実行する点では人間の開発者に大きく遅れをとっていることを明らかにしている。

原著者: Pengyu Xue, He Yang Yuan, Xin Wang, Junkai Chen, Haonan Zhang, Boyuan Chen, Zishuo Ding, Zhenhao Li, Weiyi Shang

公開日 2026-07-31
📖 1 分で読めます☕ さくっと読める

原著者: Pengyu Xue, He Yang Yuan, Xin Wang, Junkai Chen, Haonan Zhang, Boyuan Chen, Zishuo Ding, Zhenhao Li, Weiyi Shang

原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む

ロボットにコードの書き方を教えているところを想像してみてください。長い間、ロボットがうまくやっているかをテストする唯一の方法は、「そのプログラムは動くか?」と尋ねることでした。もしロボットが数字を正しく足す計算機を作れたなら、それには金メダルが贈られました。しかし、現実の世界では、ソフトウェアを書くことは家を建てることに似ています。屋根から雨漏りがせず、ドアが開くだけでは、その家が住み心地の良い家であるとは限りません。壁の裏側で配線がぐちゃぐチャになっていたり、塗装が剥げていたり、あるいは照明のスイッチの使い方に関する説明書が、透明なインクで書かれていたりするかもしれません。これらは家の「非機能的な」部分です。つまり、修理のしやすさ、安全性、そして見た目の良さといったことです。

最近、「コーディングエージェント」と呼ばれる賢いコンピュータプログラムが、ソフトウェアの基本的な構造を構築することに非常に長けてきました。彼らはバグを修正したり、新機能を追加したりできます。しかし、これらのエージェントが、既存の機能を壊すことなく、コードを掃除したり、配線を整理したり、明確な説明文を書いたりといった、面倒で退屈ですが非常に重要な仕事もこなせるのか、本当のところは誰も知りませんでした。これが、カナダ、中国、シンガポールの大学の研究チームが答えを出そうとした問いです。彼らは、これらのデジタルな助手たちが、単なる「機能的な建設作業員」を超えて、真の「ソフトウェアの管理人」になれるかどうかを知りたかったのです。

それを確かめるために、研究者たちは SWE-NFI という新しいテストを作成しました。このテストは、巨大で自動化された「検査員のチェックリスト」のようなものです。単にプログラムが動作するかどうかを確認するだけでなく、このチェックリストには、コードがどのように見え、どのように感じられるかについての92の具体的なルールが含まれています。これらのルールは、「この関数が何をするのか、明確な説明を書いたか?」(ドキュメンテーション)、「プログラムがクラッシュしないように、エラーを安全に処理したか?」(エラーハンドリング)、あるいは「古い、錆びついた道具の代わりに最新のツールを使ったか?」(ライブラリの制約)といった項目をチェックします。

研究者たちは、人間がすでに修正した実際のソフトウェアプロジェクトから採取した188の現実の例を用いて、このテストを構築しました。彼らはコードの「修正前」のバージョンをさまざまなコーディングエージェントに与え、その機能自体は変えずに、コードをより良くするように指示しました。そして、92項目のルールを持つチェックリストを使って、エージェントを採点しました。また、彼らは「ヒューマン・リファレンス(人間による基準)」スコア、つまり、人間の開発者が現実の世界で同じコードをどのように改善したかというスコアも用意しました。

結果は、少し厳しい現実を突きつけるものでした。最も優れたコーディングエージェントは、コードが依然として機能することを保証すること(機能的な正確性において70.0%の合格率)については非常に優秀でした。しかし、人間が重視するような「コードをより良くする」という点においては、エージェントは苦戦しました。彼らは、ほぼすべてのカテゴリーにおいて、人間の開発者に及びませんでした。

最大のギャップは、「ロジックパターン」、つまりコードの構造的完全性にありました。人間は、この領域を平均スコア1.5向上させましたが、最高のコーディングエージェントは、わずか0.0から1.3の間しか達成できませんでした。それはまるで、ロボットは頑丈な壁を作ることはできても、レンガを完璧に並べたり、美しいアーチを作ったりする方法までは理解できていないかのようです。

また、研究ではいくつかの興味深い特徴も見つかりました:

  • 単一ファイル vs 複数ファイル: エージェットは単一のファイルを修正することには長けていましたが、複数のファイルにまたがる変更を同時に調整しなければならない場合(例えば、キッチンとリビングルームの両方の配線を同時に直すような場合)、精度が大幅に低下しました。
  • コスト vs 品質: 研究者たちは、エージェントがどれだけの「燃料」(コンピュータの実行時間とデータトークン)を使用したかを調査しました。その結果、より多くの資金や時間を費やすことが、必ずしもより良い結果につながるわけではないことがわかりました。あるエージェントは、別のエージェントよりも100倍多くのリソースを消費しましたが、目立ったコードの改善は見られませんでした。
  • 一貫性: 一度エージェントが実際に動作するコードを書くことができれば、それらの小さな改善を行うことについては、かなり一貫していました。本当の問題は、そもそもコードを動作させること自体にありました。

要約すると、この論文は、私たちのコーディングロボットが「何を(機能させること)」については非常に上手くなっている一方で、「どのように(保守可能で、安全で、綺麗なものにすること)」については、まだ長い道のりが残されていることを示唆しています。彼らは指示に従うことはできる優れた弟子ですが、ワークショップを片付ける方法を知っている熟練の職人としての技術は、まだ習得していません。研究者たちは、この厳格な新しいチェックリストによって、次世代のコーディングエージェントが、単にソフトウェアを構築するだけでなく、それを「ケア」できるようになることを期待しています。

自分の分野の論文に埋もれていませんか?

研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。

Digest を試す →