
Привет, Habr! На связи Максим Шаланкин из команды Школы аналитиков данных МТС. Каждый год наши студенты в качестве итогового проекта решают реальные бизнес-задачи, и этот не стал исключением. Четверо выпускников — Анна Шестакова, Григорий Суханов, Михаил Футьянов, Алексей Жданов — создали InsightFinder, мультиагентную систему для автоматического анализа данных (EDA). Этот проект автоматизирует EDA и бизнес-интерпретацию данных, сокращая рутинный процесс с нескольких часов до пяти минут.
Добавление бизнес-интерпретации повышает вариативность использования: проект становится полезным инструментом как для специалистов Data Scientist или Data Analyst, так и для менеджеров, которые занимаются развитием продуктов и которым нужна быстрая проверка гипотез.
В этом материале я не только покажу результат работы ребят, но и дам подробное руководство, как создать такое решение самостоятельно. Это будет полезно всем, кто интересуется применением LLM в аналитике, мультиагентными системами и следит за развитием анализа данных.
Идея проекта: когда аналитики устали работать руками
Традиционный EDA — это фундамент любого data-driven-проекта. Однако он требует от много времени: нужно вручную писать код, выбирать методы, интерпретировать графики и составлять отчеты. Команда студентов задалась вопросом: можно ли автоматизировать этот процесс?
Так родился InsightFinder — AI-аналитик, который берет на себя всю рутину. Пользователь просто загружает CSV-файл и формулирует вопрос, а система самостоятельно проводит полный цикл анализа и выдает структурированный отчет с ключевыми выводами и визуализациями.
Мы хотели кнопку, которая превращает сырые CSV в ясные бизнес-выводы быстрее, чем это делает ручной EDA. В процессе научились создавать из хаоса признаков рабочие решения и управлять агентами, чтобы они одновременно следовали правилам и проявляли инициативу.
Григорий Суханов
Нам хотелось попробовать создать целостный продукт, где несколько агентов совместно анализируют данные и выдают понятные бизнес-инсайты. Эта идея казалась одновременно и амбициозной, и применимой на практике, — а это лучшая мотивация.
В процессе пришлось глубоко погрузиться в LangChain, освоить мультиагентную архитектуру, научиться проектировать аналитические тулзы, написать тесты и строго валидировать выводы LLM, чтобы избежать галлюцинаций. Мы решали нетривиальные задачи: как безопасно передавать датафреймы между компонентами, как согласовать логику трех агентов без конфликтов.
Этот проект стал кульминацией всего, чему нас учили в Школе аналитиков данных МТС: от статистики и EDA до MLOps и применения LLM на практике. Но главный профит — опыт настоящей командной работы.
Анна Шестакова
Архитектура InsightFinder: три агента под капотом
Система построена на базе LangChain. Ребята выбрали его за богатый набор готовых компонентов (парсеры, шаблоны промптов) и как индустриальный стандарт для создания агентных систем.
InsightFinder состоит из трех специализированных AI-агентов, каждый из которых выполняет свою роль:
Analyst — «мозг» системы. Его задача — проверять текущее состояние анализа и решать, какой инструмент применить на следующем шаге. Он планирует всю последовательность действий.
Executor — «руки» системы. Он получает команду от Analyst и выполняет конкретный операцию, будь то расчет корреляций или построение модели.
Summarizer — «писатель» и «летописец». Он интерпретирует результаты работы Executor, составляет из них финальный отчет и ведет лог всех шагов, чтобы система не зацикливалась.
Жизненный цикл анализа выглядит так:

