Evaluation · Evaluation · урок 4 · 12 мин
Benchmarks и инструменты оценки
Benchmarks and eval tooling
ТемыEvals
Зачем
После урока ты будешь знать главные benchmarks (наборы задач для сравнения моделей) для агентов, особенно τ-bench, понимать, почему высокий балл модели ничего не говорит о твоём агенте, и уметь разложить свой eval на понятия Inspect: dataset, solver, scorer. На собеседовании это вопросы «which benchmarks do you trust?» и «what eval tooling would you pick?».
Что benchmark доказывает и чего нет
Публичные benchmarks сравнивают модели. Они не проверяют твоего агента. Три причины: - Другая задача. У тебя свои tools, своя политика, свои языки и свои клиенты. Балл на чужих задачах переносится на твои плохо. - Contamination (загрязнение). Задачи benchmark попали в данные обучения модели, и балл меряет память, а не умение. - Saturation (насыщение). Сильные модели упираются в потолок, и разница в пару пунктов уже ничего не различает.
Ещё одна ловушка, которая касается и твоих evals: reward hacking — агент учится удовлетворять grader, а не решать задачу. Классический пример: вместо исправления кода агент правит тест, который проверяет этот код.
Карта benchmarks для агентов
| Benchmark | Что меряет | Как оценивает |
|---|---|---|
| SWE-bench | исправление реальных GitHub issues | тесты самого репозитория |
| Terminal-Bench | работа в командной строке | проверка состояния среды |
| WebArena, OSWorld | управление веб-сайтами и рабочим столом | проверка итогового состояния |
| GAIA, BrowseComp | поиск и исследование в вебе | сверка с эталонным ответом |
| τ-bench | разговор с клиентом по политике, с tools | состояние базы в конце |
SWE-bench — 2 294 задачи из 12 популярных Python-репозиториев. В статье 2023 года лучшая модель решала 1,96% задач. Версия Verified — 500 задач, отобранных людьми, — та, что сейчас приводят в отчётах, и по состоянию на 29.09.2026 она в основном насыщена. Senior SWE-Bench (Snorkel AI, Princeton, UW-Madison, 2026) оценивает то, что unit tests пропускают: размытые запросы, исследование кода, сопровождаемость, соответствие конвенциям проекта; лучшая frontier-модель проваливает больше 65% задач (данные на 29.09.2026). Путь от 1,96% в 2023 году до насыщения Verified к 2026 году — хорошая иллюстрация того, как быстро стареют benchmarks.
С безопасностью агентов хуже: обзор 40 benchmarks по безопасности агентов (arXiv, апрель 2026) не нашёл согласия рангов между ними — Kendall's W = 0,10 при p = 0,94, то есть на уровне случайности. Выбор benchmark может дать противоположные выводы о том, какая модель безопаснее. Иметь продуманное мнение об этом на собеседовании ценно.
τ-bench: тот, который стоит знать лучше всех
τ-bench (Sierra, 2024) устроен так, как устроена работа агента поддержки: - агент получает policy document (документ с правилами) и tools над mock-базой (имитацией базы) в доменах retail и airline; - клиента играет LLM-simulated user (модель, изображающая клиента) со скрытой целью: «поменять рейс, но только если без доплаты»; - оценка — код: состояние базы в конце разговора сравнивают с заранее размеченным целевым состоянием.
Почему это надёжнее judge: не важно, как красиво агент говорил; важно, что реально изменилось в базе. Агент, который «пообещал» вернуть деньги, но не вызвал tool возврата, провалил задачу. Агент, который вернул деньги вопреки политике, тоже провалил.
τ-bench ввёл метрику pass^k — все k попыток успешны. В статье даже сильные агенты того времени проходили меньше 50% задач, а pass^8 в retail был ниже 25%. τ²-bench добавил dual control: клиент тоже совершает действия в среде. По README репозитория (открыт 10.10.2026), задачи первой версии больше не обновляются, а τ²-bench развился в τ³-bench с доменом banking и голосовым режимом.
Оговорка: симулированный клиент — тоже LLM, и он может провалить задачу, которую агент сделал правильно (например, «забыть» свою цель). Симулятор проверяют так же, как judge: читают transcripts и меряют, как часто провал — его вина.
Inspect: dataset, solver, scorer
Inspect — open-source framework для evals от UK AI Security Institute (вместе с Meridian Labs), с более чем 200 готовыми evals. Любой eval в нём — Task из трёх частей:
- dataset — образцы: input (что подаём) и target (эталон или указания для оценки);
- solver — то, что даёт ответ: один вызов модели или целый агент с tools и многими ходами, при необходимости в sandbox (изолированной среде, например Docker);
- scorer — то, что оценивает: сравнение текста, оценка моделью или своя логика, например запрос к базе.
Пример с главной страницы документации:
from inspect_ai import Task, task
from inspect_ai.dataset import FieldSpec, hf_dataset
from inspect_ai.scorer import model_graded_qa
from inspect_ai.solver import generate
@task
def simpleqa():
return Task(
dataset=hf_dataset("codelion/SimpleQA-Verified", split="train",
sample_fields=FieldSpec(input="problem", target="answer")),
solver=generate(),
scorer=model_graded_qa(),
)
Запуск — inspect eval simpleqa.py --model ..., просмотр результатов — inspect view. Для банка Inspect хорош тем, что ставится у себя: traces с данными клиентов не уходят к стороннему сервису.
Инструменты: что выбрать
Почти каждое опубликованное сравнение инструментов написал поставщик, который ставит себя первым. Зрелые команды обычно держат два инструмента: лёгкий framework, который гоняет evals в CI, и платформу для traces, человеческой разметки и отслеживания регрессий.
- Harnesses (стенды): Inspect, EleutherAI lm-eval-harness, Stanford HELM.
- Frameworks: DeepEval (в стиле pytest, для CI), Ragas (метрики RAG с разделением retrieval и generation), Promptfoo (матрицы сравнения prompts и моделей, red teaming).
- Платформы: можно поставить у себя — Langfuse, Arize Phoenix, MLflow (важно для data residency); в первую очередь облачные — LangSmith, Braintrust (у них есть enterprise-варианты; условия проверяй на дату).
И одно решение, которое дёшево сделать сразу: писать traces в формате OpenTelemetry GenAI semantic conventions — стандартных именах полей для вызовов моделей и tools. Тогда платформу можно сменить, не переписывая сбор данных.
Схема
Термины · Key terms
- benchmark
- публичный набор задач для сравнения моделей
- contamination
- задачи benchmark попали в данные обучения
- saturation
- модели упёрлись в потолок, benchmark больше не различает
- reward hacking
- агент удовлетворяет grader, а не решает задачу
- simulated user
- модель, играющая клиента со скрытой целью
- dual control
- в среде действуют и агент, и клиент
- dataset / solver / scorer
- образцы / кто отвечает / кто оценивает (Inspect)
- sandbox
- изолированная среда для действий агента
- OpenTelemetry GenAI
- стандарт полей traces для вызовов моделей и tools
Сделай сам
Мини-τ-bench для банка: три tools (баланс, блокировка карты, открытие спора), mock-банк в SQLite, политика на одну страницу, десять задач, клиент, которого играет LLM, и проверка итогового состояния базы кодом; каждая задача гоняется 8 раз. Разложи его на понятия Inspect: что здесь dataset, что solver, что scorer. Три строки.
Обсуди с тьютором: покажи три строки и спроси, куда в этой схеме попадает симулированный клиент и как проверить, что он сам не ломает задачи.
Проверь себя · ответ под вопросом
1Как τ-bench решает, что задача выполнена, и почему это надёжнее judge?
2Почему высокий балл модели на публичном benchmark ничего не доказывает про твоего агента?
3Зачем писать traces в формате OpenTelemetry GenAI?
Interview questions · US / UK
1A model tops a public agent leaderboard. Does that tell you it will work for our support agent?
2How does τ-bench work, and how would you build something like it for a bank?
3Which eval tooling would you choose, given that customer data must stay in-region?
Ключевые фразы · Say it aloud
- Benchmarks compare models; they don't validate your agentbenchmarks сравнивают модели, а не проверяют твоего агента
- Scored by the end state of the databaseоценка по итоговому состоянию базы
- The simulated user can fail the task tooсимулированный клиент тоже может провалить задачу
- Dataset, solver, scorerтри части eval в Inspect
- We self-host evals because the traces contain customer dataдержим evals у себя из-за данных клиентов
- Emit OpenTelemetry GenAI traces to avoid lock-inпиши traces в OpenTelemetry, чтобы не зависеть от платформы
Материалы
- Inspect AI — разделы «Welcome» и «Hello, Inspect»: dataset, solver, scorer (8 минут)
- τ-bench, GitHub — первый экран README и ссылка на τ³-bench (3 минуты)
- Yao et al., τ-bench paper — abstract: оценка по состоянию базы, pass^k (2 минуты)
- OpenTelemetry GenAI semantic conventions — какие поля пишут для вызовов моделей (5 минут)