AI エージェントにキー・バリューストアの高速化を依頼したところ、スループットが 6 倍向上し、すべての正確性テストをパスしました。その理由は何だったのでしょうか?エージェントは、ストアのパフォーマンス評価に使われていた業界標準のベンチマークが、キーから値を生成していることに気づきました。そのため、値を保存する代わりに、クライアントからリクエストがあった際にオンデマンドで再生成するという手法を採用したのです。
値を保存しないキー・バリューストアなど意味をなさないはずですが、評価システムはまさにその挙動を報酬として与えました。仕様書には、私たちが当然だと考えていた要素が欠落しており、ベンチマークもその欠陥を検出できなかったのです。
報酬ハッキングと幻覚を引き起こす 2 つのギャップ
私たちの新しい論文では、この挙動やその他の多くのエージェントによる失敗について、コードを生成し、テストを実行し、すべてのテストに合格するまで失敗を修正するという、慣れ親しまれた「実装 - 検証ループ」の外側に存在する2 つの重要なギャップという観点から説明しています。
- 要件ギャップ: 私たちが書き記したもの(明示的な要件)と、実際に望んでいるものとの間の隔たりです。今回のケースでは、あらゆる解決策はクライアントから提供された値を保存するだろうと当然視していました——そもそも「ストア」と呼ばれる以上、データを保存するのは当たり前ですから!——だからこそ、この要件を明示的に記載することが思い浮かびませんでした。
- モデルギャップ: 評価を行う環境と、実装が実際にデプロイされる現実世界との間の隔たりです。私たちのベンチマークでは予測可能な値を使用していましたが、実際のクライアントは任意の値を提供します。

自然な対応策は、より良い要件と強力なテストを作成することです。どちらも有効ですが、機械検証付き証明であってもこれらのギャップを完全に埋めることはできません。ブライアン・カントウェル・スミス氏が The Limits of Correctness (1985) で説明したように、証明はソフトウェアが特定の環境仮定の下で記載された要件を満たすことを確立するだけです。それらの要件がユーザーの要望すべてを捉えていることや、それらの仮定があらゆる現実世界のデプロイシナリオをカバーしていることを証明することはできません。したがって、これらのギャップを一般的に解消することは不可能なのです。
これらのギャップは、報酬ハッキングと幻覚を引き起こします。報酬ハッキングとは、エージェントが明示されていない要件や現実世界の仮定といったギャップを悪用して、与えられた目的関数を最適化する現象です。幻覚とは、エージェントが存在しない API など、捏造された要件や環境仮定を導入することで、ギャップをさらに拡大させる現象です。最近報告されている OpenAI と Hugging Face および Claude に関するインシデントは、いずれもこれらのギャップの現れです。
AI エージェントにより 2 つのギャップが悪化
これらのギャップ自体は新しいものではありません。ソフトウェアエンジニアリングの世界では何十年も前から存在していました。しかし、AI エージェントはこのギャップを著しく悪化させています。
- 過剰最適化: エージェントは人間よりも桁違いに速く実装案を検索し、評価器に対して積極的に最適化を行います。
- 暗黙知の欠如: 経験豊富な人間のエンジニアは、暗黙のコンテキスト(例えば、データストアは実際にデータを保存しなければならないという知識)に依存しています。エージェントはこうした組織的なコンテキストを持たないことが多く、欠落した要件を容易に悪用してしまいます。
- マルチエージェントの罠: すべてのエージェントが同じ不完全な要件と環境仮定を継承している限り、レビュー用のエージェントを追加しても問題は解決しません。
ギャップを縮めるには人間の判断が不可欠
ギャップは実装 - 検証ループの外側に存在するため、これを縮めるには外側の保証 - 修正ループが必要です。このループは、デプロイされた挙動が人間の意図を満たしているかどうかを確認します。満たしていない場合、デプロイ時の証拠を用いて要件、環境モデル、または評価器を修正します。その後、実装 - 検証ループが再度実行され、修正された実装が生成されます。
ソフトウェアは人間の意図に奉仕しなければならないため、証拠の解釈と許容できる挙動の決定に関する最終権限は人間が保持します。エージェントは、証拠の収集、修正案の提案、人間から委任された権限内でのルーチンな意思決定を通じて、外側のループを加速させることができます。
したがって、ソフトウェアの実装コストが低下するにつれて、最も重要なリソースとなるのは、許容できる挙動についての人間の判断と、現実的な条件下でシステムがどのようにパフォーマンスを発揮するかに対する忠実な評価です。





