Что болело до нас
Бот первой линии продаж отвечает клиентам в двух каналах. Дальше начинается обычная история любого бота: он что-то сказал не так. Поменялась цена на кровлю, добавилась услуга, всплыла тема, которую боту трогать нельзя. Каждая такая мелочь означала письмо исполнителю.
Дальше по цепочке: правка файла, сборка, выкатка. Всё это время бот работает по старым данным и продолжает называть старые цифры. Владелец видит проблему прямо в переписке и ничего не может сделать сам.
Отдельно стояли ключи доступа. Токены ВКонтакте, Авито и языковой модели лежали в файле на сервере. Ключ ВК истёк в пятницу вечером: бот молчит до момента, пока мы не зайдём на сервер. Заказчик в этой схеме зритель.
Что сделали
Внутри рабочего окна менеджера появился раздел «Настройки бота»: обзор и шесть вкладок. Ни git, ни доступа к серверу, ни релиза для правки не нужно.
Устроено это просто. Всё, что бот считает правдой о компании, вынесено из кода в базу данных, и движок читает её на каждом шаге разговора. Правка знаний и цен действует со следующего ответа, настройки поведения подхватываются за минуту. Код при этом не пересобирается, сервис не перезапускается. Файлы в репозитории остались заводским значением: они наполняют пустую базу при первом запуске.
Раздел видит только администратор, и открывается он повторным вводом личного пароля на тридцать минут. Общий «пароль разработчика» делать не стали: его нельзя отозвать при увольнении и нельзя привязать к автору правки. Так в журнале остаётся имя человека и адрес, с которого правка сделана.
- Знания: карточки о компании, географии, гарантиях, возражениях. Черновик в ответах бота не участвует.
- Цены: отдельная таблица согласованных сумм. Бот называет только их, каждая строка со ссылкой на письменное согласование.
- Стоп-темы: слова-ловушки, которые заказчик заводит сам, с обязательной проверкой перед сохранением.
- Поведение: 27 настроек. Когда просить телефон, когда возвращаться к молчащему клиенту, когда отдавать заявку в CRM, предел расхода на модель в сутки и в месяц.
- Подключения: 7 ключей внешних служб. Значения шифруются, наружу видно только хвост вида «…aBc9», кнопка «Проверить» рядом.
- Журнал: кто, когда и что менял, обязательно с прежним значением и человеческими названиями настроек.
Стоп-слова искались как обычная подстрока, без границы слова. Прогон десяти живых диалогов дал результат сразу: первый же клиент пишет «Крыша течет, срочно нужен мастер», слово «течет» стоит в списке гарантийных споров, и бот отвечает «передала обращение руководителю». Протечка при этом главный вход в кровельные работы. Нашли ещё шесть мин: «сделайте смету» ловилось на «смет», «дайте контакт» на «акт», «фасад торгового центра» на «торг», «оптимальный материал» на «опт». Детектор починили, совпадение теперь ищется только с начала слова. Вывод для конструктора оказался важнее самой починки: раз слова заводит заказчик, окно обязано не дать ему завести мину. Каждое новое слово прогоняется по пятнадцати типовым обращениям клиентов. Поймалось на обычной фразе, сохранить нельзя, и в ошибке написано, на какой именно фразе оно сработало.
Где споткнулись
Конструктор чуть не оказался бессмысленным. Скрипт наполнения при каждом старте контейнера заливал заводские файлы в базу поверх всего. Заказчик правит цену, видит «сохранено», через два дня выходит обновление сервиса, и правка исчезает. Молча, без ошибки и без следа. Поймали до запуска.
У каждой строки появилась отметка «правили руками», и скрипт наполнения такие строки пропускает. Рядом хранится снимок заводского файла, к нему возвращает кнопка «вернуть исходный текст». Проверили прогоном на сервере: в логе «оставлено как есть: 1», правка выжила.
Второй слой граблей: рычаги, которые ничего не делали. Настройка «Спрашивать телефон после N вопросов» стояла в окне красивая и движком не читалась. Рубильник «Бот отвечает клиентам» дублировал автопилот: человек выключал его, бот продолжал отвечать. Первую подключили, второй убрали и записали правило: один рубильник на одно действие.
Кнопка «Проверить ключ» тоже врала. Она спрашивала у поставщика список моделей, а список отдают и при нулевом балансе. «Ключ рабочий» показывалось ровно тогда, когда бот отвечать не мог. Поймали на живом переносе. Теперь проверка делает настоящую генерацию на шестнадцать токенов, а ошибки переведены на человеческий: «ключ рабочий, но на счёте нет средств».
Помощник, который отвечает по вашей же базе
Отдельная страница, где заказчик спрашивает своими словами. «Клиент написал про гарантию, а бот передал его менеджеру, почему?» Ответ приходит по его собственной базе знаний: какую карточку открыть и что в ней заменить.
Сначала помощник жил разделом внутри инструкции, и его просто не находили. Вынесли на отдельную страницу с кнопкой в шапке. Один вопрос стоит около тридцати копеек, лимит тридцать вопросов в сутки, то есть до десяти рублей в день. Запрос весит 5 077 токенов, 98% из них берутся из кеша поставщика, за счёт этого цена держится на копейках.
Что получилось
Базовый конструктор собрали за один день, 7 августа 2026 года: знания, цены, стоп-темы, поведение, журнал. Дальше раздел рос по запросам заказчика: рубильник сценария продаж, вкладка «Подключения», помощник по настройке, два тона разговора о деньгах по просьбе отдела продаж. Всего раздел настроек затронули 35 коммитов из 171 по проекту.
На итоговой приёмке закрыто 9 из 9 пунктов приложения к договору, включая пункт «база знаний правится заказчиком из окна». Приёмочный прогон из 35 сценариев прошёл 79 обязательных проверок из 79, это уже про бота целиком.
Главное изменение звучит буднично. Цена, новая услуга, запретная тема и истёкший ключ перестали быть поводом писать разработчику и ждать выкатки.
Частые вопросы
Можно ли менять тексты и цены в чат-боте самому, без программиста?
Да. В рабочем окне есть раздел «Настройки бота»: знания, цены, стоп-темы, поведение, подключения и журнал. Правка знаний и цен действует со следующего ответа бота, настройки поведения подхватываются за минуту. Доступ к серверу и релиз для этого не нужны.
Сколько ждать, если после запуска бота поменялась цена или добавилась услуга?
Столько, сколько занимает правка строки в таблице цен. Бот называет только согласованные суммы из этой таблицы и читает её на каждом ответе. Ноль релизов на смену цены, услуги или ключа доступа.
Как один AI-бот работает и на Авито, и во ВКонтакте?
Бот ведёт первую линию продаж сразу в двух каналах и отдаёт заявку в CRM. Ключи ВКонтакте, Авито и языковой модели заказчик держит во вкладке «Подключения», всего там 7 ключей внешних служб. Значения шифруются, наружу видно только хвост вида «…aBc9». Кнопка «Проверить» делает настоящую генерацию и по-русски пишет, если на счёте нет средств.
Бот ответил клиенту не то. Как это исправить?
Внутри есть помощник, которому вопрос задают своими словами. Он отвечает по вашей же базе знаний: какую карточку открыть и что в ней заменить. Один вопрос стоит около тридцати копеек, лимит тридцать вопросов в сутки. Правки видны в журнале: кто, когда, что менял и каким было прежнее значение.
Опасно ли пускать сотрудников в настройки бота?
Раздел видит только администратор. Открывается он повторным вводом личного пароля на тридцать минут, общего «пароля разработчика» в системе нет. В журнале остаётся имя человека и адрес, с которого сделана правка. Новое стоп-слово перед сохранением прогоняется по пятнадцати типовым обращениям клиентов, чтобы оно не отшивало живые заявки.
