LangGraph-агент для данных каталога
Дата-команда загружала данные стороннего каталога вручную, и это было медленно. Я создал агентный процесс, который принимает короткий запрос, загружает подходящие данные о запчастях, очищает их и записывает в каталог. Задачи запускаются по расписанию, продолжаются после сбоя и завершаются отчётом, который может проверить любой.
- Моя роль
- Я сделал всё сам: исследование, архитектуру, агента, планировщик и демо-интерфейс.
- Статус
- Рабочий прототип с демо-интерфейсом для дата-команды. Когда я ушёл из компании в июле 2026 года, он ещё не был в продакшене.
- Стек
- Python, LangGraph, OpenAI API, APScheduler, PostgreSQL
- Охват
- Запросы по марке, модели, году и региону для 7 марок автомобилей, с которыми работает компания
Задача
Загрузка сторонних данных об автомобилях и запчастях в каталог компании была однообразной ручной работой. Нужно было выбрать множество параметров, скачать данные, очистить их и сопоставить каждую запись с нужными таблицами каталога.
Цель — автоматизировать эту работу, чтобы дата-команде больше не приходилось делать её вручную.
Как это работает
- Запрос Марка, модель, год и регион, выбранные из выпадающих списков.
- Поиск вариантов Поиск всех подходящих вариантов автомобиля и определение объёма данных каталога, которые нужно загрузить.
- Загрузка Вызов API стороннего каталога с кэшированием и повторными попытками.
- Нормализация и сопоставление Очистка записей и сопоставление их с нужными таблицами каталога.
- Запись Сохранение в PostgreSQL пакетами, с контрольными точками, чтобы задачу можно было безопасно возобновить или отменить.
- Отчёт Показывает, как каждый пакет был нормализован и сопоставлен, чтобы дата-команда могла это проверить.
- ПланировщикAPScheduler с простым интерфейсом для запусков по расписанию и вручную
- КэшДанные каталога кэшируются вплоть до уровня групп
- КонтрольОграничения объёма, статус задач и наглядный расход API
Что я сделал
- Сначала просто, затем предсказуемо. Первая версия принимала запрос на естественном языке, включала этап уточнения и трассировала каждый шаг агента для отладки. Когда процесс стал стабильным, я заменил свободный текст выпадающими списками, чтобы запуски были воспроизводимыми.
- Почему LangGraph. LLM выполняет лишь небольшую часть работы. Но LangGraph всё равно оправдывает себя: процесс структурирован, его легко проверять, и он умеет продолжать работу после сбоя.
- Рассчитан на очень большие задачи. Данные сохраняются по частям с возможностью возобновления, поэтому модель автомобиля с более чем 100 тыс. вариантов не начинает загрузку заново после сбоя.
- Планирование. APScheduler запускает задачи по расписанию или по требованию из простого интерфейса.
- Результат, который можно проверить. Автоматические отчёты показывают, как каждый пакет был нормализован и сопоставлен, поэтому результат могут проверить и люди без инженерного опыта.
- Документация. Я написал справочник по схеме каталога, в котором сказано, какие таблицы агент читает, а в какие пишет.
Инженерные решения
Прежде чем начать, я сравнил два пути: сделать самим или купить готовое. Я изучил существующие ИИ-инструменты для сбора данных и движки рабочих процессов, такие как Airflow, Prefect и Celery, и выбрал лёгкое решение, которое подходило проекту на его стадии и могло вырасти позже.
Кроме того, я сделал объём задач и платное использование API видимыми, а не спрятал их за автономным поведением агента. Такое решение сокращает ручную работу, но оставляет контроль над расходами и данными за людьми.
Статус
Прототип работает: у него есть планировщик и демо-интерфейс для дата-команды, и его встраивали в единую внутреннюю админ-панель. Когда я ушёл из компании в июле 2026 года, он ещё не был в продакшене.
На этой странице нет кода работодателя, внутренних данных и закрытых URL.