Как оценивать работу агентов

Как оценивать работу агентов

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

Доверять или проверять всё?

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

Однако в большинстве бизнес-задач такой контроль сводит на нет выгоду от автоматизации — он медленный и дорогой. Поэтому предпочтительнее, чтобы система сама выдавала корректные результаты.

Что такое доверие к ИИ?

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

Ключевой инструмент для установления такого доверия — оценочные тесты (evals). Они позволяют проверить, насколько текущее состояние системы соответствует ожиданиям. Как только у вас есть набор evals, покрывающих ключевые сценарии, вы можете с уверенностью использовать агента в этих рабочих процессах.

Evals в агентных системах

Агентные системы недетерминированы: их поведение зависит от множества факторов, и путь к результату может варьироваться. Поэтому оценивать нужно не только результат, но и путь.

Вопросы, на которые отвечает оценка:

  • Создала ли система корректный результат?
  • Был ли путь разумным с точки зрения:

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

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

Как создать eval set?

Для начала нужен набор ground truth — пары «входные данные — ожидаемый результат». Его можно собрать на основе исторических данных или вручную с участием экспертов.

Размер набора не должен быть огромным: достаточно нескольких примеров на каждый сценарий. Главное — чёткость критериев. Два независимых эксперта должны прийти к одному выводу: прошёл агент тест или нет.

Каждый тест включает:

  • Задачу с входными данными и критериями успеха.
  • Тестовый прогон (run) с результатом.
  • Логику оценщика (grader), проверяющую разные аспекты прогона.
  • Транскрипт действий агента: шаги рассуждений, вызовы инструментов.
  • Конечный результат — соответствует ли он ожидаемому.

Пример: агент поддержки клиентов

Рассмотрим агента для интернет-магазина, который обрабатывает возвраты, запросы статуса заказа и базовую поддержку. У него есть доступ к базе заказов и инструменту возврата, а также политика: полный возврат в первые 30 дней, кредит в магазине — с 30 до 60 дней, отказ после 60 дней, если товар не бракованный.

Случай 1 — простой возврат:

  • Вход: клиент просит вернуть деньги за заказ 12 дней назад, брак не указан.
  • Ожидаемый результат: агент находит заказ, подтверждает срок, оформляет возврат, вежливо информирует клиента.
  • Оценщики: детерминированная проверка вызова инструмента возврата и LLM-оценщик тона.

Случай 2 — запрос вне политики:

  • Вход: заказ 75 дней назад, брак не указан.
  • Ожидаемый результат: отказ с объяснением политики, без предложений альтернатив.
  • Оценщики: проверка, что возврат не оформлен, и LLM-оценщик точности и тона.

Случай 3 — неоднозначный случай:

  • Вход: товар пришёл бракованным на 65-й день, но без фото и с расплывчатым описанием.
  • Ожидаемый результат: запрос фото или передача вопроса человеку.
  • Оценщики: LLM-оценщик промежуточного действия и проверка, что возврат не оформлен без доказательств.

Этот пример показывает, что оценщики могут быть разными: детерминированными (проверка факта), LLM-оценщиками (оценка тона) и политиками (проверка соблюдения правил).

Типы оценщиков

Люди — самый точный, но дорогой и медленный способ. Используется для создания первичного набора данных, калибровки ИИ-оценщиков и A/B-тестирования.

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

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

Часто используют отдельных ИИ-оценщиков под разные рубрики: один — за тон, другой — за корректность, третий — за полноту. Универсальные оценки с помощью ИИ-агента возможны, особенно в сложных, субъективных задачах, где формальные критерии не работают.

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

Когда создавать evals?

В идеале — до разработки продукта. Тогда evals работают как спецификация, следуя парадигме eval-driven development (EDD). Это помогает избежать ошибок на ранних этапах.

На практике evals часто создают уже после реализации функциональности. Но чем раньше они появляются, тем проще вносить изменения: менять модели, добавлять инструменты, рефакторить код.

Обслуживание набора оценок

Набор оценок — это живой артефакт. Его нужно:

  • Расширять при добавлении новых функций.
  • Калибровать с помощью экспертов.
  • Отслеживать и анализировать транскрипты, чтобы понимать, что на самом деле проверяют оценщики.
  • Семплировать реальный трафик, чтобы тесты оставались актуальными.

Распространённые ошибки

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

Застывание набора оценок: тесты не обновляются, а продукт и пользователи меняются. Система хорошо работает с прошлогодними сценариями, но проваливается на новых. Решение: регулярно обновлять evals на основе реального трафика.

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

Отношение к метрикам как к числу: 92% успеха — звучит хорошо, но если 8% ошибок приходятся на ключевой сегмент, это серьёзная проблема. Решение: анализировать распределение, стратифицировать по категориям, сегментам и уровню серьёзности.

Читать оригинал