homula

エージェンティック・ハーネス設計ガイド — Part 6

検証・評価

できたと、誰が確かめるか。

20〜25分難易度 ★★★(中級〜上級)最終更新: 2026年8月

自分が作ったものの評価を求められると、エージェントは自信をもって称賛します。だから「できました」は、それ自体では何の情報も持ちません。確かめる側を、作った側の外に置く必要があります。

Part 1の7層でいう L6 検証・可観測性 を扱います。ここが弱いと、「できたつもり」が通ってしまう——表面上は正常に完了し、結論だけが間違っている状態が生まれます。

この記事は、原理原則12箇条のうち 09「検証はエージェント自身以外に行わせ、環境の状態を採点する」 の各論にあたります。

1.応答文ではなく、環境の状態を採点する

評価設計で最初に決めるのは、何を読んで合否を出すかです。ここを間違えると、以降の作り込みがすべて無駄になります。

「返金を処理しました」応答文を採点する文面は丁寧か。手順に言及しているか。→ 合格実際には、何も処理されていない環境の状態を採点する返金レコードは実際に存在するか。金額と対象は合っているか。通れば、本当に終わっている応答文の採点は、「締めの一文の流暢さ」を測っているに等しい採点は、実行後の環境から直接読む。エージェント自身の申告を根拠にしない
図1応答文の採点は、「締めの一文の流暢さ」を測っているに等しい。採点は実行後の環境から直接読み、エージェント自身の申告を根拠にしない。

合格条件は、機械が判定できる形にします。テストが通るか、ビルドが成功するか、データベースに行があるか、ファイルが期待どおりの内容になっているか。エージェントに「自分で走らせて確かめられるもの」を渡せると、見張らなくてよいセッションになります。

逆に言えば

合格条件を検証できる形で書けないタスクは、まだエージェント化しないほうが安全です。採点できないものは、改善もできません。この判断はPart 7の Stage 00 で扱います。

2.1回できた と 毎回できる は、別の指標

デモが通ったのに本番で落ちる、という現象の多くは指標の取り違えで説明できます。

同じタスクを、同じ条件で 8 回走らせた結果。1 回目成功2 回目失敗3 回目成功4 回目成功5 回目成功6 回目失敗7 回目成功8 回目成功「1 回でも成功すれば合格」で見ると合格。コーディング補助のように、人がその場で選び直せる用途の指標。「k 回すべて成功して合格」で見ると不合格。無人で回す本番では、こちらが実際の信頼性にあたる。単発実行での回帰ゲートは、ほぼ意味がない。変更のたびに複数回試行し、統計的に判定する。合否と一緒に、その試行コストも見る。
図2「1回でも成功すれば合格」は、人がその場で選び直せる用途の指標。無人で回す本番の信頼性は「k回すべて成功して合格」で見る。

この違いが効くのは、回帰テストの設計です。変更のたびに1回だけ走らせて合否を出す運用は、ほぼ意味を持ちません。同じ変更を複数回試行し、統計的に判定する必要があります。合否と一緒に、その試行にかかったコストも見ておくと、後で「どこまで厳しくするか」を議論できます。

3.評価セットは、失敗から育てる

「まず評価セットを作りましょう」と言われて、机上で理想的なタスクを並べても、実際に起きる失敗とはずれます。順序が逆です。

01失敗を集めるトレースを100件以上02分類を立てる書いてから、後で命名03評価タスクにする再現できる形で20〜50件04CI に載せる変更のたびに複数回本番の失敗を、評価セットへ戻し続ける評価セットは、机上で「作る」ものではなく、失敗から「育てる」もの止めどきと、続けかた分類作りは、新しいカテゴリが 20 件連続で出なくなったら止める。以降は週 10〜20 件を見る。評点は 5 段階ではなく二値にする。「まあまあ」は、後から何も判断できない。
図3失敗トレースを100件以上集めて分類を立て、再現できる評価タスクを20〜50件作る。本番の失敗を評価セットへ戻し続ける。
  • 分類は<b>自由記述で書いてから、まとめて名前を付ける</b>。先にカテゴリを決めると、そこに当てはめてしまう。
  • 新しいカテゴリが<b>20件連続で出なくなったら</b>、分類作りは止める。以降は週10〜20件を見る。
  • 評点は<b>5段階ではなく二値</b>にする。「まあまあ」は、後から何も判断できない。
  • 評価に割く時間を惜しまない。実務家の間では、<b>開発時間の6〜8割をエラー分析に充てる</b>という水準が語られている。

スコアが 0% のときに疑うもの

多くの場合、モデルではなくタスクのほうが壊れています。採点の硬直(数値の丸め方の違いを不一致と判定するなど)や仕様の曖昧さを直しただけで、スコアが大幅に改善した例が報告されています。0% は「モデルが無能である証拠」ではなく「タスクを見直す合図」です。

4.審査員そのものを、先に検証する

採点をモデルに任せる(LLM-as-judge)のは実用的な手ですが、検証していない審査員は測定器ではありません。もう一つの意見が増えただけです。

