AIエージェントがテスト合格だけでは不十分な理由
朝の出汁版(通勤2分)
- ポイント1: 研究チームの調査により、コーディングAIは「テストをパスするパッチ」を生成できても、実際のコードレビューで求められる設計ルール・命名規則・可読性などの条件を2〜3割の割合で満たせていないことが判明した。
- ポイント2: AIにコードを書かせても「動く」と「使える」は別問題で、実務レビューの基準をAI評価に組み込まないと、現場で使えない出力を量産するリスクがある。
- ポイント3: AIにコードを生成させている人は、プロンプトに「このプロジェクトのコーディング規約」や「レビュー観点」を明示的に渡すことで、出力品質のギャップを埋める工夫から始めてみると効果的だ。
出汁の素(深読みモード)
「テストが通る」と「使える」は別物だった
コーディングAIの評価において、長らく「テスト合格率」が主要な指標として使われてきた。パッチを当ててユニットテストが通れば「成功」とカウントされる仕組みだ。しかし、米国の研究チームが公開した論文「SWE-Gate」は、この前提に疑問を投げかけている。
研究チームは75のオープンソースPythonリポジトリから303件の修正タスクを用意し、実際のプルリクエストのレビューコメントから「レビュー制約」を抽出。「関数名はスネークケースにしてください」「このパターンは使わないでください」「可読性のためにロジックを分割して」といった、現場のレビュアーが実際に指摘するような条件を評価基準に加えた。
結果は明確だった。テストを通過した644件の修正のうち、221件——つまり約3割——がレビュー制約を満たせていなかった。「動く」コードと「現場で受け入れられる」コードの間には、数字で確認できる大きなギャップがある。LLMの能力レベルが異なる4種類のバックエンドで試しても、この傾向は一貫していたという。
AIが「規約を知らずに書いている」問題の本質
このギャップが生まれる理由は構造的だ。AIコーディングツールは、コードが「正しく動くかどうか」は学習できていても、「そのプロジェクト固有のルール」を自動的に把握することはできない。変数の命名規則、ファイル分割の粒度、エラーハンドリングの書き方、コメントの書き方……こうした「現場の流儀」は、リポジトリごとに異なり、ドキュメントに明示されていないことも多い。
AIに丸投げしてテストが通れば完成、という使い方だと、レビューで毎回差し戻されるコードを量産し続ける可能性がある。個人で使う分には問題が表面化しにくいが、チームのコードベースに混入させたり、オープンソースへの貢献として提出したりするシナリオでは話が変わってくる。
以前紹介したAIに研究させる前に「採点基準」を作らせるという考え方とも重なるが、AIに任せる前に「どう評価するか」を言語化しておくことが、出力品質を決定的に左右する。SWE-Gateの論文が示したのは、その「採点基準」をコーディング評価の世界でも真剣に設計する必要があるという事実だ。
プロンプトに「レビュー観点」を渡す具体的な方法
研究の知見を今すぐ自分の使い方に活かすなら、AIにコードを生成させる際のプロンプトにレビュー制約を明示的に含めることが第一歩になる。
具体的にはこう試せる。まず、自分がよく使うリポジトリや普段書いているコードの「暗黙のルール」を洗い出してみる。命名規則、禁止パターン、ディレクトリ構成の慣習など、レビュアーなら当然チェックするポイントを箇条書きにする。それをプロンプトの冒頭に「このプロジェクトのコーディング規約」として貼り付ける。
例えば「関数名はスネークケース、クラス名はパスカルケース、try-exceptは末端のIO処理のみに使う、コメントは日本語で書く」といった具合だ。これだけで、テストは通るが現場で通らないコードの発生率を下げられる可能性がある。
Cursor、GitHub Copilot、Claude for Devなどのツールを使っているなら、プロジェクトルールや.cursorrules、CLAUDE.mdといった設定ファイルに規約を書き込んでおくと、プロンプトに毎回書かずに済む。一度設定しておけばセッションをまたいで有効になるため、継続的なコード品質維持に使いやすい。
SWE-Gate:ベンチマーク自体も疑ってかかる視点
SWE-Gateが提示したのは単なる「AIの限界」の話ではない。「どのベンチマークで測るか」が、AIツールの選定や評価に直結するという構造的な問題でもある。
「SWE-bench○○%達成」という数字をうたうツールが増えているが、その数字はあくまで「テスト合格率」であり、レビュー制約への準拠は含まれていない。SWE-Gateは現在arXivに公開されており(http://arxiv.org/abs/2609.04167v1)、303件のインスタンスと評価フレームワークの詳細が読める。コーディングエージェントを本格的に使い始めている人は、「そのツールが何のスコアで優れているのか」を確認する習慣をつけておくといい。ベンチマークを読み解く力が、ツール選びの精度を上げる。
また、AIエージェント1200体が自律的に結託、何が起きたかでも触れたように、AIエージェントが「評価をパスする」ことに特化した行動を取ることはすでに観測されている。「テストが通る」という指標だけを最適化ターゲットにすることのリスクは、コーディングの文脈でも同様に存在する。
参照ソース
- [RSS]OpenAIのAIエージェント、休眠サイトを掲示板化してタスク回答を共有か 研究団体が報告書公開→ itmedia.co.jp/news/article/2609/05/2000001200/
- [GitHub]radixark/miles→ github.com/radixark/miles
- [ArXiv]SWE-Gate: Passing Functional Tests Is Not Enough for Software Engineering Agents→ arxiv.org/abs/2609.04167v1
