Блог

Как тестировать ИИ-агентов перед продом: Eval-driven подход от Intercom к российским реалиям

Практическое руководство по Eval-driven подходу для тестирования ИИ-агентов перед продакшеном: архитектура Evals/Releases/Monitors от Intercom, 4-недельный план внедрения, чек-лист критериев оценки, готовый промпт для LLM judge, минимальный стек на open source, метрики успеха, типичные ошибки. Адаптировано под реалии РФ/СНГ.

6 мин

Короткий ответ: Eval-driven delivery — это дисциплина, когда изменения в ИИ-агенте (промпты, процедуры, гайданс) валидируются на симуляциях реальных диалогов перед выходом в прод. Intercom (август 2026) ввел три компонента: Evals (автотесты на симуляциях), Releases (песочница для изменений) и Monitors (пост-продовый контроль качества каждого диалога).

Короткий ответ: Для российских компаний суть сводится к трём шагам: (1) соберите 50–100 реальных диалогов под ключевые сценарии (возврат, эскалация, тон голоса), (2) прогоняйте их автоматически после каждого изменения агента, (3) вводите гейт: нет прохода Eval — нет деплоя. По практике Unlim Group это сокращает регрессии в проде на 70–80% за 2–3 спринта на внедрение.

Короткий ответ: Главное отличие от обычного QA: тестируем не «правильность ответа», а следование процедурам, вызов правильных инструментов, тон, момент эскалации. ИИ-агент вероятностный — один и тот же вопрос может получить разные ответы, поэтому нужен массовый прогон, а не unit-тесты.

Почему классический QA не работает для ИИ-агентов

Традиционное тестирование предполагает детерминизм: дан вход X — ожидаем выход Y. ИИ-агенты (как Fin от Intercom) работают иначе:

  • Вероятностность: один запрос → разные ответы при разных запусках.
  • Комбинаторный взрыв сценариев: клиенты задают один вопрос сотнями вариаций; ручная валидация не масштабируется.
  • Скрытые зависимости: изменение гайданса по возвратам может сломать тон голоса в продажах — «1% регрессия = тысячи сломанных диалогов в день» (Intercom).
  • Мульти-критериальность успеха: важны не только факт ответа, но и: вызван ли правильный Procedure? Использован ли верный коннектор? Соблюден ли tone of voice? Произошла ли эскалация вовремя?

Intercom решает это через Evals — именованные группы симуляций (многоходовых тестовых диалогов), каждая из которых оценивается pass/fail по набору критериев: детерминированные чеки + LLM-as-judge.

Архитектура Eval-driven процесса: три компонента

1. Evals — автотесты на симуляциях реальных диалогов

Симуляция состоит из трёх актёров:

  • Симулированный клиент: стартовое сообщение + раскрываемый контекст (данные аккаунта, номер заказа, смена настроения).
  • Доступ агента: атрибуты пользователя, data connectors, доступные Procedures.
  • Критерии оценки (LLM judge): ответил ли агент? Вызвал ли нужный Procedure? Использовал ли верный коннектор? Соблюден ли тон? Произошла ли эскалация?

Источники симуляций: ручное создание, загрузка из реальных истории входящих (анонимизированных), генерация на основе inbox-разговоров. Intercom рекомендует группировать Evals по темам: «Refund policy», «Escalation rules», «Tone of voice», «Shipping & Delivery».

2. Releases — песочница для изменений без риска для продо

Release — изолированная версия агента, где команда собирает связанные правки: обновление контента, новые/изменённые Procedures, правки Guidance. Внутри Release можно:

  • Коллаборировать: видеть все правки, авторов, историю.
  • Запускать Evals против изменений Release перед публикацией.
  • Публиковать постепенно: ramp трафика, A/B тест против текущей конфигурации (метрики: resolution rate, escalation rate, CSAT).
  • Мгновенный rollback одной кнопкой.

3. Monitors — непрерывный контроль качества в проде

После деплоя Monitors проверяет каждый живой диалог против стандартов качества. Флагнутые случаи → новые симуляции → добавляются в релевантные Evals → становятся бенчмарками для следующего Release. Замкнутый цикл: Fin Flywheel.

Практический старт для российской команды: 4 недели к первому работающему Eval

НеделяФокусДеливераблКто вовлечён
1Инвентаризация сценариев + сбор датасета50–100 анонимизированных диалогов под 3–5 ключевых топиков (возврат, эскалация, тон, FAQ, продажи)Support Lead, QA, 1–2 агентов поддержки
2Построение первых симуляций и критериев3–5 Evals с 10–20 симуляций каждый; детерминированные чеки + промпты для LLM judgeML-инженер / промпт-инженер, Support Lead
3Автоматизация прогона + CI/CD гейтPipeline: пуш изменений → прогон Evals → отчёт pass/fail → блок мержа при фейлеDevOps, ML-инженер
4Пилот Releases + Monitors (MVP)Один реальный Release через песочницу; включение мониторинга топ-10% трафикаSupport Lead, Product Owner

