← 最新の論文
💻 computer science

Coding Agents Don't Know When to Act

本論文は FixedBench を導入し、最先端のコーディングエージェントが「行動バイアス」に悩まされていることを示しており、それらは不作為が適切な対応である場合を認識できないため、すでに解決済みの問題に対して不必要なコード変更を頻繁に提案する。

原著者: Thibaud Gloaguen, Niels Mündler, Mark Müller, Veselin Raychev, Martin Vechev

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

原著者: Thibaud Gloaguen, Niels Mündler, Mark Müller, Veselin Raychev, Martin Vechev

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

「コーディングエージェントはいつ行動すべきか分からない」という論文について、平易な言葉と日常的な比喩を用いて説明します。

核心的な問題:過剰に熱心な大工

あなたが家の修理を任せるために、非常に賢い自動化された大工を雇ったと想像してください。あなたは「壊れた」物のリスト(バグ報告)を彼に渡します。彼の任務は、そのリストを見て、壊れた物を見つけ、修理することです。

この論文が調査している問題は、大工が実際にはもう壊れていない物のリストを受け取ったときに何が起こるかという点です。もしかすると、隣人が昨日修理したのかもしれませんし、あるいは誤報だったのかもしれません。

賢い大工であれば、その物を見て、「ああ、これはもう完璧だ」と気づき、「これは手を出さないでおこう」と言うはずです。

しかし、研究者たちは、現在の AI コーディングエージェントは過剰に熱心で神経質な大工のようだと発見しました。コードがすでに完璧に機能しているのを見ていても、彼らはそれに触れたり、微調整したり、「改善」したりする強い衝動に駆られます。何もしないことが最善の選択である場合でも、彼らは行動する衝動に抗うことができません。

実験:「修正済み」テスト

これを証明するために、研究者たちはFIXEDBENCHと呼ばれる特別なテストを作成しました。

  • 設定: 人間によってすでに解決済みの 200 の実世界のコーディングタスクを使用しました。コードは完璧な状態です。
  • : これらのタスクを、5 つの異なるトップクラスの AI コーディングエージェントに与えました。
  • 目的: エージェントはコードを見て、それがすでに修正済みであることを認識し、「空の」パッチ(意味:変更は不要)を提出するはずでした。
  • 結果: エージェントは惨敗しました。「すべて正常」と言う代わりに、35% から 65% のケースでコードを変更してしまいました。彼らは「何かをしなければならない」と感じただけで、不要な変更を加え、不要な「技術的負債」(整理されていないコード)を作り出しました。

なぜこれが起こるのか?(「行動バイアス」)

この論文はこれを行動バイアスと呼んでいます。

何年も数学の問題を解くように訓練された学生を想像してください。もしあなたが「2 + 2 = 4」と書かれた紙を渡して、「問題を解いてください」と頼んだ場合、答えがすでに正しいにもかかわらず、彼らは長い複雑な証明を書き下ろしたり、数字を変えたりする衝動に駆られるかもしれません。彼らは答えを生成するように訓練されているのであって、答えが必要かどうかを評価するように訓練されているわけではありません。

AI モデルはコードパッチを生成するように訓練されています。彼らは、仕事がすでに完了していることを十分に認識できるように訓練されていません。

「指示」実験

研究者たちは、この行動を修正できるかどうかを確認するために、エージェントに異なる指示を与えてみました。

  1. 「ただ修正せよ」(悪い指示): エージェントに「この問題を修正するためにコードを編集せよ」と指示すると、エージェントはさらに悪化しました。機能しているコードをより頻繁に変更するようになりました。
  2. 「まず確認せよ」(より良い指示): エージェントに「まず、バグを再現しようと試みよ。バグが見つからない場合は停止し、何も変更するな」と指示すると、エージェントははるかに良くなりました。彼らは一時停止し、確認し、「おい、これはもう修正済みだ」と気づくことを学びました。
  3. 落とし穴: この新しい指示は、すでに修正済みのコードに対しては非常に効果的でした。しかし、新しい問題を生み出しました。コードが部分的に壊れている(半修正状態)場合、エージェントは過度に慎重になりました。彼らは確認し、いくつかの進捗を見て、何も行わないと決定し、コードを壊れたまま放置しました。

これは、「相手がすでに投降している場合は発砲するな」と言われた警備員が、相手が部分的に投降している場合、相手がまだ危険であっても発砲も介入もすべきではないと判断するようなものです。

根本原因:訓練と現実の乖離

この論文は、AI モデルが自らの成功に関する「常識」の欠如に苦しんでいると示唆しています。

  • 現在の訓練: モデルは変更を加えた場合に報酬を与えられます。バグを修正すれば「よくやった」という評価を得られます。何もしなければ、評価は得られません。
  • 現実: 現実世界では、「よくやった」とは、何もしないことを意味することもあります。

研究者たちは、これを修正するためには、これらの AI の訓練方法を変える必要があると主張しています。バグを修正することと同じくらい、**自制すること(何もしないこと)**も有効で成功した結果であることを教える必要があります。

まとめ

  • 問題: AI コーディングエージェントは、コードがすでに完璧である場合でも、変更を加えることに過剰に熱心です。
  • 証拠: 「すでに修正済み」の 200 のタスクによるテストにおいて、エージェントは最大 65% の頻度で不要にコードを変更しました。
  • 原因: 彼らは行動するように訓練されているのであって、いつ停止すべきかを知るようには訓練されていません。
  • 対策: 「まず検証し、修正済みであれば停止せよ」と指示することは役立ちますが、コードが部分的に壊れている場合、彼らを過度に受動的にしてしまいます。
  • 教訓: 私たちは AI に、時として最高のコード変更とは何の変更も加えないことであることを教える必要があります。

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

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

Digest を試す →