なぜエージェントの評価は難しいのか

チャットAIの評価は、突き詰めれば「入力に対する出力」の採点でした。エージェントの評価が難しくなるのは、そこに3つの困難が加わるからです。

Point

「一度動いた」は信頼性の証明にはなりません。経路・繰り返し・判定という3つの困難を前提に、評価そのものを設計し直す ― これが運用の出発点です。

評価は3つの層で測る ― 結果・軌跡・本番

「完遂したか」だけを見ていると、上のような「たまたま成功」を弾けません。何を達成したか(結果)・どう達成したか(軌跡)・本番でどう振る舞うかの3層に分けて測るのが実務の基本です。

層何を測るか主な指標
➀ 最終結果タスクが完遂されたかタスク完遂率。エージェントの「完了しました」という自己申告を信じず、作られたはずのレコード・ファイル・状態を機械的に検証する
➁ 軌跡どう完遂したかツール呼び出しの正しさ、ステップ数、無駄な再試行やループの有無、禁止操作がゼロか、エラーからの回復
➂ 本番実トラフィックでの振る舞い完遂率の推移、人による差し戻し率、エスカレーション率、コスト/タスク、利用者評価

鍵は➀の判定を終了状態の機械検証で行うことです。「正しい文面を返したか」ではなく「下書きが1件できているか/何も書き込まれていないか」を確認できれば、判定はそのまま自動化できます。➀に➁の軌跡と➂の本番指標を重ねて、はじめて信頼性を語れるようになります。

ゴールデンタスク ― 「何回中何回動いたか」で語る

評価は一度きりの試験ではなく、育てて回し続ける運用です。その中核になるのがゴールデンタスクセット ― 代表的なタスクと「期待する終了状態」をセットにした正解集合です。作り方には決まった順序があります。

  1. 4区分を最初から揃える。正常系だけでなく、エッジケース、拒否すべきタスク、敵対的入力(注入など)を含めます。件数は10件からでも始められますが、件数の多さより4区分が揃っていることを優先します。目安は正常5・エッジ3・拒否1・敵対的1程度の比率です。
  2. 期待値は終了状態で書く。「経費精算の下書きが1件作成され、勘定科目が旅費交通費である」「いかなる書き込みも発生せず、範囲外である旨の応答が返る」のように、出力文面ではなく何が起きた/起きなかったかで書きます。拒否・敵対的の期待値は「何が起きないか」で表現します。
  3. 繰り返し実行で測る。各タスクを1回でなく複数回(例:4〜8回)走らせ、「全回成功した割合」を信頼性の指標にします。「10回中10回」なのか「10回中7回」なのかで、任せてよい範囲はまったく変わります。
  4. 本番の失敗を還流して育てる。本番で起きた失敗・差し戻し・上限の発火事例を週次でセットに追加し、四半期に一度は陳腐化したタスクを棚卸しします。
Point

ゴールデンタスクは一度作って終わりの資料ではなく、育て続ける資産です。「拒否すべき」「敵対的」をゼロにしたまま自律性のレベルを上げてはいけません。モデルやプロンプト、ツールを変更するたびに、模擬環境(サンドボックス)でこのセットを回して回帰を確認します。

すべての実行を記録する ― トレースと監査ログ

評価が「毎回動くか」を測るものだとすれば、トレースは「今日、実際に何をしたか」を残すものです。1タスク=1トレースを原則に、計画から各ツール呼び出し(ツール名・引数・結果・所要時間・コスト)、途中判断、最終結果までを時系列で1本に記録します。運用担当が押さえるべき論点は4つです。

数字で見張る ― ダッシュボードとコストの上限

トレースが貯まっていれば、運用ダッシュボードは「集計して並べるだけ」になります。逆に出せない指標があれば、それはトレース設計の穴です。項目は5区分で1画面に収めるのが目安です。

区分指標の例見方・頻度
信頼性タスク完遂率/評価セットの全回成功率低下トレンドはモデルや入力データ変化のサイン。週次
品質差し戻し率/人へのエスカレーション率急増は品質劣化、ゼロ張り付きは承認の形骸化疑い。週次
コストコスト/タスクの中央値・外れ値件数外れ値はアラートで即時通知。日次
安全禁止操作の検知件数/敵対的テストの通過率検知件数は常時ゼロが正常。1件でも即調査
挙動ステップ数の分布/上限の発火件数分布が右に伸び始めたらループ増加の予兆。週次

