Перейти к содержанию
Новое AiManual теперь в MAX Подписаться
Публикация AiManual

Как LendingTree построила мультиагентного ипотечного ассистента на Amazon Bedrock: архитектура, решения, результаты

Детальный разбор мультиагентной системы LendingTree: три агента на Amazon Bedrock, координация через LangGraph и MCP, оптимизация затрат с Amazon Nova, метрики

Коротко

Что будет в материале

  1. 01

    Введение: зачем LendingTree мультиагентный ассистент и как он работает

  2. 02

    Архитектура мультиагентной системы: супервизор и специализированные воркеры

  3. 03

    Ключевые инженерные решения: от отладки до безопасности

  4. 04

    Производственные метрики и результаты: что показал запуск

Введение: зачем LendingTree мультиагентный ассистент и как он работает

LendingTree - один из крупнейших игроков на рынке ипотечного кредитования США, ежемесячно обрабатывающий миллионы запросов от заёмщиков. Ипотечное консультирование - процесс с высокой когнитивной нагрузкой: клиенту нужно объяснить типы кредитов, помочь сравнить ставки, учесть кредитную историю и региональные программы. Операторы тратили до 40% времени на повторяющиеся образовательные вопросы, а персонализированный подбор предложений требовал ручного переключения между несколькими внутренними системами. Целью стало создание ассистента, который возьмёт на себя оба типа задач без потери качества.

Решение - мультиагентная система на Amazon Bedrock из трёх агентов: супервизор, образовательный воркер и воркер подбора предложений. Координация построена на LangGraph и Model Context Protocol (MCP), инференс - на моделях Amazon Nova. Результат: более 97% диалогов обрабатываются без эскалации на человека, а количество транзакционных обращений выросло на 50% к Q1 2026. Этот разбор - детальная карта архитектуры и инженерных решений, которые сделали такие метрики возможными.

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

Стек технологий заслуживает отдельного внимания. Amazon Bedrock предоставил управляемый доступ к моделям Nova Pro и Nova Lite, сняв с команды заботу об инфраструктуре инференса. LangGraph взял на себя оркестрацию - граф состояний с условными переходами между агентами. MCP стандартизировал подключение к внешним API: сервисам проверки кредитного рейтинга, базам ипотечных продуктов, внутренним системам андеррайтинга. Эта связка описана в нашем разборе мультиагентных систем в ритейле - архитектурные принципы переносимы между доменами.

Архитектура мультиагентной системы: супервизор и специализированные воркеры

Архитектура держится на трёх агентах с жёстко разделёнными зонами ответственности. Супервизор - точка входа для любого запроса. Он не генерирует финальный ответ, а выполняет две функции: классифицирует намерение пользователя и составляет план действий. Если запрос звучит как «Объясните разницу между фиксированной и плавающей ставкой», супервизор направляет его образовательному воркеру. Если пользователь говорит «Мне 34 года, доход 120 тысяч, первый взнос 15% - какие варианты?», в дело вступает воркер подбора предложений.

Образовательный воркер - это агент, работающий с Knowledge Bases на Amazon Bedrock. Его задача - извлекать релевантную информацию из базы документов: описаний ипотечных продуктов, глоссариев, нормативных документов, FAQ. Он не имеет доступа к персональным данным пользователя и не может формировать кредитные предложения. Воркер подбора, напротив, интегрирован через MCP с внутренними системами LendingTree: CRM, сервисами кредитного скоринга, базами актуальных ставок. Он собирает данные о пользователе, прогоняет их через правила андеррайтинга и возвращает персонализированный список предложений.

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

LangGraph и MCP: координация агентов и интеграция инструментов

LangGraph управляет потоком диалога через направленный граф состояний. Узлы графа - это вызовы агентов, рёбра - условные переходы, зависящие от результата классификации намерения. Супервизор после анализа запроса передаёт управление одному из двух узлов: educational_worker или offer_worker. Если запрос составной - например, «Расскажите про ипотеку с господдержкой и подберите вариант под мой профиль», супервизор сначала активирует образовательного воркера, а затем, получив от пользователя необходимые данные, запускает воркера подбора.

