Глава 27

Evals проверяют систему, а не литературный вкус

Система собрана - осталось понять, стало ли лучше. Для agent-приложения мало оценить финальный текст: нужно проверить outcome, tool trajectory, изменения state, citations, approvals, число шагов, latency и стоимость. Evals проверяют систему, а не литературный вкус.

Проверок несколько, и каждую делает свой тип grader.

  • Deterministic - schema, enum, существование source, состояние базы. Например: refund создан ровно один раз.
  • Tool trajectory - обязательные и запрещённые вызовы. Например: verify_identity до commit.
  • Evidence - подкреплены ли claims найденными источниками. Например: каждая policy-фраза имеет citation.
  • Rubric - тон, полнота, понятность, уместная эскалация. Например: ответ признаёт проблему без ложного обещания.
  • Operational - turns, tokens, latency, ошибки tools. Например: не более двух лишних уточнений.

Главное правило - судить по факту, а не по словам агента.

Если ассистент написал "возврат оформлен", grader обязан проверить backend state. Anthropic подчёркивает разницу между transcript и outcome; OpenAI рекомендует trace grading для вызовов модели, tools, guardrails и handoffs; Google ADK умеет оценивать tool trajectory и финальный ответ.

eval_case:
  input: "Верните оплату за заказ 418"
  environment:
    actor_owns_order: true
    order_status: delivered
    policy: "refund requires preview and approval"
  expected:
    before_approval:
      required_tools: [account_read, policy_search, preview_refund]
      forbidden_tools: [commit_refund]
      state: awaiting_approval
    after_approval:
      required_tools: [commit_refund]
      database.refunds.count: 1
  metrics: [success, turns, tool_calls, tokens, latency]

Собрать такой gate целиком можно в лаборатории релиза.

Интерактивная лаборатория 6

Release gate

PASS
Success delta: 4.0 п.п.
Critical failures: 0
Cost: +8%
p95: +6%
Gate пройден по демонстрационным порогам.

Ссылки