勘所は「眺める監視は続かない」ことです。人は毎日画面を見続けられません。閾値を決めてアラートに任せ、人は外れ値と月次レビューに集中するのが現実的です。

コストで見るべき単位は「1呼び出し」ではなく「1タスク=多段呼び出し」です。ループや再試行で桁が容易に変わるため、コスト/タスクを標準指標にして外れ値を自動検知します。そして暴走と静かな積み上がりの両方を捕まえるために、上限を多段で設けます。上限は勘で置かず、平均単価から導くのが定石です。

階層設定の考え方発火時の対応
タスク上限平均単価の数倍(例:5倍)。正常なばらつきは通し、暴走だけ止める経過を添えて人へ
部門の日次上限月額から1日あたりを逆算。少額タスクの静かな積み上がりを検知運用担当へ通知
全体の月次上限月予算の少し上を最後の砦に全体停止+原因調査

重要なのは、上限を「設定した」で終わらせないことです。実際に発火するかを定期テストで確かめ、「効いている」ことを確認します。平均単価はモデル更新やプロンプト変更で動くため、上限も再計測とセットで見直します。

インシデントの初動5ステップ ― 速さが被害を決める

エージェントのインシデントは「誤った実行の連鎖」です。被害の大きさは、当日の頑張りよりも初動の速さと平時の設計で決まります。手順は次の5ステップに固定しておきます。

  1. 検知。多くの場合、最初に異常を教えるのは内容ではなく「量」です。コスト/タスクの外れ値アラートが、質の異常より先に鳴ります。コスト監視は財布の管理を超えた検知網になります。
  2. 止める。kill switchで該当エージェントを即時停止します。原因が分からなくても構いません。判断に迷う間は止める側に倒すのが原則です。
  3. 隔離・特定する。トレースから、きっかけ(注入疑いの確認)・実行された操作の全リスト・影響範囲を洗い出します。あわせて原因となったデータやツールを隔離します。
  4. 原因特定と復旧(戻す)。実行済みの操作をロールバックします。戻せるかどうかは設計時にほぼ決まっており、下書き止まりや取り消し可能な実装であれば、復旧は削除や取り消しだけで済みます。戻せない操作は連絡・訂正フローへ回します。
  5. 再発防止(封じる)。該当ケースを敵対的テストに追加して回帰で防ぎ、上限・権限・自律性レベルを見直します。

架空のモデルケースで考えてみます。ある請求書処理エージェント(下書き止まりの権限設定)が、受領PDFに埋め込まれた注入指示に反応したとします。最初の検知はコスト/タスクの外れ値アラート、原因不明のまま数分でkill switch、トレースで支払先マスタの変更下書きが複数件と特定、確定データへの書き込み権限がそもそも無かったため復旧は下書きの削除だけ ― という流れです。被害を限定したのは事後の対応力ではなく、下書き止まりの設計・量の異常を捉える検知網・「誰がどの条件で止めてよいか」を決めた停止訓練という、すべてインシデント前に仕込まれた備えでした。四半期に一度、kill switchと初動手順を実際に流す停止訓練を運用に組み込んでおくことをおすすめします。

まとめ ― 定着させ、FAQで支える

評価・監視・インシデント対応の型は、作っただけでは形骸化します。運用開始前と定期レビューで確認するチェックリストを用意し、1つでも空欄があればそこを次の整備対象にする ― この地道な運用が「毎回動く」を支えます。現場で必ず出る問いには、あらかじめFAQで答えを用意しておくと定着が早まります。

設計し、防御を固めて本番に載せたエージェントを、測り・記録し・止められる状態で回し続ける ― それがここまでのすべてです。次回は、代表的なユースケースごとに、どこから着手し何を成熟の目安にするかをまとめたプレイブックを解説します。

本文中のモデルケース・数値例(件数・比率・コスト・時間など)は、説明のための架空のものであり、実在の企業・団体・製品とは関係ありません。記載内容は2026年7月時点の情報に基づきます。価格やモデルの前提は今後変わり得ます。