← 設定を1枚の帳票に集めて書き忘れ事故を潰した話 AIに下調べの省略をさせない検問を作った話 →
第16話

AI審査員の盲点を人間の一言と説明書の改良で塞いだ話

困ったこと

ある日、状態表示の道具を作り、三人の別々のAIに「変なところを探して」と頼んだ。返ってきた指摘は三体で合計39件。内容的にも技術的にも的確で、一見「これで十分」に見えた。ところが、その日の終わりにかけた、ふと出た一言が状況をひっくり返す。「テストは充分?」——道具が壊れた時の表示も、警告の予告行も、特定の操作パスの分岐も、誰も一つも指摘していなかった。三人の審査員は全員、渡された「変更した一部分」しか見ておらず、「道具全体の振る舞い」のうちテストされていない領域を、一度も列挙しようとしなかった。見落としというより、見える範囲が最初から限られていた。

flowchart TB
    A[🧰 道具を作る] --> B[📝 変更部分だけ渡す]
    B --> C[🤖 三人のAIに審査依頼]
    C --> D[✅ 39件の指摘=十分?]
    D -->|👤 人間「テストは充分?」| E[😮 テストされていない部分3つ]
    E --> F[🚧 審査員3人とも見逃していた]

どう解決したか

道具を直す前に、問題が起きた理由を分解した。「審査員が盲点を持った」のは、怠けでも能力不足でもなかった。二つの仕組みの穴が同時に開いていた。一つは渡し物が不完全だったこと。渡したのは「変更した一部分」だけ。道具全体と既存のテスト一式を見せなければ、「テストされていない部分」を探す動機も素材も生まれない。もう一つは頼み方に「テストされていない部分を挙げよ」との一言が無かったこと。人間は頼まれたことしかやらない——AIも同じ。三つの審査は優秀だったが、頼まれた範囲の中だけで優秀だった。

そこで審査の説明会書に、二行だけ書き足した。一つは頼み方の観点として「テストされていない部分(多ければ上位三つ)を挙げよ」を加え、もう一つは渡し物の注記として「変更だけでなくファイル全体とテスト一式を渡せ」を添えた。これで次回からは、最初から全体を見て、足りていない所を聞くようになる。

そして再発を物理的に防ぐ番人を一つ置いた。毎朝立ち上がる画面に「説明書が五百五十行を超えたら警告」を出す小さな仕掛けだ。行数そのものは今四百八十行で正常範囲。だから今日は何も警告が出ないが、知らないうちに膨れ上がった日には、画面が教えてくれる。人間の注意力に頼らない、構造の見張り役。

flowchart TB
    P1[🤖 3人の審査員39件] --> Q{👤 人間1問}
    Q -->|盲点発見| R1[📖 説明書に観点追加]
    Q --> R2[📦 渡し物にファイル全体+テスト一式追加]
    R1 --> S[🚧 見張り役:画面警告]
    R2 --> S
    S --> T[✅ 次回から全体を見る]

何が変わったか

一番変わったのは、「審査は頼まれた範囲で動く」という、当たり前の認識だ。今までは審査に「変な所を探して」とお願いすれば、十分な答えが返ると思っていた。それが間違いだった。「何を範囲とするか」をこちらが指定しなければ、AIの目は限られた窓からしか覗けない。言い換えれば、審査の精度を上げるには審査員を賢くするのではなく、頼み方と渡し物を賢くする必要がある。

副次的だが、もう一つ良かったことがある。人間の一言を待たず、システム自身が次に同じ穴を塞ぐ準備ができたことだ。「行数が膨らんだら警告」という単純な仕組みは、五分もあれば作れた。「LLMの思考を完璧にする」を目指すより、よほど早く、よほど確実で、よほど静かだ。

<details><summary>▶ 技術的にどう作ったか</summary>

</details>