MCP играет роль универсального коннектора. Вместо того чтобы писать кастомные интеграции под каждый внешний сервис, команда LendingTree реализовала MCP-серверы, предоставляющие стандартизированный интерфейс к API. Воркер подбора предложений вызывает инструменты через MCP, не зная деталей реализации бэкенда. Схема вызова выглядит так: агент формирует запрос на естественном языке, LangGraph преобразует его в вызов MCP-инструмента, сервер выполняет REST-запрос к внутреннему API, ответ преобразуется обратно в контекст для модели. Задержка на всю цепочку - менее 800 мс.

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

Ключевые инженерные решения: от отладки до безопасности

Пять инженерных решений определили успех системы. Первое - разделение планирования и выполнения. Супервизор генерирует план на естественном языке: «Шаг 1: объяснить типы ипотечных ставок. Шаг 2: запросить доход и первый взнос. Шаг 3: подобрать предложения». План логируется отдельно от финального ответа, что позволяет находить ошибки маршрутизации, не анализируя всю историю диалога. Команда внедрила дашборд в CloudWatch, где планы супервизора сопоставляются с реальными траекториями - расхождения подсвечиваются автоматически.

Второе решение - семантическое разбиение документов для Knowledge Bases. Стандартное чанкование по фиксированному размеру (например, 1000 токенов) разрывает смысловые блоки: определение термина может оказаться в одном чанке, а пример - в другом. Команда LendingTree применила разбиение по границам абзацев с учётом заголовков, что повысило релевантность поиска: точность извлечения нужного фрагмента выросла с 72% до 89% на внутреннем бенчмарке из 500 типовых запросов.

Третье решение - управление контекстом через PostgreSQL checkpointers. Диалоги по ипотеке длятся в среднем 12-15 шагов, пользователи возвращаются к ассистенту спустя часы или дни. Хранение полной истории в оперативной памяти агента невозможно, а передача всего контекста на каждом шаге резко увеличивает стоимость инференса. PostgreSQL выступает персистентным хранилищем состояния: LangGraph сохраняет чекпоинты после каждого перехода, а при возобновлении диалога загружает релевантный фрагмент истории. Размер контекстного окна сократился в среднем на 40% без потери связности ответов.

Оптимизация затрат: маршрутизация между Amazon Nova Pro и Nova Lite

Маршрутизация между моделями - прямой рычаг управления стоимостью инференса. Nova Lite обрабатывает простые запросы: определения, FAQ, запросы на уточнение. Nova Pro включается для задач, требующих многошаговых рассуждений: сравнение нескольких ипотечных предложений с учётом индивидуальных параметров, анализ компромиссов между ставкой и сроком кредита, генерация объяснений сложных финансовых концепций.

Критерии маршрутизации зашиты в супервизора. Он оценивает сложность запроса по трём параметрам: количество сущностей в запросе, необходимость математических вычислений, наличие сравнительных конструкций. Если запрос набирает выше порогового значения - активируется Nova Pro, иначе - Nova Lite. Такой подход снизил среднюю стоимость обработки диалога на 35% по сравнению с использованием только Nova Pro, при этом качество ответов на сложные запросы не пострадало. Методологию оценки качества мы разбирали в кейсе Similarweb с LangSmith - там же описан подход к калибровке метрик.

Безопасность и соответствие: Guardrails и управление контекстом

Ипотечное кредитование - регулируемая отрасль с жёсткими требованиями к защите данных и добросовестности консультирования. LendingTree внедрила два контура безопасности. Первый - Amazon Bedrock Guardrails, проверяющий каждый промпт и ответ. Проверка идёт параллельно с инференсом, а не последовательно: пока модель генерирует ответ, отдельный процесс анализирует входные данные на предмет попыток jailbreak и утечки персональной информации. Задержка от параллельной проверки - менее 50 мс, что укладывается в бюджет latency всей системы.

Второй контур - аудит через PostgreSQL checkpointers. Каждый шаг диалога, включая план супервизора, выбранного воркера, сгенерированный ответ и результат проверки Guardrails, сохраняется с временной меткой и идентификатором сессии. Это даёт полную воспроизводимость любого диалога для compliance-проверок. В regulated-индустриях такой подход - не опция, а требование, что подтверждает опыт внедрения агентов в финансовом секторе.

