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, человеческой разметки и отслеживания регрессий.

И одно решение, которое дёшево сделать сразу: писать 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?
Код сравнивает состояние базы в конце разговора с заранее размеченным целевым. Это проверяет то, что реально изменилось, а не то, как агент говорил, и не зависит от искажений judge. Слабое место — симулированный клиент, которого надо проверять отдельно.
2Почему высокий балл модели на публичном benchmark ничего не доказывает про твоего агента?
У агента свои tools, политика, языки и клиенты, а benchmark меряет чужие задачи. Задачи могли попасть в данные обучения, а сам benchmark мог насытиться. Агента проверяют на своём наборе, похожем на свою работу.
3Зачем писать traces в формате OpenTelemetry GenAI?
Это стандартные имена полей для вызовов моделей и tools. Любая совместимая платформа их понимает, поэтому платформу можно сменить или поставить у себя без переписывания сбора данных. Для регулируемых отраслей это ещё и свобода держать traces в своём регионе.

Interview questions · US / UK

1A model tops a public agent leaderboard. Does that tell you it will work for our support agent?
Strong answer: Not much — benchmarks compare models, not your agent; contamination and saturation; different tools, policies, languages and users; build a domain suite (τ-bench style) with deterministic end-state scoring and pass^k; use leaderboards only to shortlist models.
2How does τ-bench work, and how would you build something like it for a bank?
Strong answer: Policy document, tools over a mock database, an LLM-simulated user with a hidden goal, scoring by comparing the final database state to the goal state, pass^k over repeated trials; for a bank — real policies, the real tool surface, adversarial users (impersonation, injection in transaction text), tasks seeded from redacted real transcripts; validate the simulator like a judge.
3Which eval tooling would you choose, given that customer data must stay in-region?
Strong answer: Two tools — a self-hosted harness in CI (Inspect or DeepEval) and a self-hostable tracing and annotation platform (Langfuse, Phoenix, MLflow); emit OpenTelemetry GenAI traces to avoid lock-in; distrust vendor comparisons; redact before anything leaves the region.

Ключевые фразы · Say it aloud

Материалы