9 ポイント 投稿者 bangdori1 9 일 전 | 4件のコメント | WhatsAppで共有

社内のAIレビューツールを運用しながら、「AIレビューは信頼できるのか?」「本当に適切に検証できているのか?」という問いに答えるため、品質を定量的に測定し改善してきた過程を共有します。

背景

  • AI生成コードは人間のコードと比べて、PRあたりのイシューが1.7倍、ロジックエラーが75%多い(CodeRabbit)
  • AmazonはAIコード障害の後、シニアによるPR承認を必須化し、ShopifyはAI PRの自動マージを禁止
  • AIレビューはこうした状況でイシューやエラーを早期に発見するための検証手段の一つとして導入
  • ただしAIレビュー自体が非決定的であるため、「この検証手段が本当に適切に検証できているのか?」を測る段階が先行する必要がある

独自ベンチマークの構築

  • Hotfix PR → 元のPRを逆追跡し、「元の時点でAIレビューがこのバグを検出できたか」を測定
  • PR diffだけで判定可能なケースのみを含め、外部コンテキストが必要なものは除外
  • 採点はGPT-4o miniによるLLM-as-a-Judge。絶対値は不正確でも相対比較には十分
  • 初回スコアは33点。「うまくできている気がする」という感覚は、ごく少数の成功事例による錯覚だった

失敗 1(サブエージェント・オーケストレーション)

  • 領域別の専門サブエージェントを置き、メインエージェントが指揮する構成を試行
  • 結果: 検出率 ↓、コスト 1.5〜3倍 ↑
  • 原因は3つ
    • コンテキスト圧縮による情報損失
    • 関心範囲の制限による視野の狭まり
    • 複数領域にまたがる責務の空白

失敗 2(ベンチマーク汚染)

  • ループでプロンプトを自動チューニングしたところ、「Division by Zeroをチェックしろ」といった指示の列挙に収束
  • SWE-benchもすでに汚染状態
  • 外部ベンチマークではモデル選定の根拠を作れないことを確認

新しい指標(Adoption Rate)

  • adopted: レビューが実際のコード変更につながった
  • engaged: 変更はないが返信でやり取りがあった(交差検証の価値を認めた)
  • noised: 変更も返信もない
  • 判定方法: レビュー時点のcommit SHAとマージ時点のSHAを比較し、コメント行の±3行以内に変更があればadoptedと判定

Opus 4.6 vs GPT-5.2 Codex A/B

  • PR番号の偶数/奇数でモデルを振り分け、約100件のPRを比較
  • Opus 4.6: 高速で創造的だが詰めが甘く、簡単にApproveしがち
  • GPT-5.2 Codex: 遅いが綿密で、レビュー再依頼の時点でも有効な追加指摘が多い
  • Codexに固定後、週間反映率は最高60%を記録

反映率を上げた3つの施策

  • Question: 確信が持てない点は指摘ではなく質問にする
  • PRテンプレートのIntent/Decisionsセクション
    • Intent: create-prスキルで「なぜ必要か」という問いへの回答を挿入
    • Decisions: Claude Stopフックで会話セッションの意思決定を自動抽出
    • レビュアーのコンテキスト不足で発生していた誤検知が約29%減少
  • スレッド自動resolve: レビューの反映を確認するとAIが自動でスレッドを閉じる

結果

  • 月間反映率63%を達成(2026-04-17時点)
  • すべてのアクションがデータ駆動のため、次の実験判断にも根拠を持たせられる
  • Adoption Rateも「採用 = 正解」を保証するわけではないため、この指標自体も汚染されうる点に注意が必要

4件のコメント

 
pkj3186 9 일 전
  • ただし、AIレビュー自体が非決定的なので、"この検証手段は本当にうまく検証できているのか?" を測る段階が先行しなければならない

とは…… "監視者を誰が監視するのか?" みたいですね

 
bangdori1 8 일 전

先ほど述べた「検証手段」は、AIレビュアーのことを指していました。AIは非決定的なので、AIレビューの品質を測定するための基準線(ベンチマーク)がまず必要だ、という意図だったのですが、読む方の観点ではベンチマーク自体の妥当性を先に検討すべきだ、という意味にも受け取れそうですね。

文を曖昧に書いてしまい、混乱を招いたようです。ご指摘ありがとうございます..!

 
epdlemflaj 7 일 전

個人的には、コードを書くモデルとレビューするモデルには別のモデルを使っています
経験上、Claude は Claude が書いたコードをよくできたコードだと認識し、ChatGPT は ChatGPT が書いたコードをよりよくできたコードだと見るようです

 
jimmy2056 9 일 전

計画段階と検証段階でCodexを使っていたのですが、ちゃんとしたやり方だったんですね。