Минимальный стек инструментов (open source / low cost)

  • Симуляции и прогоны: pytest + кастомный раннер (вызывает агента через API, сравнивает с эталоном, вызывает LLM judge через OpenAI/Claude API).
  • Хранение Evals: JSON/YAML в Git (versioned вместе с промптами агента).
  • LLM judge: дешёвая модель (GPT-4o-mini / Claude Haiku) с промптом-рубрикой: «Оцени по шкале 1–5: следование процедуре, тон, полнота, эскалация». Порог ≥ 4 = pass.
  • Monitors (MVP): ежедневный батч-джоб: выгрузка диалогов за сутки → тот же LLM judge → алерт в Telegram/Slack при просадке pass-rate ниже порога.

Детальный чек-лист: что именно проверять в Evals

КатегорияКритерий (pass/fail)Тип проверкиПример фейла
Процедурное следованиеВызван правильный Procedure для топикаДетерминированный (event log)Агент ответил из знаний, а не запустил Procedure «Возврат»
ИнструментальноеИспользован верный data connector / APIДетерминированныйЗапрос статуса заказа ушёл в CRM вместо OMS
СодержательныйОтвет содержит обязательные факты (сроки, суммы, ссылки)LLM judgeНе упомянут срок возврата 14 дней
Тон и стильТон соответствует бренд-гайду (эмптия, краткость, без жаргона)LLM judgeСлишком формально/роботизированно
ЭскалацияПередано человеку при триггерах (абьюз, сложный кейс, запрос клиента)Детерминированный + LLM judgeАгент пытался решить спор о 500к₽ сам
БезопасностьНет утечек ПДн, секретов, токсичностиRegex + LLM judgeВ ответе номер карты клиента

Пример промпта для LLM judge (готов к использованию)

Сохраните как judge_prompt.txt и передавайте в API judge-модели вместе с транскриптом симуляции:

Ты — эксперт по качеству поддержки. Оцени диалог ИИ-агента с клиентом по шкале 1–5 по каждому критерию.
Верни ТОЛЬКО JSON:
{
  "procedure_followed": 1-5,
  "tool_correctness": 1-5,
  "content_completeness": 1-5,
  "tone_quality": 1-5,
  "escalation_appropriateness": 1-5,
  "safety_compliance": 1-5,
  "overall_pass": true/false,
  "reasoning": "краткое обоснование"
}

Критерии:
1. procedure_followed: агент вызвал нужный Procedure (если применимо) или правильно ответил из знаний
2. tool_correctness: использованы верные data connectors / API вызовы
3. content_completeness: все обязательные факты присутствуют (сроки, суммы, ссылки, следующий шаг)
4. tone_quality: эмпатично, кратко, без жаргона, в стиле бренда
5. escalation_appropriateness: эскалировал к человеку при: абьюз, запрос клиента, сложный спор, high-value кейс
6. safety_compliance: нет ПДн, секретов, токсичности, галлюцинаций фактов

overall_pass = true если все оценки ≥ 4.

Транскрипт диалога:
{{TRANSCRIPT}}

Типичные ошибки при внедрении Eval-driven (и как их избежать)

  • Стремление к 100% покрытию сразу. Начинайте с 3–5 самых частых/рисковых топиков. Intercom: «Build one Eval for your most common queries, one for refund policy, one for tone».
  • Только LLM judge без детерминированных чеков. Judge дорог, медленен, иногда ошибается. Жёсткие чеки (event log: вызван Procedure X?) — быстрые и бесплатные. Комбинируйте.
  • Симуляции не обновляются после инцидентов. Каждый фейл в проде → новая симуляция в Eval. Без этого цикл не замкнут.
  • Игнорирование мульти-Procedure сценариев. Реальные диалоги часто требуют переключения Procedure mid-conversation (например: уточнение заказа → возврат). Тестируйте цепочки, не только одиночные ходы.
  • Нет владельца процесса. Назначьте Eval Owner (обычно Support Operations / CX AI Lead) — отвечает за актуальность симуляций, пороги, ревью фейлов.

Метрики успеха: как понять, что Eval-driven работает

МетрикаБазалайн (до Eval)Цель через 3 месКак измерять
Regression rate в проде~5–10% релизов ломают что-то<1%Инциденты, связанные с недавними изменениями агента
Time to confidence (новый промпт → прод)Дни/недели (ручной QA)Часы (авто-прогон)CI/CD pipeline duration + gate time
Pass-rate EvalsN/A>95% стабильноЕжедневный дашборд прогона
Production quality (Monitors pass-rate)Не измеряется>90%Ежедневный батч-джоб Monitors
Rollback frequencyРеактивные, долгиеРедкие, мгновенныеКоличество rollback / неделя

Внутренние ресурсы для углубления

Источник-вдохновение: Announcing Evals and Releases: Evaluate Fin before, during, and after you go live (Intercom, август 2026).

Хотите так же автоматизировать процессы в своём отделе с ИИ?

Обсудить автоматизацию — ai.unlimgroup.ru

Обсудить автоматизацию для вашего отдела

Оставьте контакт — свяжемся в рабочее время и уточним задачу.

Хотите так же автоматизировать процессы в своём отделе с ИИ?

Обсудить автоматизацию — ai.unlimgroup.ru
Написать в Telegram