Бот пообещал скидку: как проверять реплики до отправки клиенту

Бот пообещал скидку: как проверять реплики до отправки клиенту

Четыре контура проверки, регрессионные сценарии после правки промпта и разбор проблемных диалогов. Как выпускать бота к клиентам и не бояться его ответов.

Проверка реплики бота до отправки клиенту и журнал срабатываний

Скидка «в порядке исключения». Срок доставки «завтра точно». Гарантия «пожизненная». Обычный бот выдумает любую из этих фраз за секунду — и вы узнаете об этом от клиента, который уже на неё рассчитывает.

Дальше развилка. Либо вы выполняете обещание, которого не давали, и теряете маржу. Либо не выполняете — и получаете претензию вместо продажи. После первого такого случая бота обычно выключают целиком, вместе со всей пользой. Это и есть главная причина, по которой «мы пробовали чат-бота, не взлетело».

Здесь неприятная правда о рынке: все продают AI-бота, и почти никто не продаёт способ проверить, что он не навредит. В коробочных CRM такого слоя нет вовсе. А он существует и устроен понятнее, чем кажется.

Главное за минуту

Проверка до отправки

Четыре контура: стоп-темы, запрещённые обещания, опора на источник и порог уверенности.

В звонке — до озвучки

Ответ проверяется по предложениям, и первое нарушение обрывает фразу: сказанное вслух не отзовёшь.

Регрессия после правки

Эталонные сценарии прогоняются сами и показывают, что было зелёным и стало красным.

Провалы находятся сами

По пяти признакам и без обращения к модели — контроль качества не добавляет расходов на ИИ.

Почему «напишите хороший промпт» не работает как защита

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

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

Четыре контура: что происходит с репликой перед отправкой

Схема четырёх контуров проверки ответа бота перед отправкой клиенту
Проверка идёт и до обращения к модели, и после генерации ответа.

1. Стоп-слова и запретные темы

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

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

2. Запрещённые обещания

Три готовые категории — скидки, сроки доставки, гарантии — и 13 правил внутри них, написанных под русскую речь с учётом отрицания. Плюс ваш собственный список формулировок.

Правила отличают обещание от упоминания. «Скидок не даём» проходит. «Уточню, есть ли скидка» проходит. «Дам вам скидку 10%» — нет. Разница принципиальная: фильтр по ключевому слову «скидка» сломал бы половину нормальных ответов.

3. Опора на источник

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

Реакция: ответ заменяется на «уточню и вернусь», диалог передаётся человеку, оператору заводится задача. Источником считаются конкретные инструменты бота — то есть проверяется не «звучит правдоподобно», а факт обращения к данным.

4. Порог уверенности

Число от 0 до 100. Если релевантность найденного в базе знаний ниже порога, а ответ содержит фактическое утверждение, бот честно обещает уточнить и передаёт диалог человеку. Лучше «я уточню» сейчас, чем разбор претензии через неделю.

Про скорость. На каждое правило отведено 250 мс, поэтому контроль не подвешивает диалог. Реакция на срабатывание выбирается отдельно: только записать, заменить ответ, передать оператору или заменить и передать.

В телефонном разговоре проверка идёт до озвучки

В переписке у вас есть запас: сообщение можно не отправить. В звонке запаса нет — сказанное вслух не отзовёшь.

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

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

Вы поменяли одну фразу в инструкции. Что теперь сломалось?

Второй страх после «наговорит лишнего» — и он обоснованный. Промпт — это код без тестов: правка в одном месте меняет поведение в трёх других, и узнаёте вы об этом от клиента.

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

  • инструмент вызван;
  • инструмент не вызван — отдельный тип, и он важнее, чем кажется: бот не должен создавать заказ на вопрос о наличии;
  • товар найден;
  • сделка создана;
  • ответ опирается на базу знаний;
  • ответ подходит под образец;
  • оценка модели-судьи с порогом 70 из 100.

Прогон идёт по боевому конвейеру настоящими инструментами, но в одноразовой песочнице: заводится служебный клиент «[проверка бота] #номер», а после прогона всё созданное убирается. То есть тестируется реальное поведение, а не имитация, и при этом в базе не остаётся мусора.

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

