Skip to main content

Agent Evaluation

Agent Evaluation は、LLM 単体評価と違い、環境との相互作用、tool use、長期 task、副作用 を扱う必要があります。Benchmark 設計と metric は急速に進化している領域です。

何を測るか

Task success最終目標達成率
EfficiencyStep 数、tool 呼び出し回数
CostToken、API call、$ コスト
Latency完了までの時間
RobustnessDistractor、noisy env への耐性
Safety不可逆操作、injection 耐性

代表的 benchmark

Benchmark領域
SWE-Bench (Verified, Lite, Multimodal)実 GitHub issue 解決
GAIA一般 assistant task
AgentBench多領域 agent 統合
WebArena自律 web operation
VisualWebArena視覚 web agent
Mind2Web多サイト web automation
OSWorldOS 操作
tau-benchTool use + dialogue
ToolBenchAPI 呼び出し
ALFWorld / SciWorldText-based simulated env

評価が難しい理由

  • 環境が動的: 同じ task でも実行ごとに異なる結果
  • 複数の解法: 「正しい」解が一意でない
  • 副作用: 環境を壊すと再現困難
  • コスト: agent run が高価
  • Noise: API / web site / model 出力の確率性
  • Contamination: training data に benchmark が混入

Evaluation harness

Production agent では、独自 evaluation harness を持つことが多いです。

特に regression detection (新 model で既存 task が壊れていないか) が重要です。

LLM-as-a-Judge for agents

Agent の trace 全体を LLM が判定する形式が広く使われます。

  • Step-level: 各 action が妥当か
  • Final answer correctness
  • Efficiency (step 数、unnecessary tool 呼び出し)
  • Safety (危険な action がなかったか)

Self-preference bias や verbosity bias に注意が必要です。

数式で見る agent evaluation

Agent evaluation では、task Ti\mathcal{T}_i に対する success indicator Si{0,1}S_i\in\{0,1\} を集計することが多いです。

SuccessRate=1Ni=1NSi\mathrm{SuccessRate}=\frac{1}{N}\sum_{i=1}^{N}S_i

ただし、agent task では成功率だけでは不十分です。Tool call cost、時間、失敗時の副作用も重要です。Cost-aware score は概念的に次のように書けます。

Score=1Ni(SiλCi)\mathrm{Score}=\frac{1}{N}\sum_i \left(S_i-\lambda C_i\right)

ここで、CiC_i は token 数、tool call 数、実行時間、API cost などをまとめた cost です。この式の気持ちは、「成功すればよいだけではなく、少ない手数で安全に成功する agent を評価したい」というものです。

また、stochastic な agent では同じ task を複数 seed で実行し、分散も見る必要があります。

p^i=1Kk=1KSi,k\hat{p}_i=\frac{1}{K}\sum_{k=1}^{K}S_{i,k}

p^i\hat{p}_i は task ii に対する成功確率の推定値です。一回だけの成功・失敗では、agent の安定性を見誤ることがあります。

関連ページ

主なソース