A grid of identical metal spheres with one out of alignment — testing an AI agent

Оценка ИИ-агентов: как протестировать агента до встречи с клиентом

Тестирование ИИ-агента — это ни тестирование программного обеспечения, ни бенчмарк модели. Агент проходит путь, который меняется от запуска к запуску, поэтому единственная осмысленная величина — распределение: та же задача, те же условия, двадцать запусков, сколько из них завершились корректно. Арифметика проста и беспощадна: агент с точностью 95 % на каждом шаге корректно завершает лишь около 60 % задач из десяти шагов. Работающая система оценки состоит из четырёх частей: набор случаев из реальной жизни, измерение на четырёх уровнях, регрессионный прогон при каждом изменении и мониторинг в продакшене.

Почему обычное тестирование софта здесь не работает

Классическое тестирование программ исходит из детерминизма: один и тот же вход даёт один и тот же выход, поэтому достаточно покрыть все ветви. У агента это допущение не выполняется. Один и тот же вход может дать другой путь, другой порядок вызова инструментов и другой результат — не из-за ошибки в коде, а из-за самой природы работы модели.

Поэтому меняется и сам вопрос тестирования. Вместо «прошло или не прошло» вопрос звучит так: как часто получается и насколько худший сбой отстоит от среднего. Обжигаются те команды, которые увидели удачную демонстрацию, сделали вывод, что система работает, и обнаружили в продакшене, что демонстрация была лучшим запуском из пяти.

Метрика успеха, которую чаще всего цитируют в отрасли, измеряет один успех в оптимальных условиях. В продакшене важна стабильность: та же задача, много запусков. Разрыв между этими двумя числами — это разрыв между демонстрацией и системой.

Арифметика, которая объясняет почти всё

Агент выполняет задачу как цепочку шагов. Если шаги независимы, вероятность успеха задачи равна произведению вероятностей. Это выглядит тривиально ровно до момента, когда подставляешь числа.

Точность на одном шаге Задача из 5 шагов 10 шагов 20 шагов
90 % 59 % 35 % 12 %
95 % 77 % 60 % 36 %
98 % 90 % 82 % 67 %
99 % 95 % 90 % 82 %

Отсюда следуют два операционных вывода. Первый: укоротить задачу выгоднее, чем улучшить модель. Переход с двадцати шагов на десять при точности 95 % почти удваивает долю успеха — с 36 % до 60 %. Второй: длинные цепочки требуют пошаговой точности, которой очень трудно достичь, поэтому долгие задачи требуют контрольных точек и промежуточной проверки, а не одного непрерывного цикла.

По этой же причине необычно длинные задачи по-прежнему проваливаются в большинстве случаев даже на лучших доступных моделях. Разбиение работы на подзадачи с промежуточной проверкой — не инженерный компромисс, а единственный путь, который допускает математика.

Как собрать набор случаев, который действительно чему-то учит

Набор тестов, написанный тем, кто построил агента, провалится в продакшене, потому что он отражает то, что представил себе разработчик. Правильный набор берётся из трёх источников.

Тип случая Откуда берётся Какая доля
Штатный сценарий Последние двадцать обращений, обработанных вручную ~40 % набора
Реальные крайние случаи Жалобы, возвраты, ситуации, потребовавшие эскалации ~40 % набора
Враждебные случаи Попытки инъекции, отсутствующий ввод, противоречия, запросы вне зоны ответственности ~20 % набора

Каждому случаю нужно условие успеха, определённое заранее. Не субъективная оценка, а проверяемое условие: поле обновлено на правильное значение, письмо ушло на правильный адрес, итог совпадает с ручным расчётом, или агент отказался действовать и эскалировал. Случай без условия успеха — это не тестовый случай, а впечатление.

Разумный стартовый размер: от 40 до 80 случаев, каждый прогоняется пять-десять раз. Звучит как много, но это несколько минут работы и несколько евро расходов — против одного клиента, получившего неверный ответ.

Четыре уровня измерения

Измерять один лишь результат — значит скрывать причину. Полезная система измеряет четыре уровня параллельно.

Уровень Что измеряется Что это показывает
Результат Выполнено ли условие успеха Проходит ли система бизнес-планку
Путь Порядок выбранных инструментов и число шагов Где агент начинает уходить в сторону — раньше, чем ломается результат
Инструмент Доля вызовов с неверным аргументом или неподходящим инструментом Какие описания инструментов нужно исправить
Стоимость Токены, вызовы и время на задачу Остаётся ли решение экономичным на масштабе

Уровень пути важнее всего для отладки. Ошибка агента обычно всплывает далеко от места, где она возникла, поэтому без полного журнала каждого вызова и каждого результата найти шаг, с которого началось отклонение, невозможно. Структурный контекст разобран в статье Анатомия делового ИИ-агента.