Провалы находят себя сами — без второй статьи расходов

Читать все диалоги бота вручную не будет никто. Тимлид по выходным — не масштабируемое решение.

Поэтому платформа каждые 10 минут просматривает свежую переписку по пяти объективным признакам:

Признак О чём он говорит
Клиент переспросил то же самое Ответ был непонятным или не по делу
Бот передал диалог оператору Пробел в знаниях или в наборе инструментов
Клиент задал вопрос и пропал Самый дорогой сигнал: человек ушёл после первого ответа
Сработал защитный фильтр Бот собирался сказать лишнее — и это записано
Инструмент вернул ошибку Техническая поломка, о которой иначе не узнали бы

Ключевая деталь: поиск идёт по тексту и метаданным, без обращения к языковой модели. То есть контроль качества не добавляет к счёту за ИИ ни цента. Это редкость — обычно «AI анализирует каждый диалог» означает вторую статью расходов, сопоставимую с первой.

По понедельникам в 9 утра по часовому поясу компании владелец получает сводку: сколько случаев, сколько разных обращений задето, три главные причины.

Из провала — в правку, из правки — в доказательство

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

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

Оба ответа хранятся копией — поэтому сравнение «было / стало» переживает и следующую правку, и удаление исходной переписки. На разборе с руководителем вы показываете не рассказ, а два текста.

И на каждое срабатывание защиты остаётся след: какой контур, что именно совпало, причина человеческим языком, полный исходный текст, чем заменили — и версия промпта на тот момент. На вопрос «это старое поведение или уже после правки» отвечает запись, а не память сотрудника.

Как выпускать бота к клиентам: план на три недели

Порядок, который снимает риск, а не откладывает его.

  • Неделя 1. Ограждение в режиме наблюдения: ответы уходят, срабатывания пишутся в журнал. Вы просто смотрите, сколько раз бот собирался придумать цену.
  • Неделя 1. Свой список запрещённых формулировок — по тем обещаниям, которые в вашем бизнесе стоят дороже всего.
  • Неделя 2. 5–10 эталонных сценариев из реальных диалогов, включая «инструмент не должен вызываться».
  • Неделя 2. Включить автопрогон, чтобы правки промпта сразу проверялись.
  • Неделя 3. Перевести опору на источник и запрет обещаний в строгий режим — по данным первой недели, а не наугад.
  • Неделя 3. Настроить реакцию: подмена ответа плюс передача человеку плюс задача оператору.
  • Постоянно. Понедельничная сводка разбора диалогов — как утренняя почта, а не как проект.

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

Границы: чего мы не обещаем

Этот блок — тоже часть контроля качества. Только уже нашего, а не ботовского.

  • Мы не гарантируем, что бот не скажет лишнего. Вы задаёте запретные темы и формулировки, а система проверяет ответ до отправки. Это разные обещания, и выполняем мы второе.
  • Ограждение и автопрогон в поставке выключены. Их включают осознанно в карточке бота и в нужном объёме — это не поведение сразу после регистрации.
  • Правила срабатывают по формулировке, а не по смыслу. Это сеть последней инстанции поверх хорошей инструкции, а не защита от любой фразы.
  • Категорийные правила про скидки, сроки и гарантии написаны под русскую речь. Ваши собственные стоп-слова работают на любом языке.
  • Модель-судья требует рабочего ключа провайдера. Если модель недоступна, критерий считается непройденным — отчёт никогда не покажет ложное «всё хорошо».

И то, что обычно не пишут в маркетинге: сам механизм ограждения покрыт автотестами — 31 проверка ограждения, 18 проверок сценариев, 19 проверок детектора проблемных диалогов. То, на что компания полагается в вопросе «бот не скажет лишнего», не держится на честном слове разработчика.

Связанные материалы

Включим ограждение в режиме наблюдения — и покажем цифры по вашему трафику

Триал 14 дней, до 5 сотрудников. Ставим бота на первую линию, проверку — в наблюдение. Через две недели у вас на руках цифра, которой раньше не было: сколько раз бот собирался сказать то, чего вы не обещали. Блокировку включаем уже по ней.

Проверить своего бота
Решения CrmAI

Услуги по теме статьи