人手でラベル100 件以上・保留しておく審査員に同じものを採点させる一致率を測る見逃しと、誤検知を別々に審査員を使うときの3つの規律1 観点につき、1 人の審査員「正確さと丁寧さと簡潔さ」を1人に聞かない「不明」を許す無理に二択にすると、曖昧なものが片側に寄る審査員を変えたら、測り直すモデルを上げただけで基準が動く検証していない審査員は、測定器ではなく「もう一つの意見」にすぎない。
図4人手ラベルを100件以上保留しておき、審査員に同じものを採点させて一致率を測る。見逃しと誤検知は別々に見る。

とくに注意が要るのが、「完了したと主張しているが、実際には状態が伴っていない」という失敗の検知です。この型は応答文が正常に見えるため、審査員にとっても難しい部類になります。ここは審査員に頼りきらず、環境の状態を直接読む採点と併用するのが安全です。

5.評価環境は、エージェントにとって敵対的である

見落とされがちですが、エージェントは「採点される」という状況にも適応します。タスクを解かずに満点を取る経路が実際に報告されています。

同じ環境に置くとエージェント正解ファイルタスクを解かずに、読んで答える分離するとエージェント採点器到達不可結果だけが、境界を越えるベンチマークは、エージェントにとって敵対的な環境である解かずに満点を取る経路が実際に報告されている。採点器はファイルシステムもプロセスも分ける自社の評価環境でも同じ。「評価用の期待値」がエージェントから読める場所にないかを、最初に確認する。
図5正解ファイルがエージェントから読める場所にあると、タスクを解かずに答えられてしまう。採点器はファイルシステムもプロセスも分離する。

自社の評価環境でも同じ確認が要ります。「期待値」がエージェントから到達できる場所にないか。設定ファイル、テストの固定値、ログ、環境変数——どれも経路になり得ます。評価を作ったら、まずここを見てください。

6.実行環境の設定だけで、スコアは動く

もうひとつ、スコアを読むときの前提です。スコアはモデル単体の性質ではありません

同じモデル・同じハーネス。違うのは、割り当てたリソースだけ。控えめな割り当てスコア余裕を持った割り当てスコア報告されている差実行環境の設定を変えただけで 6 ポイント動いた(統計的に有意)。一方、控えめな範囲での増減は誤差だった。運用ルール — 3 ポイント未満の差は誤差として扱い、設定はスコアと一緒に公開する
図6同じモデル・同じハーネスでも、割り当てたリソースを変えるだけでスコアが動く。3ポイント未満の差は誤差として扱う。

報告されている例では、実行環境の設定を変えただけでスコアが6ポイント動きました(統計的に有意)。一方、控えめな範囲での増減は誤差の範囲でした。運用ルールとしては、3ポイント未満の差を有意と扱わないこと、そして測定時の設定をスコアと一緒に記録・公開することになります。

この話はPart 7の「ベンチマーク値は自社に移植されない」につながります。

7.後から辿れるログを、先に設計する

評価が「合否」を出すものだとすれば、可観測性は「なぜそうなったか」を出すものです。後から足すのが最も難しい部類なので、最初に決めます。

残すべき4種類ツール呼び出し引数・出力・所要時間・再試行回数・エラー推論どのモデルで、入力/出力/キャッシュのトークン数状態遷移前後の作業状態 — これが後の再現と原因特定を可能にするメモリ操作何を、どの名前空間に、誰の判断で書いたか本文の扱いは、別に決める入出力の本文は既定で残さず、必要な範囲だけ明示的に有効化する。個人情報と、量の両方の問題があるため。
図7ツール呼び出し・推論・状態遷移・メモリ操作の4種類を残す。とくに状態遷移が、後の再現と原因特定を可能にする。

共通の語彙としては、生成AI向けのトレース規約が整備されつつあります。ただし仕様はまだ開発中の位置づけなので、採用する場合はバージョンを固定し、変更に追随する前提で扱ってください。

入出力の本文をどこまで残すかは、別に決めます。既定では残さず、必要な範囲だけ明示的に有効化する。個人情報の問題と、単純に量の問題の両方があるためです。

8.失敗を、評価へ戻す

ここまでを一本の輪にすると、こうなります。

本番で動くトレースを記録失敗を拾う自動で候補に上げる評価セットへ昇格再現できる形にするCI ゲート通ったものだけが、本番へ戻るこの輪が閉じていないと、同じ失敗を何度も繰り返す拾う → 昇格させる → ゲートにする。どれか1つが手作業だと、輪は回らなくなる評価セットは資産である。増え方が止まったら、拾えていないだけの可能性を疑う。
図8本番の失敗を拾い、評価セットへ昇格させ、CIゲートに戻す。どれか1つが手作業だと、輪は回らなくなる。

評価セットは資産です。増え方が止まったら、直ったのではなく拾えていない可能性を疑います。本番で起きている失敗が評価に反映されていない状態は、静かに悪化していきます。

9.アンチパターン早見表

ここまでの内容を、実装で見かける形にして並べます。