Регрессия: что ломает агента, которого никто не трогал

Агент — одна из немногих систем, способных сломаться без единой изменённой строки внутри. Основных причин три.

Обновление модели. Поставщик выпускает новую версию, и поведение сдвигается — обычно в среднем лучше и хуже на конкретных случаях, которые были откалиброваны под предыдущую версию. Поэтому любое повышение версии модели требует полного прогона набора до переключения.

Изменение схемы инструмента. Добавили поле, изменили название, появилось новое значение по умолчанию. Агент не упадёт с ошибкой: он продолжит вызывать инструмент так, как было правильно вчера.

Дрейф данных. Форма входящих обращений меняется со временем, появляются новые продукты, меняются формулировки клиентов. Набор тестов годичной давности проверяет мир, которого уже нет.

Простое рабочее правило: набор запускается автоматически при каждом изменении промпта, инструментов или модели и обновляется ежеквартально из реального трафика.

Мониторинг в продакшене — единственное, что измеряет правду

Набор измеряет то, что вы додумались протестировать. Продакшен измеряет то, что происходит. Четырёх метрик достаточно, чтобы вовремя поймать почти любую проблему.

  1. Доля завершения. Доля задач, завершённых без вмешательства человека и без сбоя.
  2. Доля эскалаций. Как часто агент останавливался и просил человека. Резкий рост сигнализирует об изменении входных данных, резкое падение — о избыточной самоуверенности.
  3. Доля исправлений. Как часто человек менял то, что предложил агент. Это метрика, ближе всего стоящая к реальному качеству.
  4. Стоимость успешно выполненной задачи. Не стоимость вызова. Задачи, которые проваливаются и перезапускаются, и составляют настоящую стоимость — финансовая сторона подробно разобрана в руководстве по снижению стоимости инференса.

Доля исправлений — ещё и самый ясный признак того, стоит ли точка одобрения в правильном месте. Если почти никто ничего не правит, одобрение превратилось в формальный штамп — эта тема разобрана в руководстве о человеке в цикле.

Чек-лист перед тем, как агент коснётся клиента

  1. У каждого случая в наборе есть однозначное условие успеха, записанное до запуска.
  2. Каждый случай прогоняется не менее пяти раз, и отчётной метрикой является стабильность, а не лучший запуск.
  3. Набор включает враждебные случаи, в том числе попытки инъекции через каждый входной канал — см. руководство по разрешениям.
  4. Для каждого запуска существует полный журнал вызовов инструментов и их результатов, сохранённый и доступный для поиска.
  5. Определена числовая бизнес-планка для выхода в продакшен, а не ощущение «достаточно хорошо».
  6. Определён запасной сценарий: что происходит, когда агент не справляется, и кто получает задачу.

Часто задаваемые вопросы

Что такое оценки (evals) для ИИ-агента?

Испытательная система, которая измеряет поведение агента на заранее заданном наборе случаев, каждый случай — за несколько запусков, и сообщает распределение результатов, а не единичный успех. Она охватывает результат, путь, использование инструментов и стоимость.

Сколько тестовых случаев нужно?

Стартовый набор из 40-80 случаев покрывает большую часть поведения агента, решающего одну задачу, при условии что он разделён между штатным сценарием, реальными крайними случаями и враждебными случаями. Важнее числа случаев число прогонов на случай — оно должно быть не менее пяти.

Почему агент, работавший на демонстрации, проваливается в продакшене?

Потому что демонстрация измеряла один запуск в удобных условиях. В продакшене задача длиннее, входные данные грязнее, а ошибки накапливаются от шага к шагу. Агент с пошаговой точностью 95 % корректно завершает лишь около 60 % задач из десяти шагов.

Можно ли использовать модель как судью для агента?

Да, но только как дополнительный слой. Автоматическая оценка подходит для качественных характеристик — тона или полноты ответа, но не для условий успеха, которые проверяются детерминированно. Любой случай, который можно проверить сравнением значений, следует проверять именно так.

Когда запускают тестовый набор?

При каждом изменении промпта, инструментов или версии модели, плюс периодическое обновление набора из реального трафика. Агент может сломаться даже тогда, когда его никто не трогал, — главным образом после обновления модели или изменения схемы инструмента.

Читайте дальше

ИИ-агенты на собственной инфраструктуре: когда это оправдано – Оценки решают, выпускать ли агента. Место, где агент работает, решает, что вы сможете журналировать, измерять и воспроизводить потом.

אולי תאהבו גם

Комплексный

Оставьте свои данные, и мы скоро свяжемся с вами

Трансформация

Оставьте свои данные, и мы скоро свяжемся с вами

Присоединяйтесь

Оставьте свои данные, и мы скоро свяжемся с вами

Точечный

Оставьте свои данные, и мы скоро свяжемся с вами