Отдельный вызов - предотвращение галлюцинаций в финансовых рекомендациях. Воркер подбора предложений не генерирует цифры сам - он извлекает их через MCP из авторитетных источников. Если API кредитного скоринга возвращает ошибку или таймаут, агент честно сообщает пользователю о недоступности сервиса, а не придумывает правдоподобные значения. Такой подход потребовал дополнительной обработки отказов, но исключил риск дезинформации.

Производственные метрики и результаты: что показал запуск

С момента запуска до Q1 2026 система обработала более 2,3 миллиона диалогов. Ключевая метрика - доля полностью автоматизированных сессий - составила 97,2%. Оставшиеся 2,8% случаев, требующих эскалации на оператора, распределяются так: 1,5% - запросы, выходящие за пределы компетенции воркеров (юридические консультации, споры по кредитным отчётам), 0,8% - технические сбои интеграций, 0,5% - неопределённые намерения, которые супервизор не смог классифицировать с достаточной уверенностью.

Рост транзакционных обращений на 50% - прямой бизнес-результат. Пользователи, получившие качественную образовательную консультацию, с большей вероятностью переходят к заявке на ипотеку. Ассистент сократил время от первого вопроса до заполнения заявки с 3-4 дней до 18 минут в медианном случае. Конверсия в заявку выросла с 12% до 19% от числа проконсультированных пользователей.

Среднее время ответа - 1,2 секунды для простых запросов (Nova Lite) и 3,8 секунды для сложных (Nova Pro). Пользовательская оценка качества ответов, собираемая через пост-диалоговый опрос, стабилизировалась на уровне 4,4 из 5. Наиболее частые негативные отзывы связаны с излишней осторожностью агента в нестандартных ситуациях - система предпочитает эскалировать сомнительный запрос, чем рисковать неточным ответом.

Уроки масштабирования мультиагентных систем в регулируемых отраслях

Первый урок: модульная архитектура с разделением на супервизора и воркеров критична для итеративной разработки. Команда LendingTree выпускала обновления образовательного воркера еженедельно, не затрагивая воркера подбора. Это позволило быстро реагировать на изменения в ипотечных программах без регрессионного тестирования всей системы.

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

Третий урок: маршрутизация между моделями разной мощности - зрелый паттерн оптимизации затрат. Разница в стоимости инференса между Nova Pro и Nova Lite достигает 4-5 раз, и для 70% запросов пользователи не замечают разницы в качестве ответа. Порог маршрутизации стоит калибровать на реальных данных, а не на интуиции - команда LendingTree провела A/B-тест на 50 тысячах диалогов, прежде чем зафиксировать критерии.

Четвёртый урок: семантическое чанкование документов даёт больший прирост качества, чем увеличение размера модели. Переход от фиксированного разбиения к семантическому поднял точность поиска на 17 процентных пунктов, тогда как замена модели на более мощную дала лишь 5 пунктов при трёхкратном росте стоимости. Этот инсайт применим к любым RAG-системам в финансах, страховании и здравоохранении.

Применимость подхода для ваших проектов: выводы и рекомендации

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

Практические рекомендации для старта: начните с двух агентов - супервизора и одного воркера. Используйте LangGraph как оркестратор - его модель графов состояний интуитивно понятна и хорошо документирована. Внедрите Guardrails с первого дня, даже если кажется, что «пока можно без них». Настройте логирование планов супервизора отдельно от ответов - это сэкономит десятки часов при отладке.

Ограничения подхода: отладка распределённых агентов сложнее, чем монолитного ассистента - баг может проявляться только при определённой последовательности переходов. Затраты на инфраструктуру выше из-за необходимости поддерживать оркестратор и чекпоинты. Для простых сценариев (одношаговые FAQ без интеграций) мультиагентная архитектура избыточна - достаточно одного агента с хорошо настроенным RAG. Оценку альтернатив мы детально разбирали в материале про архитектуру самописных агентов - чек-лист выбора между своей разработкой и готовым решением применим и здесь.

Подписаться на канал