Агентный сервис для аналитических данных в ЮMoney — как LangGraph-пайплайн Text2SQL отвечает на русском и не выдумывает числа
Саммари
ЮMoney описывает Text2SQL-сервис, выросший из внутреннего хакатона: пользователь задаёт вопрос на русском, система подбирает таблицы, генерирует SQL, проверяет и выполняет его, а затем возвращает текст, таблицу, Excel или график — вместо очереди к аналитику. В основе управляемый граф на LangGraph с двухуровневой памятью диалога, детерминированными правилами поверх LLM и четырёхслойной валидацией, главной задачей которой является ловля «синтаксически верного, но не на тот вопрос» запроса. Это один из немногих production-разборов, где архитектура агента описана честно: с отказом от свободной автономии в пользу предсказуемого пайплайна и с принципом «добавить агента несложно — сложно доказать, что стало лучше».
Из этого следует, что в критичных бизнес-пайплайнах выигрывает «предсказуемый граф вместо свободного агента»: автономия добавляется точечно (поиск альтернативных таблиц, Python поверх выгрузки), а не как общая рама.
На практике для Revit-инструментов паттерн переносим напрямую: запрос к модели («сколько элементов такого типа») должен идти через детерминированные проверки — запрет деструктивных операций, валидация до выполнения, контроль «пусто/одна строка/размножение» — а не доверяться тому, что LLM правильно поняла вопрос.
Важный нюанс: «петля доверия» — узнаваемый анти-паттерн и в других агентных системах: оптимизация скорости через пропуск проверки контекста возвращается скрытыми сменами темы; цена ошибки здесь выше выигрыша во времени.
Ограничение: статья не даёт итоговых KPI (точность, доля отклонённых) — команда сама декларирует принцип «внедрять только то, что можно честно проверить», и это скорее зрелость процесса, чем готовый бенчмарк.