Привет, 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-агентов, каждый из которых выполняет свою роль:

  1. Analyst — «мозг» системы. Его задача — проверять текущее состояние анализа и решать, какой инструмент применить на следующем шаге. Он планирует всю последовательность действий.

  2. Executor — «руки» системы. Он получает команду от Analyst и выполняет конкретный операцию, будь то расчет корреляций или построение модели.

  3. Summarizer — «писатель» и «летописец». Он интерпретирует результаты работы Executor, составляет из них финальный отчет и ведет лог всех шагов, чтобы система не зацикливалась.

Жизненный цикл анализа выглядит так:

  1. Пользователь загружает датасет и задает вопрос. Например: «Какие факторы влияют на отток клиентов?» 

  2. LLM автоматически определяет целевую переменную в данных.

  3. Оркестратор запускает цикл анализа, который может состоять из 20 шагов.

  4. На каждом шаге Analyst выбирает один из доступных инструментов.

  5. Executor выполняет его и возвращает результат.

  6. Summarizer документирует результат и обновляет общий отчет.

  7. В конце цикла пользователь получает готовый 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 минут. 

Планы по развитию

Ребята уже наметили следующие шаги:

  1. Добавить поддержку задач регрессии (предсказание числовых значений).

  2. Интегрировать с разными базами данных.

  3. Создать API для встраивания в другие системы.

По мнению ребят, будущее за коллаборацией человека и AI. Такие системы, как InsightFinder, станут мощными помощниками, которые возьмут на себя рутину и позволят сосредоточиться на интерпретации результатов и принятии решений. 

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

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

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

Школа аналитиков данных МТС дала мне системное видение экосистемы данных: как устроены процессы, как принимаются решения, где мои навыки могут принести реальную пользу. И конечно, сообщество: мотивированные сокурсники, дедлайны, соревнования, — все это создает ощущение, что растешь не в одиночку, а в команде единомышленников.

Всего 10 месяцев назад я пришла в Школу аналитиков данных МТС с базовым Python и смутными воспоминаниями о математике, а сегодня понимаю практически все — от статистических тестов и того, как применяются модели, до того, как работают распределенные системы хранения, и участвую в проектах, о которых раньше и не мечтала.

Главное — регулярность и дисциплина. Лучше писать код по 30 минут каждый день, чем раз в неделю несколько часов. Начинайте с простого, собирайте портфолио в GitHub все, что узнаёте, стремитесь применить на практике.

Да, будет непросто. Но именно через эту сложность открываются новые горизонты. И помните: момента, когда «все станет понятно», не существует. Начните с того, что вас по-настоящему цепляет, даже если это просто любопытство. Остальное приложится.

Анна Шестакова

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

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

Григорий Суханов

Р. S. Если вам интересно развиваться в направлениях Data Science, ML и BigData, то приглашаем подать заявку в Школу аналитиков данных МТС. Нужно будет до 30 октября подать заявку и 2 ноября участвовать в отборочном тестировании. Занятия стартуют уже 10 ноября. 

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

Комментарии (1)


  1. PhilKuch
    24.10.2025 10:26

    Было бы интересно посмотреть на данные и выводы на выходе