SlopCodeBench: Benchmarking How Coding Agents Degrade Over Long-Horizon Iterative Tasks
SlopCodeBench は、既存のベンチマークが単発タスクに偏っているのに対し、長期の反復タスクにおけるコードの拡張性を評価し、現在の AI エージェントが反復的な仕様変更に伴いコードの冗長性と構造的劣化を急速に引き起こすことを実証した研究です。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
📉 「SlopCodeBench」:AI プログラマーが「長期的なプロジェクト」でなぜ失敗するのか?
この論文は、**「AI(大規模言語モデル)がコードを書くとき、最初のうちは上手でも、何度も修正を繰り返すと、なぜかだんだんボロボロになっていく」**という現象を、新しい実験で証明したものです。
タイトルにある「Slop(スロップ)」とは、最近のネットスラングで**「質が低くて量ばかり多い、ただのゴミのようなコンテンツ」**を指します。AI が生成するコードが、まさにこの「Slop」化していく様子を調査したのがこの研究です。
以下に、専門用語を使わず、身近な例え話で解説します。
🏗️ 1. 従来のテストは「最初の瞬間」しか見ていなかった
これまでの AI のプログラミング能力テストは、**「1 回きりの注文」**に対して「正解の料理が出せるか」を測るものでした。
- 例: 「パスタを作って」と言われて、美味しいパスタが出せれば合格。
しかし、現実のソフトウェア開発はそうではありません。
- 現実: 「パスタを作って」→「次はソースをトマトに変えて」→「さらにパスタを太くして」→「最後にチーズを乗せて」……と、同じ料理を何度も作り直し、改良し続けるのが普通です。
これまでのテストでは、AI が「最初のパスタ」を上手に作れても、**「その後の改良で、料理が台無しになっていくか」**までは見ていませんでした。
🕵️♂️ 2. 新しい実験「SlopCodeBench」:AI に「修繕」をさせ続ける
研究者たちは、20 種類のプログラミング課題を用意し、AI に**「自分の書いたコードをベースに、仕様を変えながら 5 回〜8 回も修正を繰り返させる」**という実験を行いました。
- 最初の仕様: 「Python のコード検索ツールを作って」
- 2 回目の仕様: 「JavaScript と C++ も検索できるようにして」
- 3 回目の仕様: 「もっと複雑なパターン検索もできるようにして」
- ……
AI は、前のバージョンのコードを捨てずに、その上に新しい機能を追加し続ける必要があります。
🔍 発見された 2 つの「悪癖」
実験の結果、AI は以下の 2 つの悪い癖を繰り返しながらコードを汚染させていくことが分かりました。
- 「ダブり・無駄なコード(Verbose)」:
- 例え: 料理に「塩」を足す代わりに、「塩の袋ごと」鍋に投げ込む。
- AI は、同じような処理を何度もコピー&ペーストしたり、必要のない変数を作ったりして、コードの量だけ増やしていきます。
- 「構造の崩壊(Structural Erosion)」:
- 例え: 家の壁に穴が開くたびに、その穴を塞ぐために「さらに大きな板」を無理やり釘で打ち付け、結果として家の中心に巨大で重たい板が積み上がり、家が倒壊しやすくなる。
- AI は、新しい機能を追加する際、既存の複雑な関数に「パッチ」を当てていくだけで、コードの整理(リファクタリング)をしません。その結果、**「1 つの関数が巨大化し、誰にも理解できないモンスター」**が生まれます。
📊 3. 驚きの結果:AI は「人間」よりもはるかに劣る
この実験では、11 種類の最新の AI モデルをテストしましたが、「最初から最後まで完璧にクリアした AI は 1 体もいませんでした」。
- 成功率: 最終的にすべての要件を満たせたのは、最高でも**17.2%**だけ。
- 品質の低下: 90% のケースで「無駄なコード」が増え、80% のケースで「構造の崩壊」が進みました。
- 人間との比較: 人間が長年メンテナンスしている有名なオープンソースプロジェクト(Python 製)と比較すると、AI が作ったコードは**「無駄なコードが 2.2 倍多く、構造の崩壊も激しい」**ことが分かりました。
**最も恐ろしいのは、人間は時間が経つとコードを整理して綺麗にする傾向があるのに対し、AI は「修正するたびに、さらに汚くなっていく」**という点です。
💡 4. 「指示を出せば直る?」という試み
「AI に『綺麗に書いてね』『無駄を省いてね』と強く指示(プロンプト)を出せば、この問題は解決するのではないか?」という実験もしました。
- 結果: 指示を出すと、「最初のコード」は少し綺麗になりました。
- しかし、「2 回目、3 回目と修正を繰り返すと、またすぐにボロボロに戻ってしまいました。」
つまり、**「最初のスタートダッシュは良くても、AI には『長期的な設計の discipline(規律)』が欠けている」**ことが分かりました。AI は「その瞬間の正解」を出すことは得意ですが、「未来の拡張性」を考えて設計する力がまだないのです。
🎯 まとめ:何が問題で、どうなるのか?
この論文が伝えているメッセージはシンプルです。
「AI は、単発のタスクなら優秀でも、人間のように『作りながら育てる』という長期プロジェクトにはまだ向いていない。
AI が作ったコードは、最初は通っても、後から修正しようとした時に『崩壊』してしまうリスクが極めて高い。」
【イメージのまとめ】
- 従来のテスト: 「1 回だけ上手にパスタが作れるか?」を測る。
- 今回の実験: 「パスタを作りながら、10 回も味を変えていくと、最終的に鍋が焦げて料理が食べられなくなるか?」を測る。
- 結論: AI は「1 回だけ」なら天才だが、「10 回も続ける」にはまだ未熟。コードは「Slop(ゴミ)」になりやすい。
今後の AI 開発には、「正解を出す力」だけでなく、**「未来の拡張性を考えて、綺麗に設計し続ける力」**が求められるようになるでしょう。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。