3,583 papers
arXiv:2509.03811 76 4 сент. 2025 г. FREE

SCPA Framework: итеративное планирование через декомпозицию задач

КЛЮЧЕВАЯ СУТЬ
Традиционные системы планирования работают как монолит — изменились условия, перезапускай весь процесс с нуля. SCPA (Supply Chain Planning Agent) от JD.com позволяет автоматизировать многошаговое планирование с адаптацией по ходу — план корректируется на каждом этапе на основе промежуточных результатов. Система разбивает задачу на атомарные операции (фильтрация → трансформация → группировка → сортировка) — LLM генерирует код для каждой операции отдельно, а не всё сразу. После каждого шага обновляет список оставшихся подзадач. Развернуто в JD.com (10+ млн товаров): −40% времени обработки, +22% точности планов, +2-3% наличия товара.
Адаптировать под запрос

TL;DR

SCPA (Supply Chain Planning Agent) — LLM-агент для автоматизации планирования в бизнесе, который работает через цикл: классификация запроса → декомпозиция на подзадачи → выполнение каждой подзадачи → обновление плана на основе результатов. Развернут в JD.com (10+ млн товаров, тысячи складов), где сократил время обработки данных на ~40%, повысил точность планов на 22% и увеличил наличие товара на 2-3%.

Традиционное планирование ломается когда условия меняются: данные разрозненные, спрос скачет, а любая корректировка плана требует перезапуска всего процесса с нуля. Получается медленно и негибко — изменились условия, жди часы или дни пересчётов. Плюс человек не видит промежуточных результатов и не может скорректировать курс на лету.

Система работает в цикле: составить список подзадач → выполнить первую → оценить результат → обновить список задач на основе полученных данных → выполнить следующую. Аналитические задачи разбиваются на атомарные операции (фильтрация, трансформация, группировка, сортировка) — LLM генерирует код для каждой операции отдельно, что проще и точнее чем сразу весь анализ.

🔬

Схема метода

ШАГ 1: Классификация намерения
Input: запрос пользователя
Output: тип задачи {диагностика запасов | мониторинг наличия | рекомендации по закупкам}

ШАГ 2: Формирование списка подзадач
Input: тип задачи + корпоративные регламенты (через RAG)
Output: упорядоченный список подзадач
Пример: [1. Анализ истории продаж, 2. Обработка признаков, 3. Формулировка плана]

ШАГ 3: Выполнение подзадачи
 3a: Получение данных (SQL-запрос через Text-to-SQL)
 3b: Анализ данных (генерация Python кода атомарными операциями)
Output: результат выполнения текущей подзадачи

ШАГ 4: Обновление плана
Input: результат выполненной подзадачи
Output: обновлённый список задач (удалить выполненные, добавить новые, изменить порядок)

ЦИКЛ: шаги 3-4 повторяются пока все подзадачи не выполнены

ШАГ 5: Корректировка плана (после внедрения)
Мониторинг отклонений факта от плана → анализ причин → рекомендации по обновлению

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

🚀

Пример применения

⚠️ Ограничения метода: Полная система требует API, базы данных и выполнение кода. НО принципы декомпозиции и итеративного планирования применимы в обычном чате.

Задача: Маркетолог "М.Видео" готовит план промо-активностей к Чёрной пятнице. Нужно проанализировать продажи прошлого года, учесть текущие тренды, распределить бюджет по категориям.

Промпт (адаптация принципа итеративного планирования):

Ты — ассистент по планированию промо-активностей. Работаем итеративно:

ЗАДАЧА: Составить план промо на Чёрную пятницу для сети электроники.

КОНТЕКСТ: 
- Категории: смартфоны, ноутбуки, ТВ, аксессуары
- Бюджет: 15 млн рублей
- Есть данные о продажах ЧП-2023

ШАГ 1: Составь список подзадач для решения этой задачи.
Для каждой подзадачи укажи:
- Что нужно проанализировать
- Какие данные потребуются
- Какой будет output

После того как ты выдашь список — я скажу "выполни подзадачу 1", ты её выполнишь, а потом мы вместе обновим список задач на основе результата. И так далее.

Начинай.

Результат:

LLM выдаст структурированный список подзадач — например: (1) Анализ продаж ЧП-2023 по категориям, (2) Выявление трендов 2024, (3) Распределение бюджета, (4) Формулировка акций.

Затем начнётся итеративное выполнение: вы говорите "выполни подзадачу 1", модель анализирует (запрашивая данные у вас или работая с тем что есть), выдаёт результат. На основе результата первой подзадачи модель может скорректировать список оставшихся задач — например, добавить "проверить наличие на складе популярных моделей" если увидела всплеск спроса на конкретную категорию.

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

