Skip to content

第11章:品質保証OS ― 多層検証で「壊れない」を証明する

— eval 単体に全賭けしない。検証を分解し、各層が1つの問いだけに答える。

設計概論(第9章)で述べた通り、品質保証の原則は3つだ。

  1. LLM にはテキストを渡す。データは渡さない。
  2. 曖昧さは構造で吸収する。
  3. 品質は「正しいソースを使ったか」で保証する。

本章では、この原則を どう検証の仕組みに落とし込むか を実装レベルで解説する。


11.1 なぜ eval 単体では不十分か

eval の精度をどれだけ上げても、以下の問題は解決しない。

  • レポートの粒度が粗くて、LLM が集約を強いられている
  • 正しいレポートに到達できず、別の事実を読んでいる
  • そもそも回答が返ってこない(タイムアウト)

これらはすべて eval の上流にある問題 だ。eval は「出力の品質を判定する仕組み」であって、「品質を生み出す仕組み」ではない。

問題を検知する仕組みと、問題の所在を特定する仕組みは別物だ。


11.2 多層品質保証の設計

検証を4つの層に分解し、各層が1つの問いだけに答える。

第1層:「動いたか」(静的判定)

回答が返ったか。タイムアウトしなかったか。LLM は使わない。二値判定。

実装は単純だ。HTTPステータス、レスポンスの有無、所要時間の閾値チェック。ここで落ちるなら、eval以前の基盤の問題。


第2層:「伝わったか」(内容評価)

回答がレポートの事実をきちんと伝えているか。ここだけ LLM を使う。

ただし評価基準はシンプルなフリーテキストで十分だ。「具体的な企画名を挙げているか。流入元に言及しているか。」

上流がレポート化されているから、回答の揺らぎが小さい。eval に求められる識別力も低くて済む。上流の設計がevalの負荷を決める。


第3層:「安定しているか」(一貫性スコア)

同じ質問を複数のプロトコルで、複数回投げる。そして得られた複数の回答を比較し、「事実・数値・結論が一致しているか」を一貫性スコアとして算出する。

  • スコア 1.0: 全回答が同じ内容 → 信頼できる
  • スコア 0.5: 主要な事実は一致するが一部に差異 → 要調査
  • スコア 0.2 以下: 回答がバラバラ → 設計上の問題がある

1回の判定精度を極めるより、複数回回して統計で見る方が信頼できる。

一貫性が低いとき、それは eval の問題ではなく、上流の問題を示唆している。

実際に一貫性スコアが 0.2 まで落ちたケースがあった。ある番組の「3ヶ月間で流入が多かった企画」を聞く質問だ。毎回異なる回答が返ってきた。

原因を調べると、集約という本来 LLM に任せるべきでない処理を LLM がやっていた。14本の個別レポートを読んで自力で集約するから、毎回ブレる。集約済みのレポートを1本用意すれば、LLM は「読んで答える」だけで済む。

eval を改善しても、この問題は解決しなかった。レポートの設計が品質の上限を決める。


第4層:「正しいソースを使ったか」(レポート検証)

LLM は使わない。「この質問なら、この種類のレポートを使うべき」という制約を正規表現でマッチングするだけだ。

この第4層が、エコシステム全体の安定性を決定的に高めている。正しいレポートを使っていれば、回答に含まれる事実はレポートに書いてある通りだ。eval は「正しい事実を伝えられているか」という表現面だけ担えばいい。


11.3 診断マトリクス ― 「何を直すべきか」を特定する

4層の検証結果を突き合わせれば、「何を直すべきか」がわかる。

eval 単体の精度を上げても、この診断能力は得られない。


11.4 エコシステムとしての循環

3つの原則と4層の検証。これらが個別に存在するのではなく、循環している点にこの設計の真価がある。

LLM に読ませるレポートが正確だから、eval の判定もシンプルで済む。曖昧な入力を構造で吸収しているから、正しいレポートにたどり着ける。正しいソースを使ったかを静的に検証しているから、LLM に品質を聞かなくていい。

どれか1つが欠けても、エコシステムは成立しない。

これを実装レベルで見ると:

  • レポート化(第6章メモリOS) が品質の上限を決める
  • タスク外部化(第5章タスクOS) が曖昧入力の解決を確定的にする
  • 文脈分離(第4章エージェントOS) がLLMの判断を安定させる
  • 品質保証OS(本章) が上記すべてが機能しているかを検証する

4つのOSが揃って初めて、エージェントは「壊れない」と言い切れる。


11.5 実装手順

① 第4層(レポート検証)から作る

最もシンプルで、最も効果が高い。「この質問にはこのレポート種別を使うべき」のルールを定義し、正規表現でマッチングする。LLMを使わないので、即日実装できる。

② 第1層(静的判定)を加える

レスポンスの有無、タイムアウト、ステータスチェック。CI に入れる。

③ 第3層(一貫性スコア)を組む

同一質問を N 回投げ、回答を比較する。スコアが閾値を下回ったら、レポート粒度を見直す。

④ 第2層(内容評価)は最後に入れる

ここだけ LLM を使う。上流が整った状態で入れるから、eval基準はシンプルで済む。Rubricを精緻に作り込む必要がない。

この順序が重要だ。 第2層から作ると、evalの精度を上げることが目的化する。第4層から作ると、品質の構造的な担保が先に入る。


11.6 この章のまとめ

  • eval単体では品質は保証できない。検証を4層に分解する
  • 第1層:動いたか(静的判定)
  • 第2層:伝わったか(内容評価、ここだけLLM)
  • 第3層:安定しているか(一貫性スコア)
  • 第4層:正しいソースを使ったか(レポート検証)
  • 診断マトリクスで「何を直すべきか」を特定する
  • 4つのOS(文脈・タスク・メモリ・品質保証)が揃って初めてエージェントは壊れない
  • 実装は第4層→第1層→第3層→第2層の順で入れる

Last Updated: 2026-04-06

Code: MIT / Content: CC BY-SA 4.0