よくある実装何が問題かどうするか
生成した本人に採点させる自分の成果を、自信をもって称賛する生成と評価を分け、環境の状態を直接調べる
応答文(トランスクリプト)を採点する「締めの一文の流暢さ」を測っているに等しい実行後の環境の状態で合否を出す
CI で1回だけ実行して合格判定毎回成功する確率は、1回成功する確率よりずっと低い複数回試行し、統計的に判定する
評価セットを机上で作る実際に起きる失敗と、ずれる本番の失敗トレースから育てる
審査員(LLM judge)を検証せずに使う測定器ではなく「もう一つの意見」にすぎない保留した人手ラベルで、見逃しと誤検知を測る
1人の審査員に複数の観点を聞く観点が混ざり、どれで落ちたか分からない1観点につき1審査員。「不明」を許す
採点器をエージェントと同じ環境に置くタスクを解かずに正解を読んで満点を取れるファイルシステムもプロセスも分離する
ベンチマーク値をモデルの性能として扱うスコアは モデル×ハーネス×実行環境×採点器 の関数自社ハーネスで測り直し、設定も一緒に記録する
書き込みだけをログに残す状態遷移が無く、後から再現も原因特定もできない状態遷移とメモリ操作も記録する

Summary

この記事の要点

  1. 1自分が作ったものを採点させると、エージェントは自信をもって称賛する。確かめる側を、作った側の外に置く。
  2. 2応答文ではなく、実行後の環境の状態を採点する。合格条件は機械が判定できる形にする。
  3. 3「1回できた」と「毎回できる」は別の指標。無人で回す本番の信頼性は、k回すべて成功で見る。
  4. 4単発実行での回帰ゲートはほぼ意味がない。複数回試行して統計的に判定する。
  5. 5評価セットは机上で作らず、本番の失敗から育てる。分類は新カテゴリが20件連続で出なくなったら止める。
  6. 6評点は二値にする。「まあまあ」は後から何も判断できない。
  7. 7スコア 0% は、モデルではなくタスクが壊れている合図であることが多い。
  8. 8審査員(LLM judge)は、保留した人手ラベルで検証してから使う。1観点1審査員、「不明」を許す。
  9. 9採点器はエージェントから到達できない場所に置く。評価環境は敵対的である。
  10. 10スコアは モデル×ハーネス×実行環境×採点器 の関数。実行環境の設定だけで6ポイント動く。3ポイント未満は誤差。
  11. 11ログは状態遷移まで残す。これが後の再現と原因特定を可能にする。本文は既定で残さない。
  12. 12本番の失敗を評価セットへ戻す輪を閉じる。増え方が止まったら、拾えていないだけの可能性を疑う。

Sources

出典・参考文献

本記事は、以下の一次資料をもとに整理しています。数値・仕様は各出典の公開時点のものです。

本記事では、追試が確立していない数値の引用を避けています。機序(なぜそうなるか)は設計判断に使えますが、2026年の知見にはプレプリントやベンダーの自己申告が多く含まれるためです。

FAQ

よくある質問

応答文ではなく、実行後の環境の状態を採点します。「返金を処理しました」という文面は、実際には何も処理されていなくても流暢に書けます。返金レコードが実際に存在するか、金額と対象が合っているかを、環境から直接読んで判定します。エージェント自身の申告を根拠にしないのが原則です。

自分が生み出した成果物の評価を求められると、自信をもって称賛する傾向が報告されています。生成する側と評価する側を分けることが、評価設計で最も効くレバーのひとつです。可能なら、評価は静的なレビューではなく、実際に動かして環境の状態を確かめる形にします。

pass@1 は「1回でも成功すれば合格」、pass^k は「k回すべて成功して合格」です。前者は人がその場で選び直せるコーディング補助の指標で、後者は無人で回す本番の信頼性の指標です。同じタスクを8回走らせて6回成功なら、前者では合格ですが後者では不合格です。単発実行での回帰ゲートはほぼ意味を持ちません。

机上で作るのではなく、実際の失敗から育てます。本番や試用のトレースを100件以上集めて分類を立て、再現できる評価タスクを20〜50件作るところから始めます。分類作りは新しいカテゴリが20件連続で出なくなったら止め、以降は週10〜20件を見ます。評点は5段階ではなく二値にします。「まあまあ」は後から何も判断できないためです。

多くの場合、タスクのほうが壊れています。採点の硬直(数値の丸め方の違いを不一致と判定するなど)や仕様の曖昧さを直しただけで、スコアが大幅に改善した例が報告されています。0% は「モデルが無能である証拠」ではなく「タスクを見直す合図」として扱ってください。

そのままは使えません。スコアはモデル単体ではなく、モデル × ハーネス × 実行環境 × 採点器の関数です。実行環境のリソース設定を変えただけでスコアが6ポイント動いた報告があり、3ポイント未満の差は誤差として扱うのが妥当とされています。自社のハーネスで測り直し、測定時の設定をスコアと一緒に記録してください。

実行基盤を、自社で持ちたい方へ

homulaは、AIエージェント実行基盤の要件定義から設計・構築・運用までを支援しています。評価と受入条件の設計は、開発に入る前に定めておくべき領域です。