Что болело до нас

Бот первой линии продаж отвечает клиентам в двух каналах. Дальше начинается обычная история любого бота: он что-то сказал не так. Поменялась цена на кровлю, добавилась услуга, всплыла тема, которую боту трогать нельзя. Каждая такая мелочь означала письмо исполнителю.

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

Отдельно стояли ключи доступа. Токены ВКонтакте, Авито и языковой модели лежали в файле на сервере. Ключ ВК истёк в пятницу вечером: бот молчит до момента, пока мы не зайдём на сервер. Заказчик в этой схеме зритель.

Что сделали

Внутри рабочего окна менеджера появился раздел «Настройки бота»: обзор и шесть вкладок. Ни git, ни доступа к серверу, ни релиза для правки не нужно.

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

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

  • Знания: карточки о компании, географии, гарантиях, возражениях. Черновик в ответах бота не участвует.
  • Цены: отдельная таблица согласованных сумм. Бот называет только их, каждая строка со ссылкой на письменное согласование.
  • Стоп-темы: слова-ловушки, которые заказчик заводит сам, с обязательной проверкой перед сохранением.
  • Поведение: 27 настроек. Когда просить телефон, когда возвращаться к молчащему клиенту, когда отдавать заявку в CRM, предел расхода на модель в сутки и в месяц.
  • Подключения: 7 ключей внешних служб. Значения шифруются, наружу видно только хвост вида «…aBc9», кнопка «Проверить» рядом.
  • Журнал: кто, когда и что менял, обязательно с прежним значением и человеческими названиями настроек.
!
Слово «течет» отшивало горячие заявки

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

Где споткнулись

Конструктор чуть не оказался бессмысленным. Скрипт наполнения при каждом старте контейнера заливал заводские файлы в базу поверх всего. Заказчик правит цену, видит «сохранено», через два дня выходит обновление сервиса, и правка исчезает. Молча, без ошибки и без следа. Поймали до запуска.

У каждой строки появилась отметка «правили руками», и скрипт наполнения такие строки пропускает. Рядом хранится снимок заводского файла, к нему возвращает кнопка «вернуть исходный текст». Проверили прогоном на сервере: в логе «оставлено как есть: 1», правка выжила.

Второй слой граблей: рычаги, которые ничего не делали. Настройка «Спрашивать телефон после N вопросов» стояла в окне красивая и движком не читалась. Рубильник «Бот отвечает клиентам» дублировал автопилот: человек выключал его, бот продолжал отвечать. Первую подключили, второй убрали и записали правило: один рубильник на одно действие.

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

Помощник, который отвечает по вашей же базе

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

Сначала помощник жил разделом внутри инструкции, и его просто не находили. Вынесли на отдельную страницу с кнопкой в шапке. Один вопрос стоит около тридцати копеек, лимит тридцать вопросов в сутки, то есть до десяти рублей в день. Запрос весит 5 077 токенов, 98% из них берутся из кеша поставщика, за счёт этого цена держится на копейках.

Что получилось

Базовый конструктор собрали за один день, 7 августа 2026 года: знания, цены, стоп-темы, поведение, журнал. Дальше раздел рос по запросам заказчика: рубильник сценария продаж, вкладка «Подключения», помощник по настройке, два тона разговора о деньгах по просьбе отдела продаж. Всего раздел настроек затронули 35 коммитов из 171 по проекту.

На итоговой приёмке закрыто 9 из 9 пунктов приложения к договору, включая пункт «база знаний правится заказчиком из окна». Приёмочный прогон из 35 сценариев прошёл 79 обязательных проверок из 79 – это уже про бота целиком.

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

Частые вопросы

Можно ли менять тексты и цены в чат-боте самому, без программиста?

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

Сколько ждать, если после запуска бота поменялась цена или добавилась услуга?

Столько, сколько занимает правка строки в таблице цен. Бот называет только согласованные суммы из этой таблицы и читает её на каждом ответе. Ноль релизов на смену цены, услуги или ключа доступа.

Как один AI-бот работает и на Авито, и во ВКонтакте?

Бот ведёт первую линию продаж сразу в двух каналах и отдаёт заявку в CRM. Ключи ВКонтакте, Авито и языковой модели заказчик держит во вкладке «Подключения», всего там 7 ключей внешних служб. Значения шифруются, наружу видно только хвост вида «…aBc9». Кнопка «Проверить» делает настоящую генерацию и по-русски пишет, если на счёте нет средств.

Бот ответил клиенту не то. Как это исправить?

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

Опасно ли пускать сотрудников в настройки бота?

Раздел видит только администратор. Открывается он повторным вводом личного пароля на тридцать минут, общего «пароля разработчика» в системе нет. В журнале остаётся имя человека и адрес, с которого сделана правка. Новое стоп-слово перед сохранением прогоняется по пятнадцати типовым обращениям клиентов, чтобы оно не отшивало живые заявки.