🧠

Почему это работает

LLM плохо справляется со сложными многошаговыми задачами сразу — пытается удержать в "голове" весь контекст, теряет нить, выдаёт поверхностный результат. Классический промпт "составь мне план промо" даст общие слова без глубины.

LLM отлично работает с пошаговыми инструкциями — если задача разбита на чёткие этапы с явными входами-выходами, модель выполняет каждый шаг качественнее. Это как разница между "построй дом" и "сначала фундамент, потом стены, потом крышу" — второе даст лучший результат.

Атомарные операции (Filter → Transform → Groupby → Sort) убирают двусмысленность. Вместо расплывчатого "проанализируй продажи" модель получает чёткую последовательность: "отфильтруй данные за ноябрь 2023 → посчитай выручку по категориям → отсортируй от большего к меньшему". Каждый шаг простой, понятный, легко проверяемый.

Итеративность даёт гибкость — после каждой подзадачи можно скорректировать курс. Обнаружили неожиданный тренд на первом шаге? Добавляем новую подзадачу "изучить причины роста категории X". Это невозможно в статичном плане "всё сразу".

Рычаги управления:

  • Количество подзадач: больше подзадач = детальнее план, но дольше выполнение. Для простых задач можно попросить 3-5 шагов, для сложных — 10-15.
  • Формат output: можно требовать конкретный формат результата каждой подзадачи (таблица, список рекомендаций, числовой прогноз).
  • Условия обновления плана: можно задать правило когда добавлять новые подзадачи — например, "если отклонение факта от плана >10%, добавь подзадачу по анализу причин".
📋

Шаблон промпта (упрощённая версия для чата)

Ты — {роль ассистента, например: "планировщик закупок"}. 
Работаем итеративно в цикле: план → выполнение → обновление → повтор.

ЗАДАЧА: {описание задачи}

КОНТЕКСТ: {исходные данные, ограничения, цели}

ШАГ 1: Составь список подзадач для решения этой задачи.
Для каждой подзадачи укажи:
- Что нужно сделать
- Какие данные потребуются 
- Какой будет результат

Выдай список подзадач. После этого я скажу "выполни подзадачу N", 
ты выполнишь её и предложишь обновлённый список оставшихся задач 
на основе полученного результата.

Начинай.

Как заполнять:

  • {роль ассистента} — кто решает задачу: аналитик, планировщик, маркетолог
  • {описание задачи} — конкретная бизнес-задача
  • {контекст} — всё что нужно знать для решения: данные, ограничения, цели

🚀 Быстрый старт — вставь в чат:

Вот шаблон для итеративного планирования. Адаптируй под мою задачу: [твоя задача]. 
Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

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

⚠️

Ограничения

⚠️ Требуется инфраструктура для полной автоматизации: Оригинальная система JD.com работает с базами данных (SQL-запросы), генерирует и выполняет Python код для анализа, использует RAG для корпоративных регламентов. Без доступа к данным и выполнения кода система не сможет работать автономно.

⚠️ Ручная итерация в чате: Если применять принципы в обычном ChatGPT/Claude без computer use, вам придётся вручную копировать данные между шагами — модель составит SQL-запрос, но выполнить его и вернуть результат должны вы. Это замедляет процесс по сравнению с автоматизированной системой.

⚠️ Не для простых задач: Итеративное планирование оправдано для сложных многошаговых задач где нужна адаптация по ходу. Для простых вопросов ("составь список идей") это overkill — проще спросить напрямую.

⚠️ Качество зависит от данных: Система JD.com показала результаты потому что работала с реальными корпоративными данными, регламентами (SOP), историей продаж. В вакууме без данных LLM может только рассуждать абстрактно.

🔍

Как исследовали

Команда JD.com развернула систему в реальном боевом окружении — не в лаборатории, а в действующей сети из 10+ млн товаров и тысяч складов по всему Китаю. Задача была конкретная: автоматизировать еженедельное планирование пополнения запасов — процесс который раньше требовал ручного анализа данных, составления планов и их корректировки.

Измеряли три ключевые метрики:

  1. Эффективность работы людей — сколько времени тратится на обработку данных и анализ каждую неделю
  2. Точность планов — доля планов с отклонением от факта менее 5%
  3. Наличие товара — процент выполнения заказов со склада без дефицита

Сравнивали до внедрения (традиционный процесс с ручным анализом и правилами) и после внедрения агентной системы.

