← Все кейсы
Финансы Продажи

Инвестиционное подразделение крупного банка

AI-агент сам находит момент для разговора, выбирает продукт под портфель и историю клиента, ведёт диалог по жёсткой воронке и не выходит за рамки комплаенса.

фразы из чата

Сможете заметить, где агент остановит себя?

Фразы из банковского чата. Пройдет ли каждая через комплаенс-фильтр агента?

1 / 5
Купонный доход по этой облигации фиксированный — 12% годовых, но если эмитент допустит дефолт, вы можете потерять всю сумму вложений, а не только купон.

Как агент находит границу между информированием и рекомендацией — в кейсе ниже

Задача

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

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

Когда агент решает написать

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

Как агент ведёт продажу

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

Комплаенс здесь встроен не как один фильтр “на выходе”, а как набор жёстких границ на нескольких уровнях. Агенту нельзя давать инвестиционные рекомендации, обещать доходность, строить прогнозы, подсказывать ответы на квалификационные тесты и сравнивать продукт с вкладом так, чтобы это выглядело как агитация. Дисклеймер показывается в интерфейсе приложения, а не в тексте ответа, чтобы не рвать разговор.

Что ломалось и как чинили

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

Разобрать эти поломки подробнее
КЛЮЧЕВЫЕ СЛОВА ЛОМАЛИ СМЫСЛ
первая версия классификации намерений
Агент понимал клиента слишком буквально. Во фразе «выгода от этого какая?» система слышала согласие из-за частицы внутри слова и перескакивала к презентации. Пришлось уйти от логики по ключевым словам к каскаду из правил, языковой модели и корректирующих слоёв.
ВОЗРАЖЕНИЯ ЗАЦИКЛИВАЛИ ВОРОНКУ
лимит на раунды создал новую проблему
Ранняя версия могла спорить с клиентом бесконечно. Ограничение в два раунда исправило одно поведение, но открыло другое: часть реплик система не засчитывала как возражение и диалог всё равно застревал. Финальное решение получилось грубее, чем хотелось: если разговор дошёл до стадии возражений, каждое следующее сообщение клиента приближает передачу менеджеру.
ОДИН ФИЛЬТР НЕ РЕШАЛ КОМПЛАЕНС
«проверить ответ перед отправкой» оказалось недостаточно
Агент начал подсказывать ответы на квалификационные тесты и формулировать фразы, которые регулятор считал бы нарушением. Комплаенс пришлось разложить на слои: ограничения в инструкциях, сценарии отказа, логические проверки в ходе диалога, проверка стартовых сообщений и дополнительный аудит после генерации.
ПАМЯТЬ СМЕШИВАЛА ПРОДУКТЫ
история диалогов оказалась опаснее, чем её отсутствие
Когда в систему добавили учёт предыдущих диалогов, агент начал переносить старые темы в новый разговор. Клиенту, которому неделю назад рассказывали о пенсионной программе, в разговоре про облигации снова прилетала «пенсия». Между диалогами нельзя переносить весь прошлый разговор, только короткую структурированную карточку прошлого контакта.

Как устроено сейчас

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

Документы по пяти категориям продуктов система перечитывает и переиндексирует автоматически. Менеджер по продукту меняет условия в документе, система разбирает эти изменения, обновляет карточку продукта и подмешивает новую методику в рабочий контекст без релиза. Поэтому агент не “знает всё сам” — он каждый раз собирает контекст из актуальных данных.

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

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

Что под капотом — инженерная карта системы
СИГНАЛ
цикл загрузки · клиент · тип сигнала · состояние портфеля · прошлые исходы
параллельно
КОНТАКТ
решает, можно ли писать клиенту прямо сейчас
Монитор DWH Temporal
собирает пакет сигналов и нормализует карточки клиента
Жёсткие стоп-фильтры PostgreSQL
активный диалог, минимальный интервал, лимит касаний, повтор того же сигнала → стоп
Разбор стоп-факторов LLM + rules
учится на отклонённых диалогах и исключает повторный неуместный контакт
ПРОДУКТОВЫЙ КОНТУР
превращает продуктовые документы в данные, которыми можно управлять без релиза
Разбор документов разбор → нормализация
разделяет описание продукта, риски и методику продажи
Слой знаний Qdrant + product_records
собирают каноническую карточку продукта и фрагменты для точечного поиска в диалоге
в диалоговый контур подмешиваются →
контекст триггера один текущий продукт фрагмент методики под текущий этап карточка прошлого контакта
ДИАЛОГОВЫЙ КОНТУР на каждом сообщении клиента
контекст диалога держит режим, продукт, сигнал, стадию, исход и счётчики
интент определяется каскадом: быстрые правила → LLM → корректирующие правила
после выбора продукта включается жёсткий режим: один продукт, один сигнал, одна воронка
машина состояний удерживает маршрут Старт → Уточнение → Подача → Возражение → Следующий шаг / Передача менеджеру, а комплаенс встроен в переходы и аудит ответа
ПАМЯТЬ И ЖИЗНЕННЫЙ ЦИКЛ
внутри диалога агент читает полную историю текущего разговора
между диалогами подмешивается только структурированная карточка прошлого контакта
планировщик закрывает незавершённые диалоги по тайм-ауту и отправляет следующее касание по состоянию маршрута
3 контура · 2 режима разговора · 5 продуктовых категорий · 17 типов сигнала
Qdrant + product_records · карточка контакта + следующее касание + тайм-аут · инструкции + машина состояний + аудит

Результат

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

Главное, что изменилось, — не технология, а возможность. Сегмент, который было нерентабельно вести менеджерами и бессмысленно накрывать рассылкой, получил управляемый персональный канал продаж. Не ещё один чат-бот, а разговор один-на-один там, где раньше его не существовало.

10 недель от старта до боевого трафика
5 категорий инвестиционных продуктов
17 триггеров для запуска диалога
47% правок — из живых диалогов с клиентами
Каскадная классификация намерений клиента
Многослойный комплаенс: prompt, FSM, аудит
10 недель от старта до боевого трафика
5 категорий инвестиционных продуктов
17 триггеров для запуска диалога
47% правок — из живых диалогов с клиентами
Каскадная классификация намерений клиента
Многослойный комплаенс: prompt, FSM, аудит

Модули платформы в этом проекте

Чат и агенты pydantic-ai

Жёсткая структура продажи: от приветствия до закрытия сделки, с лимитами на повторные возражения и уход от темы. Агент следует сценарию, а не импровизирует

Документы Qdrant

Продуктовая база знаний: 153 страницы документации автоматически разбираются, нарезаются и индексируются. Методики продаж, УТП, типовые возражения — по каждому из пяти продуктов

Инференс

DeepSeek V3: понимание намерений клиента, генерация ответов в корпоративном тоне, анализ истории диалогов

Guardrails

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

Расскажите, какой процесс хотите разобрать.

Ответим, подходит ли задача для AI-агентов, и если да, предложим конкретный план.

или напишите напрямую — ilya@manaraga.ai