0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AIエージェントの評価を実装する:Evalsの3層構造とpytest設計

0
Posted at

※本稿は、当方ブログの紹介です。全文はこちらへどうぞ。
https://shinichi.noguchi.jp.net/blog/2026-09-05-agent-evals-in-production.html

AIエージェントを本番運用すると、「プロンプトを少し変えただけでツールの呼び出し順が変わった」「モデルを更新したら、回答の再質問率が上がった」という問題が起きます。通常の単体テストだけでは、自然言語の品質や、複数ステップのエージェントの挙動までは十分に検証できません。

そこで必要になるのがEvalsです。Evalsは、AIエージェントの出力・ツール利用・本番挙動を継続的に評価する仕組みです。この記事では、実装を次の3層に分けて説明しています。

1. 決定性テスト

ツール選択、引数、JSONスキーマ、禁止操作の有無など、正解を比較的明確に定義できる部分を自動テストします。Pythonのpytestで、期待するツール列と実際のトレースを比較すれば、プロンプト変更による基本的な回帰を早期に検出できます。

2. ルーブリック採点

自然言語の回答は、完全一致ではなく評価基準を定義します。正確性、根拠の明示、指示への適合、安全性などを0〜2点で採点し、LLM-as-Judgeを補助的に使います。ただし、LLM-as-Judgeには自己選好、位置バイアス、長さバイアスがあります。被評価モデルとは別系列のジャッジを使い、提示順を反転し、人間の判定で定期的に校正することが重要です。

3. オンライン評価

評価用データセットだけでは、現実の利用状況の変化を見逃します。本番では、再質問率、途中離脱率、人手へのエスカレーション率、ツール失敗率、1タスクあたりのステップ数などを観測します。モデルを変えていなくても指標が悪化した場合、入力分布や業務ルールが変わった可能性があります。

最小構成は「タスク定義→ランナー→採点器→レポート」です。CIでは少数のスモークセットを毎回実行し、全量評価は夜間バッチに分けるとコストを抑えられます。重要タスクは100%維持、通常タスクはpass@1の低下幅を閾値化するなど、平均点だけでなく重大度ごとのゲートを設けます。

モデル更新時は、いきなり全利用者へ展開しません。同じEvalsスイートで現行モデルと候補モデルを比較し、シャドー運転、カナリア投入、全量展開の順に進めます。ベンチマークのスコアが高くても、自社の業務タスクの成功率が高いとは限らないためです。

AIエージェントの評価は、後付けの監査ではなく、プルリクエストとモデル更新に組み込むべき開発工程です。決定性テスト、ルーブリック採点、本番ドリフト検出を役割分担させることで、「一度動いたから本番へ」から「変化を検知できるから運用できる」へ移行できます。

※2026年9月時点の公開情報と一般的な実装パターンに基づきます。

本文:https://shinichi.noguchi.jp.net/blog/2026-09-05-agent-evals-in-production.html

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?