惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
大猫的无限游戏
大猫的无限游戏
Apple Machine Learning Research
Apple Machine Learning Research
T
Tailwind CSS Blog
人人都是产品经理
人人都是产品经理
博客园 - Franky
阮一峰的网络日志
阮一峰的网络日志
腾讯CDC
小众软件
小众软件
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
WordPress大学
WordPress大学
博客园 - 叶小钗
博客园 - 司徒正美
博客园 - 三生石上(FineUI控件)
博客园 - 【当耐特】
有赞技术团队
有赞技术团队
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
V
Visual Studio Blog
J
Java Code Geeks
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
月光博客
月光博客
IT之家
IT之家
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园_首页
爱范儿
爱范儿
罗磊的独立博客
雷峰网
雷峰网
量子位
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Hugging Face - Blog
Hugging Face - Blog
Cyberwarzone
Cyberwarzone
G
GRAHAM CLULEY
宝玉的分享
宝玉的分享
P
Privacy International News Feed
S
Schneier on Security
W
WeLiveSecurity
H
Heimdal Security Blog
I
Intezer
Jina AI
Jina AI
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 聂微东
美团技术团队
N
News | PayPal Newsroom
T
The Exploit Database - CXSecurity.com
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
aimingoo的专栏
aimingoo的专栏
S
SegmentFault 最新的问题
Project Zero
Project Zero
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
От NLU-бота к ИИ-агенту: как мы пробили потолок автоматизации в поддержке крупного банка
just_ai (Jus · 2026-04-29 · via Все публикации подряд на Хабре

Уровень сложностиСредний

Время на прочтение9 мин

Охват и читатели298

Кейс

Привет, Хабр! На связи команда Just AI.

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

Потолок NLU-ботов и цели автоматизации в банковском сервисе

Как и многие крупные компании, наш клиент-банк давно использовал NLU-бота (бот на основе распознавания намерений) для поддержки первой линии. Но со временем система, которая когда-то казалась эффективной, превратилась в источник проблем. Команда столкнулась с классической ситуацией:

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

  • Сложность поддержки. NLU-бот работал так: входящий текст анализировался с помощью регулярных выражений или моделей машинного обучения, определялась нужная ветка сценария — и пользователь шел по заранее заданному пути, выбирая опции, предложенные ботом. Свободный диалог был ограничен. Под каждый тип запроса лингвисты вручную прописывали фразы, которые приводят в нужное место сценария, и скрипты обработки. Появился новый продукт в банке — садись и пиши фразы, пиши скрипты, думай, как точно снавигировать бота в новую ветку и при этом не сломать старые. Любое изменение требовало полного прогона сценария.

  • Непонимание контекста. Бот реагировал на последнее сообщение, но плохо понимал общую суть диалога. Пользователи часто попадали не в ту ветку, злились, и все это вело к негативу.

Пример схемы NLU-бота

Пример схемы NLU-бота

Стало ясно, что решение нужно не дорабатывать, а менять сам подход. Перед нами стояли четкие цели:

  • повысить уровень автоматизации и снизить долю переводов на оператора;

  • обеспечить быстрые ответы без потери качества;

  • давать персонализированные ответы на основе данных клиента.

Почему ИИ-агент, а не NLU-бот

Давайте поговорим о том, что меняется под капотом, когда мы переходим на агентский подход. Он предполагает, что с клиентом разговаривает не скрипт, а система на базе LLM, которая способна рассуждать. 

Классический NLU-бот — это, по сути, сложная система «если... то...», работающая по заранее прописанным правилам. 

ИИ-агент — это автономный исполнитель. Его работа строится на двух основных компонентах:

  • «Мозг агента» — LLM (большая языковая модель), которая отвечает за понимание запроса, рассуждение и построение логики для достижения цели.

  • «Руки» — инструменты — это набор функций, которые агент может вызывать. Например, сходить в базу данных банка, обратиться к API (программному интерфейсу) для получения транзакций и так далее.

Таким образом агент сам выстраивает логику решения запроса, а не просто идет по веткам сценария. 

Казалось бы, можно взять одного хорошо настроенного агента с детальной инструкцией (промптом) — и этого достаточно. В большинстве сценариев так и есть. Но банковский контекст накладывает жесткое требование: ответ должен быть не просто релевантным, а фактически точным. Любая галлюцинация — это репутационный риск. Один агент, каким бы хорошим он ни был, не дает нужного уровня контроля. Именно поэтому мы сразу проектировали систему как мультиагентную.

Архитектура нашего решения

Наша мультиагентная система состояла из двух агентов и набора функций, которые давали доступ к данным и бизнес-логике. Мы не можем раскрывать полный список из-за NDA (соглашения о неразглашении), но приведем типовые примеры таких функций:

  • поиск одной или нескольких транзакций клиента;

  • проверка активных кешбэк-программ и акций;

  • расчет и проверка начисленного кешбэка для отдельной транзакции;

  • проверка лимитов и условий программ;

  • получение информации из базы знаний.

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

  • Основной агент: его задача — вести диалог с клиентом, понимать его запрос и использовать инструменты для получения данных. 

  • Агент-судья: это наш внутренний контроль качества. Он проверяет ответ основного агента, прежде чем тот уйдет клиенту. Если «Судья» видит галлюцинацию или неточность, он перенаправляет ответ обратно в первого агента и просит его переделать — в банковских сценариях такая проверка просто обязательна.

Собираем агентов для мультиагентной системы

Разберем, как собирается такая система на Just AI Agent Platform. Процесс очень наглядный и состоит из нескольких шагов. Можно забыть про сотни строк скриптового кода и запутанные ветки — здесь все строится на логических блоках.

Шаг 1: Собираем каркас на холсте

Все начинается с пустого холста — это наше рабочее пространство. Слева у нас есть палитра с четырьмя типами блоков:

  • Агенты — это «мозг» нашей системы на основе LLM.

  • Функции — те самые «руки», которые мы даем агенту.

  • Триггеры — то, что запускает нашего агента. Чаще всего это сообщение в чате, но может быть и веб-хук, и письмо на почту.

  • Технические блоки: отправка ответа, блоки с кодом и т.д.

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

Шаг 2: Настраиваем первого агента

Это самый важный этап, где мы заполняем несколько полей:

  1. Модель: создаем интеграцию с LLM и выбираем эту LLM, которая будет «мозгом».

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

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

  4. Промпт- инструкция. Здесь мы даем агенту все те знания, которых у LLM по умолчанию быть не может. Именно в инструкции мы прописываем:

  • Как работать с конкретными запросами клиентов по кешбэку.

  • Как и когда использовать доступные ему функции.

  • Как реагировать на нерелевантные вопросы, грубость и попытки взломать через промпт-инъекции (атаку через подмену инструкций).

  • Бизнес-правила: любая  LLM обучена на широком массиве текстов, поэтому у нее  уже есть знания о разнообразных темах по умолчанию (например, о том, как работают банки или кешбэк «в общем»), но их часто нужно уточнять или переопределять под конкретный продукт. Поэтому в системном промпте мы можем дополнить недостающую информацию.

Чем детальнее инструкция, тем предсказуемее и точнее будет работать агент.

Настройки агента в Agent Platform

Настройки агента в Agent Platform

Шаг 3: Настраиваем функции

Теперь даем агенту «руки» для взаимодействия с системами банка. Этот агент обладает большим количеством функций, при этом не путается в них, потому что эти функции специализированы. 

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

  • get_transactions (user_id, store_name, date_range): получает транзакции клиента за определенный период.

  • get_cashback_programs (user_id): узнает, какие кешбэк-программы активны у клиента.

  • get_info_from_knowledge_base (query): ищет ответы на общие вопросы в базе знаний*

*Это лишь часть функций: полный список не приводим из-за NDA.

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

Шаг 4 Настраиваем второго Агента-судью. Путь такой же:

  • Модель: создаем интеграцию с LLM и выбираем эту LLM, которая будет «мозгом».

  • Роль: специалист банка.

  • Цель: проверить ответ автоматического агента на вопрос пользователя.

  • Описываем подробную инструкцию.                                                                                                                

Шаг 5 Тестирование и отладка

После того как все готово, мы публикуем проект и запускаем тестовый виджет. Здесь мы можем вести диалог с агентом так, как это делал бы реальный клиент.

Для того, чтобы продемонстрировать решение клиенту мы собрали аналог личного кабинета банка — у нас там есть пользователь Андрей, у него есть активные программы кешбэка, список транзакций за неделю — те, за которые есть кешбэк, и за которые нет.

Именно на этом этапе мы проверяем, как агент справляется с разными формулировками. Пользователи, как вы знаете, часто пишут на разговорном языке, с ошибками и сленгом. Например: «Йо, покупал тут неделю назад курицу и яйца, кешбэк будет?».

В соседнем окне мы открываем логи (журнал событий). Это позволяет видеть весь мыслительный процесс агента:

  • Какой запрос он получил.

  • Как он его интерпретировал.

  • Какую функцию он решил вызвать.

  • С какими параметрами он ее вызвал.

  • Какой ответ он получил от функции.

  • Как он на основе этого ответа сгенерировал финальный текст для пользователя.

Логи — ключевой инструмент для отладки и дообучения агента через уточнение инструкций.

Старый бот на таком запросе бы споткнулся: сленговое «йо», отсутствие конкретного магазина, размытый временной диапазон «неделю назад» — любой из этих факторов мог привести не в ту ветку. Агент же делает следующее:

  1. Он понимает запрос: речь идет о покупках продуктов питания за последнюю неделю, магазин не уточнен.

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

  3. Из базы данных банка приходит информация: транзакция от 25 марта 2026 года в «Магните» на сумму 1122,57 ₽.

  4. Агент видит, что у клиента активна программа «Категорийный кешбэк Продукты питания» со ставкой 5%. Считает: 1122,57 × 0,05 = 56,12 ₽.

  5. Собирает все это в человеческий ответ: «Привет, Андрей! Я проверил твои покупки за последнюю неделю. Нашел транзакцию по категории "Продукты питания" от 25 марта в "Магните" на сумму 1122,57 ₽. По программе "Категорийный кешбэк Продукты питания" тебе начислят 5% — это 56,12 ₽. Кешбэк будет начислен в следующем месяце».

Скриншот диалога с агентом

Скриншот диалога с агентом

Второй запрос на той же сессии — другой вариант задачи, которую бот с успехом решил. Пользователь написал: «Я оплачивал недавно электричество, заплатят ли мне кешбэк?»

Агент вызывает ту же функцию get_transactions, находит платеж в Мосэнерго на 10 000 ₽ и определяет категорию — «коммунальные услуги». Дальше он обращается к бизнес-правилам из инструкции и отвечает: «Эта категория не участвует в программах лояльности, кешбэк начислен не будет».

Это важный момент: агент не просто извлекает данные, он применяет правила. Никакой ветки сценария под «оплату ЖКХ» нет — есть инструкция с логикой, и агент сам разбирается, что к ней относится.

Результаты в цифрах

Конечно, самое интересное — это то, как внедрение агента отразилось на реальных бизнес-метриках. Но сначала — о том, как именно мы это измеряли, потому что тестирование ИИ-агента принципиально отличается от тестирования NLU-бота.

Как устроено тестирование

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

Исходные данные — реальная выгрузка диалогов с NLU-ботом из системы банка, включая как успешно закрытые обращения, так и те, что ушли на оператора. Дальше — несколько этапов тестирования:

  • Предобработка: отсеивали неполные и бессмысленные диалоги, приводили их в формат, читаемый языковой моделью — сообщения с ролями user, assistant, system.

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

  • Разметка: добавляли теги для навигации — например, почему NLU-бот не решил вопрос, или суммаризацию цели клиента.

В роли клиента во время тестирования выступала отдельная языковая модель. Она начинала диалог с тех же запросов, что и реальный пользователь, и пыталась за несколько сообщений добиться своей цели. Если вопрос не решался за 3–4 сообщения — диалог считался нерешенным.

Результаты ответов агента оценивал еще один независимый судья — отдельная языковая модель, которая выставляла оценки по четырем параметрам: корректность ответа, полнота, релевантность контексту и соответствие бизнес-правилам.

Оговорка про выбор модели

Не каждая модель справилась одинаково. Мы тестировали несколько вариантов на одной и той же базе диалогов. Первая — более слабая — давала результаты примерно на уровне старого NLU-бота: чуть лучше понимала контекст, но по проценту решенных вопросов принципиально не отличалась. Вторая показала совсем другой результат и была принята заказчиком. Ниже привели сравнение NLU-бота и обеих моделей.

Оценки по четырем параметрам

Оценки по четырем параметрам

Вывод, который мы для себя сделали: в агентных системах выбор модели влияет на результат не меньше, чем архитектура или промпт. Иногда — даже больше.

Итак, цифры

  • Нагрузка на операторов снизилась более чем на 13%.

  • Качество диалогов улучшилось почти в 1.5 раза, а точность понимания вопроса, даже со сленгом и опечатками, выросла на 20%. Клиенты стали получать релевантные ответы быстрее.

  • Автоматизация: уровень решения вопросов без участия человека вырос с ~37% до показателей, сопоставимых с работой опытного оператора — 64,2%.

Выводы

Что хочется сказать в итоге? Агентный подход — это не волшебство (хотя порой эффект именно такой), а инженерный инструмент, с которым нужно уметь работать.

Главная сложность — это, конечно, галлюцинации LLM. Нельзя просто дать модели доступ к данным и ждать чуда. Обязательно проверяем и контролируем. 

Мультиагентная архитектура — это хорошо, но важно дать подробные инструкции в промптах — чем лучше вы объясните агенту его роль и задачу, тем предсказуемее он будет себя вести.

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

Надеемся, этот разбор был полезен. Готовы ответить на вопросы в комментариях!

P.S. Если вам интересно глубже погрузиться в тему разработки мультиагентных систем, RAG-подхода и других тонкостей ИИ-решений для автоматизации, присоединяйтесь к нашему Telegram-сообществу для разработчиков. Там мы делимся новостями, обсуждаем сложности и вместе ищем лучшие решения.