Результаты оказались сильными по всем фронтам: время обработки данных сократилось на ~40% — аналитики перестали тратить часы на рутинные SQL-запросы и подготовку отчётов, агент делал это автоматически. Точность планов выросла значительно — доля планов с ошибкой <5% увеличилась на 22%, потому что система учитывала больше факторов и корректировала план итеративно. И самое главное для бизнеса — наличие товара улучшилось на 2-3%, что в масштабах JD.com означает миллионы довольных клиентов и избежанные потери выручки.

Почему это сработало: Система не просто автоматизировала существующий процесс, а переосмыслила его через итеративный цикл. Вместо жёсткого плана "на месяц вперёд" система постоянно мониторила выполнение, выявляла отклонения и корректировала прогнозы. Это как разница между "составить маршрут один раз" и "GPS который перестраивает маршрут при пробках".

Удивительный инсайт: Атомарные операции (Filter-Transform-Groupby-Sort) оказались критичны для интерпретируемости. Когда LLM генерирует код пошагово, аналитики видят логику и могут вмешаться на любом этапе. Это важно в корпоративной среде где "чёрный ящик" неприемлем — нужно понимать ПОЧЕМУ система рекомендует именно это.

🔗

Ресурсы

"Leveraging LLM-Based Agents for Intelligent Supply Chain Planning" — Yongzhi Qi, Jiaheng Yin, Jianshen Zhang и др. (JD.com, Tsinghua University, University of Hong Kong, UC Berkeley)

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


📋 Дайджест исследования

Ключевая суть

Традиционные системы планирования работают как монолит — изменились условия, перезапускай весь процесс с нуля. SCPA (Supply Chain Planning Agent) от JD.com позволяет автоматизировать многошаговое планирование с адаптацией по ходу — план корректируется на каждом этапе на основе промежуточных результатов. Система разбивает задачу на атомарные операции (фильтрация → трансформация → группировка → сортировка) — LLM генерирует код для каждой операции отдельно, а не всё сразу. После каждого шага обновляет список оставшихся подзадач. Развернуто в JD.com (10+ млн товаров): −40% времени обработки, +22% точности планов, +2-3% наличия товара.

Принцип работы

План не создаётся сразу целиком — он формируется постепенно через цикл. Составь список подзадач → выполни первую → оцени результат → обнови список на основе полученных данных → выполни следующую. Каждая аналитическая задача разбивается на атомарные операции — фильтрация, трансформация, группировка, сортировка. Это как конвейер на заводе — каждый этап делает своё, а не всё разом.

Почему работает

LLM плохо справляется со сложными многошаговыми задачами сразу — пытается удержать весь контекст в голове, теряет нить, выдаёт поверхностный результат. Классический промпт 'составь мне план' даст общие слова без глубины. Атомарные операции убирают двусмысленность — вместо расплывчатого 'проанализируй продажи' модель получает чёткую последовательность простых шагов. Каждый шаг понятный, легко проверяемый. Итеративность даёт гибкость — обнаружили неожиданный тренд на первом этапе? Добавляешь новую подзадачу прямо по ходу вместо перезапуска всего плана.

Когда применять

Многошаговые бизнес-задачи → планирование закупок, прогнозирование спроса, подготовка маркетинговых кампаний, особенно когда нужна адаптация по ходу и промежуточные результаты влияют на дальнейшие шаги. НЕ подходит для простых вопросов ('составь список идей') — это перебор, проще спросить напрямую.

Мини-рецепт

1. Задай роль и формат работы: Объясни что работаете итеративно через цикл план → выполнение → обновление
2. Опиши задачу и контекст: Что нужно решить, какие ограничения, какие данные доступны
3. Запроси список подзадач: Для каждой подзадачи модель должна указать что нужно сделать, какие данные потребуются, какой будет результат
4. Запускаешь цикл: Говоришь 'выполни подзадачу 1' → получаешь результат → просишь обновить список оставшихся задач на основе результата → выполняешь подзадачу 2 → повторяешь до завершения

Примеры

[ПЛОХО] : Составь мне план промо-активностей на Чёрную пятницу для сети электроники
[ХОРОШО] : Ты — ассистент по планированию промо. Работаем итеративно. ЗАДАЧА: План промо на Чёрную пятницу для сети электроники. КОНТЕКСТ: 4 категории (смартфоны, ноутбуки, ТВ, аксессуары), бюджет 15 млн рублей, есть данные продаж ЧП-2023. ШАГ 1: Составь список подзадач. Для каждой укажи: что анализировать, какие данные нужны, какой output. После того как выдашь список — я скажу 'выполни подзадачу 1', ты выполнишь, а потом мы обновим список на основе результата. Начинай.
Источник: Leveraging LLM-Based Agents for Intelligent Supply Chain Planning
ArXiv ID: 2509.03811 | Сгенерировано: 2026-01-12 02:33

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с