2:47 ночи. Я открываю панель бота и вижу 23 отправленных сообщения с ценами, которых не существует.
Один клиент получил скидку 40%. Другой - бесплатную интеграцию. Третий - цену в два раза ниже реальной. Бот работал уверенно, вежливо и абсолютно неправильно.
72 часа работы. $340 на API. И я разбудил клиентов фантазиями.
---
Клиент из Германии попросил бота для обработки входящих запросов. Стандартная задача: читает письмо, определяет тип запроса, отвечает по шаблону или эскалирует живому менеджеру.
Я взял Claude через API, написал системный промпт на полторы страницы, подключил базу знаний с ценами и условиями. Протестировал на 15 сценариях - всё работало. Запустил в пятницу днём, решил мониторить в понедельник.
Это была моя ошибка.
Когда модель не находила точного ответа в базе знаний, она не говорила "не знаю". Она генерировала правдоподобный ответ. Уверенно. С конкретными цифрами. Потому что именно так работают языковые модели - они оптимизированы под связность текста, а не под фактическую точность.
Ни один туториал на YouTube, который я смотрел перед этим проектом, не сказал мне этого прямо.
Я собрал промпты по этой теме в PDF. Забери бесплатно: https://t.me/airozov_bot
---
После того как написал клиенту объяснение и провёл три часа в переписке - я сел и переделал архитектуру.
Вот три вещи, которые реально изменили ситуацию.
Первое - валидация вывода перед отправкой.
Я добавил второй вызов к модели. После того как бот генерирует ответ, отдельный промпт проверяет его: есть ли в ответе конкретные цифры, названия продуктов, обещания? Если да - сверяет с базой знаний через поиск по ключевым словам. Если совпадения нет - ответ блокируется и идёт живому менеджеру.
Это добавило 0.8 секунды к времени ответа и $0.003 к стоимости каждого запроса. Зато остановило галлюцинации полностью.
Второе - явный запрет на додумывание в системном промпте.
Звучит очевидно. Но большинство промптов написаны так: "отвечай на вопросы клиентов используя базу знаний". Модель воспринимает это как разрешение использовать базу знаний плюс всё остальное что знает.
Правильная формулировка другая. "Если информация отсутствует в предоставленных документах - ответь буквально следующее: 'Уточню этот вопрос у менеджера и вернусь к вам в течение часа'. Не додумывай. Не приблизительно отвечай. Только эта фраза."
После такого промпта бот начал честно говорить "не знаю" в 34% случаев вместо того чтобы придумывать.
Третье - логирование с флагами.
Каждый ответ пишется в таблицу с полем confidence_flag. Если в ответе есть числа - флаг поднимается автоматически, сообщение уходит на ревью перед отправкой. Настроил это через простой Python-скрипт на 47 строк и Google Sheets как базу данных. Бесплатно, работает до сих пор.
Клиент из Германии в итоге не ушёл. Но я потерял две недели нервов и переделал половину проекта.
---
Вот инсайт, который я вынес из этой истории и который меняет то, как я строю всё следующие проекты.
AI-бот - это не продукт. Это процесс с точками контроля.
Все думают о боте как о чём-то что настроил и забыл. Как калькулятор - нажал кнопку, получил результат. Но языковая модель работает по-другому. Она каждый раз генерирует новый ответ. И этот ответ зависит от формулировки вопроса, от контекста разговора, от случайного сэмплинга внутри модели.
Это значит что бот который работал вчера может облажаться сегодня на чуть другом запросе.
Я видел это у трёх клиентов подряд. Бот тестируется на стандартных вопросах, запускается в продакшн, и через неделю прилетает нестандартный запрос. Модель пытается быть полезной. Галлюцинирует. Клиент злится.
Единственное что спасает - это система, а не промпт.
Хороший промпт снижает риск с 40% до 10%. Система валидации снижает его с 10% до 1%. И вот этот последний шаг большинство разработчиков пропускают, потому что хотят запустить быстро.
Я теперь закладываю на систему контроля 30% от времени проекта. Раньше закладывал 0%.
Каждый день разбираю один такой инструмент в Telegram: https://t.me/yevheniirozov
---
Если у тебя уже есть бот в продакшне - прямо сегодня зайди в логи и найди сообщения где модель использовала конкретные цифры или даты.
Если строишь с нуля - зайди на claude.ai и протестируй свой системный промпт вот так. Напиши в чат:
*"Ты бот поддержки. [вставь свой системный промпт]. Вопрос клиента: у вас есть скидки для студентов? Сколько процентов?"*
Если в базе знаний нет информации о студенческих скидках - посмотри что ответит модель. Скорее всего она что-то придумает.
Именно это и нужно починить до запуска. Не интерфейс. Не скорость. Не интеграции.
Сначала убедись что бот умеет честно говорить "не знаю".
• [Вы всё ещё тратите 2 часа на то, что решается одной строкой?](https://telegra.ph/Vy-vsyo-eshchyo-tratite-2-chasa-na-to-chto-reshaetsya-odnoj-strokoj-05-18)
• [Какие бесплатные нейросети для текста реально работают?](https://telegra.ph/Kakie-besplatnye-nejroseti-dlya-teksta-realno-rabotayut-05-18-2)
• [Как я сократил рабочий день на 2 часа одним промптом](https://telegra.ph/Kak-ya-sokratil-rabochij-den-na-2-chasa-odnim-promptom-05-18)
[teletype] Один промпт заменил мне целый отдел за 3 месяца
Зачем платить сотрудникам, если один промпт делает их работу?
Зачем платить сотрудникам, если один промпт делает их работу?