Канал поддержки в MAX: AI-первая линия на RAG с бесшовной эскалацией оператору
Услуги
- ai-development
- complex-systems
Стек
- MAX Bot API
- LightRAG
- Chatwoot CE
- Astro SSR
- HMAC opaque-token
- self-host
Веб Штурм — клиентская поддержка и AI-интеграции. Канал поддержки в отечественном мессенджере MAX: AI-первая линия на RAG отвечает первой из изолированной базы знаний с guardrails, а сложное бесшовно уходит живому оператору в Chatwoot CE. Серверы MAX в РФ + self-host инбокса — 152-ФЗ соблюдён архитектурно. Это наш собственный продукт: мы используем его сами и разворачиваем у клиентов.
Данные кейса — о собственном продукте Веб Штурм. Метрики качественные (характер решения), без клиентских цифр.
Контекст
Клиентская поддержка через мессенджер обычно упирается в две крайности. Либо живой оператор на каждый вопрос — дорого, и большинство обращений типовые («как получить документ», «какие форматы поддерживаются»). Либо примитивный бот по кнопкам, который раздражает клиента и не отвечает на свободный вопрос.
Отдельная боль — потеря контекста: клиент приходит со страницы услуги, из кейса, из статьи, а обычный бот этот контекст теряет, и клиент вынужден заново объяснять, о чём речь.
Нужна была схема, где AI снимает типовые вопросы, контекст входа не теряется, а сложные случаи попадают человеку без разрыва диалога — аналог «открытых линий», но на отечественном мессенджере и со своей AI-первой линией.
Какие вызовы решены
Как AI-первая линия отвечает без галлюцинаций? RAG-запрос к выделенной базе знаний поддержки (отдельный, изолированный инстанс LightRAG). Ответ строится только из контекста базы, а не из общих знаний модели; guardrails запрещают обещать цены и сроки. К ответу прикладываются ссылки «Подробнее» на страницы-источники — клиент видит, откуда взят ответ. Нет ответа в базе — бот эскалирует, а не импровизирует.
Как изолировать клиентскую базу знаний от внутренних данных? Это архитектурная граница, а не настройка фильтра: отдельный инстанс с отдельным набором документов. Клиентский ассистент физически не может процитировать то, что не предназначено клиентам.
Как сделать передачу оператору бесшовной и замкнуть петлю? Эскалация в Chatwoot CE через API channel по трём триггерам: нет ответа в базе, просьба о человеке, кнопка «Соединить с оператором». Оператор видит историю и контекст входа, отвечает из единого интерфейса, ответ автоматически возвращается клиенту в MAX. Петля двусторонняя: клиент пишет дальше — сообщение снова доходит до оператора, оператор отвечает снова, контекст и история сохраняются. Никакой собственной админки операторов — Chatwoot даёт назначения, шаблоны, часы работы и CSAT из коробки.
Как сохранить контекст входа? Кнопка «в MAX» на сайте ведёт через серверный редирект, который запоминает страницу-источник (тот же подход, что у кнопки «Обсудить»: подписанный opaque-токен страницы + идентификатор перехода) и фиксирует переход как событие конверсии. Бот с первого сообщения «знает», откуда пришёл клиент.
Как делать рассылки, не нарушая 152-ФЗ? Два формата: публичный канал MAX (один-ко-многим) и адресная рассылка через бота строго по opt-in. Адресные сообщения уходят только подписчикам с согласием; команда /stop мгновенно отписывает.
Подход
- AI-первая линия с guardrails — RAG из изолированной базы знаний, жёсткий запрет на цены/сроки, эскалация при незнании как штатный сценарий, а не сбой.
- Готовый инбокс вместо велосипеда — Chatwoot CE на self-host; интеграция = один адаптер «MAX ↔ Chatwoot». Дополнительно — резервный канал через Telegram: оператор ведёт те же диалоги MAX из Telegram, а клиент остаётся в MAX. Это альтернативный операторский фронт того же диалога (как устроен мост).
- Единый контекст-токен на все каналы — точка входа в MAX и веб-форма используют один механизм фиксации перехода, поэтому каналы сравнимы в одной воронке.
- 152-ФЗ в архитектуре — серверы MAX в РФ, self-host инбокса и базы знаний в своём периметре, рассылки только по opt-in.
Результат
- AI-первая линия снимает типовые вопросы без участия оператора, прикладывает ссылки-источники; человек подключается только к сложному.
- Замкнутая петля «клиент ↔ AI ↔ оператор»: ответ оператора возвращается в MAX, клиент пишет дальше — двусторонний диалог в одном окне, оператор работает в едином интерфейсе Chatwoot.
- Клиентская база знаний изолирована — ассистент не имеет доступа к внутренним данным в принципе.
- Контекст входа со страницы сайта доезжает до бота — клиент не объясняет всё заново.
- Канал и веб-форма сравнимы в одной воронке: видно, какой контент приводит обращение и через какой канал.
- 152-ФЗ соблюдён конструктивно: РФ-серверы, self-host, opt-in рассылки.
Что использовали
MAX Bot API как клиентский канал (серверы в РФ). LightRAG (изолированный инстанс) для AI-первой линии. Chatwoot CE на self-host как операторский инбокс (API channel, CSAT, шаблоны, часы работы). Astro SSR-роут + opaque HMAC-токен страницы для сохранения контекста входа. Telegram — опциональный резервный мост.
Что мы можем сделать у вас
Если вам нужен клиентский канал поддержки с AI-первой линией и живым оператором в РФ-периметре — мы развернём его под ваш стек: изолированная база знаний с guardrails, бесшовная эскалация в Chatwoot, рассылки по opt-in, соответствие 152-ФЗ с первого дня. Написать нам
Часто задаваемые вопросы
Как AI-ассистент не выдумывает цены и сроки?
Что происходит при передаче диалога оператору?
Почему Chatwoot, а не своя админка операторов?
Почему MAX, а не Telegram или WhatsApp?
Когда такой канал не нужен?
Похожая задача?
Расскажите контекст — подскажем, что и как делать.