Главное
Соберите versioned набор реальных задач, заранее опишите допустимый итог и запрещённые действия, а затем проверяйте outcome, trajectory и side effects. Критическое нарушение прав не должно компенсироваться красивым средним score.
Пять удачных разговоров в демо не доказывают, что агент готов к работе. В демо обычно задают ожидаемые вопросы, интеграции отвечают, документы свежие, а человек рядом замечает странность раньше пользователя.
Eval нужен, чтобы заменить впечатление повторяемой проверкой. Он отвечает не на вопрос «модель умная?», а на вопрос «система выполняет наш процесс с допустимым качеством, риском и стоимостью?»
Оценивайте результат, путь и побочные эффекты
У обычного чатбота часто проверяют текст ответа. У агента этого мало. Он может написать идеальное сообщение после неправильного изменения в CRM.
Минимум три слоя:
- Outcome: задача действительно завершена или корректно передана человеку.
- Trajectory: выбраны допустимые инструменты, порядок и параметры.
- Side effects: не создано дублей, не затронуты чужие данные, не выполнено лишних действий.
Иногда правильных траекторий несколько. Поэтому не стоит жёстко требовать единственный путь, если важны результат и ограничения. Но для платежа или удаления допустимая последовательность может быть строго определена.
Соберите контрольный набор из реальной работы
Начните не с тысячи искусственных вопросов, а с 50–100 репрезентативных задач. Включите:
- частые и простые случаи;
- редкие, но дорогие ошибки;
- неполные и противоречивые данные;
- недоступную интеграцию;
- повтор одного и того же запроса;
- запрос пользователя без нужных прав;
- попытку заставить агента игнорировать правила;
- ситуацию, где единственный правильный результат — отказ или handoff.
Для каждой задачи зафиксируйте допустимый итог, запрещённые действия, необходимые доказательства и лимит стоимости/времени.
Не смешивайте все ошибки в один score
Средние 92 балла могут скрывать один перевод денег не тому получателю. Разделите метрики:
| Слой | Что измерять |
|---|---|
| Выполнение | task success, корректный конечный статус |
| Инструменты | правильность выбора и параметров tool call |
| Безопасность | нарушения прав, лишние действия, утечки |
| Handoff | обязательные и ложные передачи человеку |
| Надёжность | повторы, таймауты, восстановление после сбоя |
| Опыт | понятность ответа и усилие пользователя |
| Экономика | токены, вызовы внешних API, время, стоимость задачи |
Критические нарушения должны быть отдельным release gate. Их нельзя компенсировать красивым стилем в других примерах.
Проверяйте систему, а не только модель
Anthropic отдельно подчёркивает, что агентные eval сложнее обычных: диалог многошаговый, агент меняет состояние и использует инструменты. Ошибка может находиться в описании инструмента, политике, API, состоянии очереди или данных — а не в самой модели.
Поэтому в трассировке нужны версия модели, prompt и policy, входные данные, tool calls, ответы интеграций и конечное состояние. Без версий регрессию невозможно воспроизвести.
Добавьте независимую проверку результата
LLM-as-a-judge полезен для смысла и качества текста, но не должен единолично подтверждать права доступа или факт внешней операции. Где возможно, используйте детерминированный oracle: запись существует, сумма совпадает, запрещённый документ не извлечён, письмо осталось черновиком, задача появилась в очереди один раз.
Для субъективных критериев задайте короткую рубрику и периодически сверяйте автоматическую оценку с человеком.
Отдельно прогоните негативные сценарии
Позитивный тест спрашивает: «Сможет ли агент создать задачу?» Негативный: «Сможет ли он создать её от имени другого пользователя, дважды, без обязательного поля или после истечения подтверждения?»
Нужны проверки:
- prompt injection в письме или документе;
- подмена идентификатора ресурса;
- чрезмерно большой ввод;
- секрет в логе или сообщении об ошибке;
- неизвестный статус внешнего API;
- повтор после таймаута;
- превышение бюджета шагов;
- исчезновение оператора после handoff.
Зафиксируйте baseline и запускайте регрессию
Eval имеет смысл, если запускается снова после изменения модели, промпта, схемы инструмента, базы знаний или политики. Сравнивайте не только общий процент успеха, но и категории ошибок, стоимость и latency.
В проекте RAG-помощника ГрГМУ контрольный прогон после исправлений дал 99 ответов с оценкой «отлично», один — «хорошо», проблемных — 0 из 100 вопросов. Это результат конкретного набора и версии, а не универсальная «точность 99%» или независимый тест на новых вопросах. Для интерпретации нужны дата, рубрика оценки, состав источников и повтор после изменений.
Когда агент готов к ограниченному запуску
- Все критические сценарии проходят без нарушения прав и лишних действий.
- Для важных отказов и handoff нет потерянных задач.
- Ретрай не создаёт дубль.
- Установлены бюджеты времени, шагов и стоимости.
- Ошибку можно воспроизвести по трассировке.
- Есть владелец метрик и расписание повторного eval.
- Пилот ограничен группой пользователей и обратимым набором инструментов.
Первый production — не финальный экзамен, а начало наблюдения. Но без контрольного набора наблюдать будет не с чем сравнивать.
Сравнение
Слои оценки AI-агента
| Слой | Вопрос | Сигнал |
|---|---|---|
| Outcome | Задача действительно завершена? | Корректный конечный статус |
| Trajectory | Допустимы ли инструменты и параметры? | Проверка трассировки |
| Safety | Не нарушены ли права? | Pass/fail release gate |
| Operations | Система выдерживает сбой? | Повторы, timeout, recovery |
Что проверить
Что включить в контрольный набор
- Частые, редкие и дорогие ошибки.
- Неполные, противоречивые и устаревшие данные.
- Вопросы без ответа и ожидаемый handoff.
- Разные роли пользователя и попытки обойти правила.
- Повтор после timeout, лимиты бюджета и недоступный API.
Как мы подходим к задаче
В кейсе RAG-помощника ГрГМУ результат 99/100 относится к одному контрольному прогону. CENTURY фиксирует версию набора и повторяет его после изменений модели, prompt, инструментов или базы знаний.