Пользователь загружает датасет и задает вопрос. Например: «Какие факторы влияют на отток клиентов?»
LLM автоматически определяет целевую переменную в данных.
Оркестратор запускает цикл анализа, который может состоять из 20 шагов.
На каждом шаге Analyst выбирает один из доступных инструментов.
Executor выполняет его и возвращает результат.
Summarizer документирует результат и обновляет общий отчет.
В конце цикла пользователь получает готовый markdown-отчет.
Набор аналитических инструментов
В арсенале системы — 9 утилит, покрывающих все основные этапы EDA для задач бинарной классификации:
PrimaryFeatureFinder — ищет самый важный признак с помощью простого дерева решений.
CorrelationAnalysis — рассчитывает точечно-бисериальные корреляции.
DescriptiveStatsComparator — сравнивает описательные статистики между двумя группами.
CategoricalFeatureAnalysis — проводит тесты хи-квадрат для категориальных признаков.
FullModelImportance — обучает модель алгоритмом random forest для оценки важности всех признаков.
DistributionVisualizer — строит гистограммы и боксплоты.
OutlierDetector — обнаруживает выбросы.
InteractionAnalyzer — анализирует взаимодействие между признаками.
InsightDrivenVisualizer — создает финальные, наиболее показательные графики.
Мы развели роли: Analyst планирует, Executor считает, Summarizer объясняет, делая поведение предсказуемым. Все инструменты говорят на одном контракте, а оркестратор решает порядок шагов и переживает сбои. Расширение — это один новый тул и его регистрация, без переделки ядра.
Григорий Суханов
Сердце InsightFinder — модульная мультиагентная система, где каждый участник четко знает свою роль.
Чтобы все это не превратилось в хаос, мы заложили три ключевых решения:
Единый контракт для тулзов: все утилиты возвращают результат в унифицированном формате словаря (tool_name, status, summary, details, error_message). Это позволило агентам одинаково обрабатывать любой инструмент, независимо от его внутренней логики.
Централизованный оркестратор, который управляет всем циклом: координирует агентов, сериализует историю выполнения и обеспечивает устойчивость, — даже если один тулз упал, анализ продолжается.
Жесткую валидацию LLM-выводов: с помощью возможностей LangChain, таких как JsonOutputParser и Pydantic-схемы, мы гарантируем, что Analyst Agent возвращает структурированный план, а Summarizer работает по промпту — без свободного творчества.
В итоге мы получили понятный отчет с выводами и рекомендациями, по которому дополнительно можно задавать уточняющие вопросы.
Анна Шестакова
Технологический стек и принятые решения
Язык: Python 3.10+
Агентная архитектура: LangChain 0.3.27
LLM: OpenAI API (модель qwen2.5-32b-instruct)
Анализ данных: pandas, scikit-learn, scipy
Визуализация: matplotlib, seaborn
Веб-интерфейс: Gradio
Контейнеризация: Docker
Вместо локальных моделей мы использовали OpenAI API — для более высокого качества и стабильности структурированных JSON-ответов, что критически важно для предсказуемой работы агентов.
Gradio позволил быстро создать простой и функциональный веб-интерфейс, идеально подходящий для ML-приложений.
Создание автономной AI-системы — это всегда поиск компромиссов. И вот с чем столкнулись ребята.
Фиксированная последовательность vs полная автономия
Изначально команда дала агенту-аналитику полную свободу выбора инструментов. Это привело к хаотичным и нелогичным действиям. Решением стал частично направляемый Analyst. В системный промпт добавили «подсказки» с рекомендуемым планом анализа, что позволило сохранить логику исследования, не лишая агента гибкости.
Только бинарная классификация
Проект работает только на задачах с бинарной целевой переменной (например, отток / не отток). Это значительно упростило логику, промпты и выбор инструментов, позволив довести до идеала именно этот сценарий.
Борьба с «творчеством» LLM
Жестко структурированные промпты: каждый агент должен был отвечать только в строгом JSON-формате без лишних слов.
Ограничение выбора: LLM мог использовать утилиты только из предопределенного списка.
Низкая «температура»: параметр, отвечающий за случайность генерации, был снижен для повышения предсказуемости и консистентности ответов.
Результат работы: InsightFinder может приносить реальную пользу в бизнесе
С помощью этого проекта можно:
анализировать отток клиентов — искать ключевые факторы ухода клиентов;
проводить A/B-тестирование — автоматическое сравнивать контрольные и тестовые группы;
выстраивать HR-аналитику — выявлять причины увольнений сотрудников.
Главный результат — ускорение анализа данных. Задача, на которую уходило несколько часов, теперь решается за 5–15 минут.
Планы по развитию
Ребята уже наметили следующие шаги:
Добавить поддержку задач регрессии (предсказание числовых значений).
Интегрировать с разными базами данных.
Создать API для встраивания в другие системы.
По мнению ребят, будущее за коллаборацией человека и AI. Такие системы, как InsightFinder, станут мощными помощниками, которые возьмут на себя рутину и позволят сосредоточиться на интерпретации результатов и принятии решений.
InsightFinder — это яркий пример того, как за время учебы можно создать работающий и полезный продукт. Проект демонстрирует мощь современных LLM-технологий в связке с классическим анализом данных и доказывает, что будущее аналитики — в автоматизации и синергии человека с искусственным интеллектом.
Команда не только успешно защитила свой выпускной проект, но и сделала его открытым, чтобы каждый мог попробовать AI-аналитика в деле. Этот проект стал возможен благодаря знаниям, полученным в Школе аналитиков данных МТС.
Больше всего запомнилась невероятная концентрация опыта и мотивации: лекции и семинары от сеньоров и тимлидов, которые давали не только теорию, но и делились реальными кейсами. Программа устроена так, что даже базовые темы сразу увязывались с практикой. Особенно ценной была развернутая обратная связь.
Школа аналитиков данных МТС дала мне системное видение экосистемы данных: как устроены процессы, как принимаются решения, где мои навыки могут принести реальную пользу. И конечно, сообщество: мотивированные сокурсники, дедлайны, соревнования, — все это создает ощущение, что растешь не в одиночку, а в команде единомышленников.
Всего 10 месяцев назад я пришла в Школу аналитиков данных МТС с базовым Python и смутными воспоминаниями о математике, а сегодня понимаю практически все — от статистических тестов и того, как применяются модели, до того, как работают распределенные системы хранения, и участвую в проектах, о которых раньше и не мечтала.
Главное — регулярность и дисциплина. Лучше писать код по 30 минут каждый день, чем раз в неделю несколько часов. Начинайте с простого, собирайте портфолио в GitHub все, что узнаёте, стремитесь применить на практике.
Да, будет непросто. Но именно через эту сложность открываются новые горизонты. И помните: момента, когда «все станет понятно», не существует. Начните с того, что вас по-настоящему цепляет, даже если это просто любопытство. Остальное приложится.
Анна Шестакова
Мне больше всего запомнился высокий темп и реальный недельный прогресс. Практические кейсы и прямолинейная обратная связь вместо теории ради теории. Сильное комьюнити, с которым и соревнуешься, и строишь проекты.
Совет тем, кто сомневается в пути: выбирайте проблему, а не стек — интерес держит дольше, чем модные технологии. Работайте короткими циклами с видимыми артефактами и собирайте портфолио. Ищите среду и не избегайте дискомфорта — там находится рост.
Григорий Суханов
Р. S. Если вам интересно развиваться в направлениях Data Science, ML и BigData, то приглашаем подать заявку в Школу аналитиков данных МТС. Нужно будет до 30 октября подать заявку и 2 ноября участвовать в отборочном тестировании. Занятия стартуют уже 10 ноября.
Программа включает курсы по SQL, Python, математике, нейросетям, рекомендательным системам и другим темам, которые требуются при создании продуктов и сервисов на основе больших данных.
PhilKuch
Было бы интересно посмотреть на данные и выводы на выходе