Evals — систематические оценки AI-системы — это набор задач, scorers и процедур сравнения, которые измеряют качество системы не на одном красивом примере, а на контролируемом распределении типичных, сложных, граничных и критичных кейсов.
Evals измеряют систему; №40 Eval-Driven Optimization использует результаты Evals, чтобы выбирать и подтверждать изменения. №45 проверяет один request/result; Evals — набор задач. №46 фиксирует runtime telemetry; Evals запускают controlled cases и scorers. №48 задаёт policy boundaries; Evals проверяют их соблюдение. №92 измеряет marginal contribution; eval suite — среда измерения.
Prerequisites: №40, №45, №46. Foundations: №23, №34, №39. Future references: №84, №92, №94 — implementation/detail references, не обязательные prerequisites.
REQUEST-TIME RUNTIME: NO. OFFLINE / DESIGN-TIME: YES, основное место. CONTROL PLANE: YES — release gates и сравнение экспериментов. DATA PLANE: INDIRECT — traces/cases могут питать datasets, runner не входит в критический request path. LIVES IN: R08 Quality Engine.
Success: воспроизводимый run, зафиксированные dataset/scorer/system versions, scores всех required cases, segment/regression results и объяснимое baseline-vs-candidate решение. Retryable: transient timeout, runner/worker или external dependency failure. Permanent: malformed case, broken scorer, missing artifact, incompatible schema/version, invalid dataset config.
Idempotency/state: stable eval_run_id/version отличает rerun; сохраняются dataset/scorer/system versions, case/segment results, errors, cost/latency и release decision. Metrics: duration, cost, segment pass/fail, scorer disagreement, regressions, flaky rate, failure reasons. Security: redaction/access/retention для production-derived data; secrets не хранятся в cases; adversarial cases — untrusted input.
Evals не владеют request-time verification (№45), production tracing (№46), optimization loop (№40), policy enforcement (№48), model serving (№70), business KPI framework (№84–94) или всей release infrastructure. Они отвечают за CONTROLLED MEASUREMENT OF SYSTEM BEHAVIOR ACROSS VERSIONED TASK SETS.
candidate ↓ schema? evidence? constraints? tool outcome? ↓ PASS / REVISE / FAIL / UNCERTAIN
Работает внутри конкретного runtime.
dataset ↓ system version A system version B ↓ scores segments regressions cost ↓ compare
Измеряет system behavior статистически/системно.
Частые реальные task families и input shapes.
Каждая серьёзная исправленная ошибка становится тестом на будущее.
Empty, huge, contradictory, unusual formats, rare combinations.
Нарушение permissions, wrong side effect, unsupported material claim.
Conflicts, bad evidence, injection-like content, deceptive tool output.
Проверяет способность не просто запомнить benchmark patterns.
{
"case_id": "EV47-118",
"task_type": "claim_verification",
"input": {...},
"risk": "medium"
}
{
"must_include": ["evidence_refs"],
"must_not": ["unsupported_claim"],
"expected_tool": "research"
}
{
"segment": ["research","pdf"],
"source": "production_failure",
"difficulty": 3,
"created_at": "..."
}
[ "schema_pass", "evidence_coverage", "task_success", "cost" ]
| Scorer | Когда нужен | Надёжность |
|---|---|---|
| Exact match / parser | IDs, labels, exact fields | Очень высокая |
| Schema validator | Structured outputs/contracts | Очень высокая |
| Rule / constraint checker | Policies, business rules, invariants | Очень высокая при верной формализации |
| Code / unit tests | Executable outputs | Очень высокая |
| Evidence coverage | Research/factual answers | Высокая при хорошей claim mapping |
| LLM judge | Semantic quality, style, usefulness | Средняя, требует calibration |
| Human expert | Golden set/high-risk/calibration | Высокая, но дорого |
| Business outcome | Production effectiveness | Высокая ценность, сложная attribution |
clarity completeness semantic relevance trade-off quality style adherence
exact arithmetic schema validity real tool success current factual truth formal constraints
compare judge against: human labels objective checks known positives known negatives
randomize order hide system identity normalize verbosity use clear rubric track disagreement
Правильность содержания/действия.
Все ли required parts присутствуют.
Поддержаны ли factual claims.
Нет ли hard violations.
Решает ли output реальную исходную задачу.
baseline: 0.87 candidate: 0.89 looks better
simple: +0.04 research: +0.03 tool-use: +0.02 high-risk: -0.11
global ↑ but high-risk ↓ release: BLOCK or narrow rollout
task_type risk language modality model_route tool_path context_size source_type
agent ignored one hard constraint root cause: state field omitted from context
case: same failure pattern + variants expected: constraint never violated future releases: must pass
| Что оценивать | Пример | Почему важно |
|---|---|---|
| Final task success | Задача реально выполнена | Главный end-to-end outcome |
| Tool selection | SQL выбран вместо calculator | Wrong path может случайно дать plausible answer |
| Evidence path | Использованы релевантные источники | Нужна groundedness |
| Replans/retries | Не было бессмысленных loops | Efficiency/reliability |
| Escalation | Strong model вызван только когда нужен | Adaptive cost |
| Side effects | Action выполнен один раз и с approval | Operational safety |
| State consistency | Runtime state соответствует фактам | Long-horizon reliability |
fixed cases reproducible runs known scorers baseline comparison cheap iteration
Лучший слой для release gates и experiments.
real traffic real latency real users business outcome unexpected cases
Нужен для проверки distribution shift и реальной ценности.
| Пара | Evals | Соседнее понятие |
|---|---|---|
| Evals ↔ Verification | Dataset-level measurement across system versions | Request-time check одного result |
| Evals ↔ Observability | Controlled quality measurement | Telemetry реальных runs |
| Evals ↔ Eval-Driven Optimization | Измерительный механизм | №40 использует evals, чтобы менять систему |
| Evals ↔ Benchmark | Может быть internal, dynamic, task-specific | Benchmark часто фиксированный публичный набор |
| Evals ↔ Feedback | Заранее заданные/curated test signals | Feedback приходит из interaction/outcome |
| Evals ↔ Metrics Dashboard | Генерирует quality results | Dashboard визуализирует metrics/results |
same 100 cases used for: prompt tuning router tuning model selection skill changes every week
dev score ↑ production score: flat because: system adapted to benchmark
dev set holdout fresh samples production failures periodic refresh synthetic variants
do not optimize forever against the same visible test set
50–200 important cases not: 10,000 random prompts
typical known failures edge critical small adversarial set
objective scorers first semantic judge only where needed
baseline candidate segments cost regressions decision
{
"eval_run": "ER47-88",
"dataset": "core-agent-v12",
"system_version": "runtime-v31",
"baseline": "runtime-v30"
}
{
"task_success": 0.918,
"schema_pass": 0.992,
"evidence_score": 0.903,
"cost_per_success": 1.41
}
{
"research": +0.04,
"tool_use": +0.01,
"high_risk": -0.02
}
{
"status": "BLOCKED",
"reason":
"high_risk regression",
"next":
"investigate segment"
}
Eval состоит из красивых примеров, где система заведомо сильна.
Все критерии отданы одному LLM judge, даже когда возможны objective checks.
Global average скрывает critical regression.
Cases, на которых оптимизировали prompt/model, считаются независимым test.
Непонятно, какой dataset/scorer/system config породил score.
Score публикуется, но не влияет на release, rollback или optimization decisions.
| Метрика | Что показывает | Желаемый эффект |
|---|---|---|
| Production Correlation | Связан ли eval score с реальным production quality | Высокая |
| Regression Detection Rate | Ловит ли suite реальные regressions до release | Растёт |
| Scorer Agreement | Совпадает ли automated scorer с trusted human/objective labels | Высокое |
| Coverage by Task Segment | Какие важные зоны представлены | Без критичных gaps |
| Fresh Case Rate | Добавляются ли новые production failures/distribution shifts | Стабильно |
| False Release Rate | Сколько releases прошли eval, но ухудшили production | Снижается |
| Eval Cost | Цена полного suite | Контролируется через tiers/sampling |
EVALS
НЕ ОЗНАЧАЮТ:
"У НАС ЕСТЬ
100 PROMPTS
И СРЕДНИЙ SCORE"
ОНИ ОЗНАЧАЮТ:
REAL SYSTEM GOALS
↓
TASK DISTRIBUTION
↓
BUILD DATASET:
TYPICAL
FAILURES
EDGE
HIGH-RISK
ADVERSARIAL
NOVEL
↓
DEFINE
EXPECTED PROPERTIES
↓
CHOOSE SCORERS:
EXACT
SCHEMA
RULES
TESTS
EVIDENCE
LLM JUDGE
HUMAN
BUSINESS OUTCOME
↓
FREEZE VERSIONS
↓
RUN BASELINE
↓
RUN CANDIDATE
↓
COMPARE:
QUALITY
HARD VIOLATIONS
COST
LATENCY
TRAJECTORY
↓
SEGMENT:
TASK
RISK
LANGUAGE
MODALITY
MODEL ROUTE
TOOL PATH
↓
REGRESSION?
├─ YES → BLOCK / INVESTIGATE
└─ NO
↓
HOLDOUT?
├─ FAIL → OVERFIT
└─ PASS
↓
RELEASE DECISION
↓
PRODUCTION
↓
NEW FAILURES
↓
ADD REGRESSION CASES
↺
VERIFICATION:
IS THIS RESULT ACCEPTABLE?
EVALS:
HOW DOES THIS SYSTEM
BEHAVE ACROSS TASKS?
OBSERVABILITY:
WHAT ACTUALLY HAPPENED
IN PRODUCTION?
EVAL-DRIVEN OPTIMIZATION:
WHAT SHOULD WE CHANGE
BASED ON THE RESULTS?
THE CORE PRINCIPLE:
YOU CANNOT
SYSTEMATICALLY IMPROVE
WHAT YOU CANNOT
RELIABLY MEASURE.
GOOD EVALS
TURN AI DEVELOPMENT
FROM
"SEEMS BETTER"
INTO
"MEASURABLY BETTER,
ON THESE TASKS,
AT THIS COST,
WITH THESE RISKS."
Scope: Evals remain the deterministic evidence gate for skills, memory, instincts, hooks, adapters and optional cognitive mechanisms. Context is a bounded cache; durable evidence lives in registries/artifacts.
Hooks/contracts: use POST_MODEL, POST_TOOL, TASK_COMPLETED, FAILURE and MEMORY_CONSOLIDATION; schemas are illustrative and provider-neutral.
Security/task profiles: host-side enforcement, scoped memory, feature flags and MINIMAL/STANDARD/STRICT enforcement remain independent from FAST/STANDARD/DEEP modes. No learned rule bypasses policy or evals.
Ablation: every optional mechanism is tested WITH/WITHOUT and measured by quality, acceptance, correction, cost, latency, escalation and severe errors. See the ECC retrofit specifications.