3,583 papers
arXiv:2610.33375 76 24 окт. 2026 г. FREE

Global Orchestration vs Step-by-Step: когда агенту строить весь воркфлоу заранее, а когда решать на каждом шаге

КЛЮЧЕВАЯ СУТЬ
Парадокс: модель побольше и режим рассуждений не приближают сценарий к пошаговому агенту. У половины моделей рассуждения даже ухудшают результат. Метод Replan позволяет заставить модель один раз написать сценарий автоматизации, который дальше работает без LLM, и поднять его качество на +6 п.п. на всех восьми проверенных моделях. Фишка: модели не помогают входные данные до написания, ей нужны логи реальных прогонов её же сценария. Она переписывает сценарий целиком по этим логам. Эталонный ответ ей не показывают.
Адаптировать под запрос
⚡

TL;DR

Global-оркестрация — способ, при котором модель один раз пишет полный сценарий (какие инструменты вызвать, в каком порядке, с какими ветвлениями и циклами). Дальше сценарий выполняется без новых обращений к LLM. Альтернатива — Step-by-Step: модель делает шаг, смотрит результат, думает, делает следующий шаг. Global на порядок дешевле по числу вызовов и токенов. Step-by-Step стабильно точнее.

Главная находка: разрыв в точности сокращается, но не исчезает. От старых моделей к новейшим он уменьшился примерно на 79%, но Step-by-Step всё ещё впереди у всех моделей. Интуитивные «лекарства» не работают. Модель побольше — не обязательно ближе к Step-by-Step. Режим рассуждения (reasoning) примерно у половины моделей ухудшает результат. Если дать модели конкретные входные данные до построения сценария, разрыв тоже не сокращается. При этом Global часто выдаёт сценарий, который просто не запускается.

Что реально помогло: строить сценарий по одному узлу с проверкой каждого (+10 п.п. в среднем) и переписывать готовый сценарий по логам его собственных прогонов (+6 п.п. на всех восьми моделях, включая варианты, которых модель не видела). Третий путь, обучение на готовых воркфлоу, даёт +12 п.п., но он не для читателя без GPU.

🔬

Схема метода

ВЫБОР РЕЖИМА
  Сценарий стабильный, много однотипных запусков → GLOBAL (дёшево, но слабее)
  Сценарий плавающий, ошибка дорогая            → STEP-BY-STEP (дороже, точнее)

УЛУЧШЕНИЕ GLOBAL (без обучения моделей):

LOCAL (сборка по узлам):
  ШАГ 1: модель предлагает ОДИН узел сценария
  ШАГ 2: валидатор принимает узел или возвращает ошибку
  ШАГ 3: повтор, пока сценарий не собран   (нужен код/автоматизация)

REPLAN (ревизия по логам) — можно вручную в чате:
  ШАГ 1: модель пишет полный сценарий (Global)
  ШАГ 2: сценарий прогоняют на нескольких реальных вариантах → логи
  ШАГ 3: модель получает свой сценарий + логи → переписывает ЦЕЛИКОМ
         (эталонный ответ и оценки модели НЕ показывают)
🚀

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

Задача: Вы владелец магазина на Ozon и Wildberries. Нужен сценарий в n8n или Make, который обрабатывает заявки на возврат. Сценарий читает заявку из amoCRM, проверяет заказ в Google Таблице, при сумме больше 5 000 ₽ создаёт задачу в Bitrix24, иначе сразу отправляет клиенту ответ в Telegram. Запусков много, логика стабильная, поэтому нужен Global-сценарий, а не агент, который думает над каждой заявкой. Первую версию вы уже получили от модели и прогнали на 6 реальных заявках. Теперь ревизия по логам (Replan).

Промпт:

Ты исправляешь сценарий автоматизации для обработки возвратов.

<Сценарий_v1>
1. amoCRM.get_lead(lead_id) → lead
2. GoogleSheets.find_row(sheet="Заказы", key=lead.order_id) → order
3. IF order.amount > 5000:
     Bitrix24.create_task(title="Возврат", description=lead.reason, assignee="руководитель")
   ELSE:
     Telegram.send_message(chat_id=lead.client_tg, text="Возврат одобрен")
4. amoCRM.update_lead(lead_id, status="Обработано")


<Логи_прогонов>
Прогон 1 (lead 4412, заказ 3 200 ₽): шаг 2 → ОШИБКА: строка не найдена (order_id = "WB-4412" в заявке, в таблице "4412").
Прогон 2 (lead 4415, заказ 7 800 ₽): шаги 1–4 успешно. Задача создана.
Прогон 3 (lead 4419, заказ 2 100 ₽): шаг 3 → ОШИБКА: у клиента нет client_tg (поле пустое).
Прогон 4 (lead 4420, заказ 5 000 ₽ ровно): ушло в ELSE, Telegram отправлен. Руководитель жалуется: граница должна включаться в Bitrix24.
Прогон 5 (lead 4424, заказ 12 000 ₽): шаги 1–4 успешно.
Прогон 6 (lead 4431): шаг 1 → ОШИБКА: lead удалён, get_lead вернул пустой результат; шаг 4 всё равно выполнился.


Задача: перепиши сценарий ЦЕЛИКОМ. Учти ошибки, пустые поля и граничные значения из логов. Добавь обработку ошибок для каждого шага, где она нужна. Сценарий должен остаться универсальным для любых заявок, а не подогнанным под шесть прогонов выше. После сценария перечисли, какие проблемы из логов ты исправил и какие возможные проблемы, не встретившиеся в логах, ты закрыл.

Результат: Модель выдаст полный переписанный сценарий. В нём будут проверка пустых результатов, нормализация идентификатора заказа, запасной канал при отсутствии Telegram и исправленная граница суммы. Ниже будет список «проблема из лога → что изменено» и список дополнительных рисков, закрытых заранее. Сценарий остаётся общим, а не заточенным под шесть заявок.

🧠

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

Слабость. Global требует от модели «сыграть партию вслепую»: заранее угадать, как будут выглядеть данные, где поля пустые, какие ветки сработают. Одной попыткой это получается плохо. Статья показывает, что Global-сценарии часто вообще не запускаются из-за ошибок структуры, а точность заметно ниже, чем у Step-by-Step. Больше параметров или режим рассуждения этого не лечат. Дать модели конкретные входные данные до построения сценария тоже не помогает: ей нужны результаты реального исполнения.

Сильная сторона. Модель хорошо исправляет текст, когда видит конкретную ошибку: «шаг 2 упал, потому что идентификатор в другом формате». Она также хорошо собирает структуру кусками, если каждый кусок проверяют сразу.

Как метод обходит слабость. Replan превращает слепое планирование в планирование по обратной связи. Вызовов LLM при работе сценария по-прежнему нет, но сам сценарий уже «видел» реальность. Local проверяет каждый узел сразу, ошибки не накапливаются. Важная деталь: логи нужны разные, поэтому берите разные варианты (короткая сумма, длинная, пустые поля), а не 6 одинаковых успешных запусков.

Рычаги управления: - Что в логах. Статья передавала вызовы инструментов, аргументы, результаты или ошибки, исходы ветвлений и итоговый ответ. Чем полнее логи, тем точнее ревизия. - Число и разнообразие прогонов. Больше разных случаев — меньше подгонки. Усиливайте фразой «сценарий должен остаться универсальным». - Что НЕ показывать. Эталонный правильный сценарий и оценки не передавались. Не подсказывайте модели «правильный ответ», иначе вы проверяете подсказку, а не сценарий. - Число раундов. Один раунд ревизии давал +6 п.п. Следующие раунды статья из доступной части не описывает, проверяйте сами.

📋

Шаблон промпта

Статья не публикует текст промпта в доступной части. Ниже реконструкция по описанию того, что подаётся модели в Replan.

Ты исправляешь сценарий автоматизации.

<Задача>
{описание_задачи_и_ожидаемого_результата}


<Доступные_инструменты>
{список_инструментов_и_их_параметры}


<Сценарий_v1>
{текущий_сценарий_целиком}


<Логи_прогонов>
{для_каждого_прогона: входные_данные, вызовы_инструментов, аргументы, результаты_или_ошибки, какая_ветка_сработала, итоговый_ответ}


Перепиши сценарий ЦЕЛИКОМ, не латками. Исправь ошибки из логов. Сценарий должен остаться универсальным для любых входных данных, а не подогнанным под прогоны выше. В конце: список исправлений «проблема → что изменено».

Что подставлять: - {описание_задачи...} — что сценарий должен делать и что считается успехом. - {список_инструментов...} — реальные модули или API вашей платформы (n8n, Make, Bitrix24, amoCRM и т. д.). - {текущий_сценарий_целиком} — вывод первой версии, полностью. - {логи...} — 5–10 разных прогонов, включая неудачные и пограничные.

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

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

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

LLM спросит, какие инструменты доступны, как выглядит текущий сценарий и какие у тебя есть логи или примеры прогонов. Без этого метод не работает: Replan держится на реальной обратной связи, а не на догадках.

⚠️

Ограничения

⚠️ Step-by-Step всё равно точнее: во всех проверенных моделях пошаговый режим выигрывает. Ревизия сокращает разрыв, но не закрывает. Если ошибка стоит дорого (деньги, клиенты, необратимые действия), Global не стоит ставить без проверки.

⚠️ Global часто не запускается: значительная доля Global-сценариев у большинства моделей вообще не даёт исполнимого результата. У слабых моделей это почти все попытки. Ревизия лечит часть проблем, но проверять сценарий на тестовых данных обязательно.

⚠️ Нет гарантии от «умных» настроек: увеличение размера модели, переход на новое поколение и включение reasoning улучшают результат непоследовательно. Что-то одно из этого иногда даже ухудшает Global. Не покупайте «модель побольше» как решение.

⚠️ Доступ к входным данным не спасает: модель, которая видит конкретный ввод, но не видит результатов выполнения, сценарий лучше не строит.

⚠️ Эксперименты в симуляторе: корпоративные задачи (Slack, Jira, Salesforce и подобное) выполнялись в симулированной среде, а не в вашем реальном стеке. Эффект на ваших инструментах может отличаться.

⚠️ Третий путь вам недоступен: обучение моделей на готовых воркфлоу (+12 п.п.) требует GPU и датасета. Для читателя это не вариант.

⚠️ Статья неполная: я видел только часть текста. Детальных таблиц по Local и Replan в доступной части нет, поэтому цифры по ним взяты из аннотации и введения.

🔍

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

Исследователи собрали бенчмарк AgentOrch из 650 корпоративных регламентов (SOP). У каждого есть эталонный рабочий сценарий и 3 220 вариантов запуска с разными входными данными, ветками и ошибками. Среда одна и та же: 64 инструмента вроде Slack, Jira, Salesforce, Google Sheets. Один и тот же регламент гоняли в двух режимах, Global и Step-by-Step, с одинаковыми инструментами и критериями оценки. Поэтому сравнение честное. Оценивали не «похоже ли на правду», а совпадение вызовов, порядка, аргументов и побочных эффектов с эталоном.

Результаты неочевидные. Разрыв сократился с 40,67 п.п. у GPT-3.5 Turbo до 15,12 п.п. и 8,53 п.п. у двух сильнейших моделей 2026 года (около 79%). Но рост размера модели внутри одного семейства разрыв не сокращал монотонно. Например, у Qwen2.5 Global на 72B даже хуже, чем на 32B. Reasoning помогал примерно половине моделей и вредил другой половине. Эксперимент с передачей реальных входных данных в Global показал, что дело не в «незнании данных»: разрыв остался прежним. Похоже, пошаговый режим выигрывает за счёт обратной связи от выполнения.

Из этого следует практический вывод: улучшать Global нужно сигналом от реальных запусков, а не сменой модели или режима «подумай подольше». Ревизия по логам собственных прогонов работала на всех восьми моделях и держалась на вариантах, которые не использовались в логах. А вот для Local использовался валидатор, и он улучшал результат не у всех моделей, а «у нескольких».

💡

Адаптации и экстраполяции

🔧 Техника: сборка по узлам вручную в чате (облегчённый Local)

В оригинале сценарий собирает append-only редактор с автоматическим валидатором. В чате похожее поведение получается так:

Собирай сценарий по ОДНОМУ узлу за сообщение. После каждого узла 
я отвечу «принято» или пришлю ошибку из платформы. Не переходи к 
следующему узлу, пока я не подтвердил текущий.

Эффект: ошибки не накапливаются в полном сценарии. Минус: это ваше время вместо автоматического валидатора. Эффект от такой ручной версии в статье не проверялся.

Экстраполяция: гибрид Global + Step-by-Step. Это не из статьи, это моя идея, проверяйте сами. Стабильный «скелет» сценария собирает Global с ревизией. Агент с пошаговым режимом подключается только на ветки, где данные плавающие (например, разбор свободного текста жалобы).

Раздели сценарий на два блока. Блок А: детерминированные шаги, которые можно 
описать заранее. Блок Б: шаги, где нужно решение по содержанию данных. 
Для блока А напиши полный сценарий. Для блока Б — отметь точки вызова 
LLM и опиши, что именно она получает и что должна вернуть.
🔗

Ресурсы

  • Статья: AgentOrch: How Close Can Global Orchestration Come to Step-by-Step Interaction?
  • Авторы: Zijie Liu, Qi Yang Huang, Jinhao Duan, Yueh Che Lee, Thomas A. Joseph, Zayne Turner, Adam Seligman, Tianlong Chen, Zhaozhuo Xu
  • Организации: University of North Carolina at Chapel Hill; Workato
  • Код: github.com/workato-devs/AgentOrch
  • Связанные работы из статьи: ReAct (Yao et al., 2023), Reflexion (Shinn et al., 2023), WorFBench, WorkflowBench, AppWorld, τ-bench

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

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

Парадокс: модель побольше и режим рассуждений не приближают сценарий к пошаговому агенту. У половины моделей рассуждения даже ухудшают результат. Метод Replan позволяет заставить модель один раз написать сценарий автоматизации, который дальше работает без LLM, и поднять его качество на +6 п.п. на всех восьми проверенных моделях. Фишка: модели не помогают входные данные до написания, ей нужны логи реальных прогонов её же сценария. Она переписывает сценарий целиком по этим логам. Эталонный ответ ей не показывают.

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

Есть два режима. Global: модель пишет весь сценарий заранее, дальше он идёт без вызовов LLM. Step-by-Step: модель делает шаг, смотрит результат, думает, делает следующий. Первый на порядок дешевле. Второй стабильно точнее. Replan улучшает Global в три хода: модель пишет сценарий → его гонят на нескольких разных реальных случаях → модель получает свой сценарий плюс логи и переписывает всё заново. Слепое планирование превращается в планирование по обратной связи. Это как черновик договора, который сначала дали прочитать трём клиентам. Правки по их вопросам точнее, чем угадывание вопросов в одиночку. Есть второй рычаг, Local: сценарий собирается по одному узлу. Каждый узел сразу проверяет код. В среднем это +10 п.п., но нужна автоматизация.

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

Global требует сыграть партию вслепую. Нужно заранее угадать, где поля пустые, в каком формате придут данные и какие ветки сработают. Одной попыткой это выходит плохо. Часто сценарий вообще не запускается из-за ошибок структуры, а у слабых моделей не запускается почти каждый. Большая модель и рассуждения слепоту не лечат. Разрыв с пошаговым режимом от старых моделей к новейшим сократился примерно на 79%. Но не исчез ни у одной модели. Модель плохо угадывает, какие данные придут, но хорошо чинит текст, когда видит конкретную ошибку. Например: «шаг 2 упал, в заявке WB-4412, а в таблице 4412». Local работает по той же логике: ошибка ловится на узле и не накапливается. Оговорка: Replan не догоняет пошаговый режим. Цифры по Local и Replan взяты из аннотации и введения, детальных таблиц в доступной части нет.

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

Автоматизация в n8n, Make, Bitrix24, amoCRM → сценарий для однотипных заявок (возвраты, лиды, уведомления), особенно когда запусков много, а логика стабильная. Тогда платить за вызов LLM на каждую заявку нет смысла. НЕ подходит для плавающей логики и дорогих ошибок (деньги, клиенты, необратимые действия). Там нужен пошаговый агент или человек на проверке. Сценарий в любом случае сначала гоните на тестовых данных.

Мини-рецепт

1. Получи первую версию: попроси модель написать сценарий целиком. Дай описание задачи и список реальных модулей вашей платформы.
2. Прогони на разных случаях: возьми 5-10 заявок. Нужны короткая и длинная сумма, пустые поля, граничные значения. Шесть одинаковых успешных прогонов бесполезны.
3. Собери логи: входные данные, вызовы, аргументы, результаты или ошибки, какая ветка сработала, итоговый ответ.
4. Отдай всё модели: сценарий v1 плюс логи. Попроси переписать целиком, а не латками.
5. Добавь страховку: Сценарий должен остаться универсальным для любых заявок, а не подогнанным под прогоны выше.
6. Не подсказывай ответ: эталонный сценарий и свои оценки не показывай.
7. Проверь заново: гоняй новую версию на свежих заявках, которых не было в логах. Статья не описывает, что дают следующие раунды ревизии, так что проверяй сам.

Примеры

[ПЛОХО] : Напиши сценарий обработки возвратов для n8n: читает заявку из amoCRM, проверяет заказ, при сумме больше 5000 создаёт задачу в Bitrix24, иначе отвечает клиенту в Telegram. Модель угадывает данные вслепую, а сценарий падает на первой пустой заявке.
[ХОРОШО] : Ты исправляешь сценарий автоматизации возвратов. <Сценарий_v1>... <Логи_прогонов> Прогон 1: шаг 2 ОШИБКА, в заявке order_id = WB-4412, в таблице 4412. Прогон 3: шаг 3 ОШИБКА, у клиента пустое поле client_tg. Прогон 4: заказ ровно 5000 ушёл в Telegram, а руководитель ждал задачу в Bitrix24. Прогон 6: заявка удалена, но шаг 4 всё равно выполнился. Перепиши сценарий ЦЕЛИКОМ. Он должен остаться универсальным для любых заявок, а не подогнанным под шесть прогонов. В конце перечисли: проблема из лога, что изменено, какие риски без логов закрыл. Модель вернёт сценарий с проверкой пустых результатов, приведением формата номера заказа, запасным каналом связи без Telegram и верной границей суммы. Рядом будет список «проблема, что изменено».
Источник: AgentOrch: How Close Can Global Orchestration Come to Step-by-Step Interaction?
ArXiv ID: 2610.33375 | Сгенерировано: 2026-10-27 23:30

Проблемы LLM

ПроблемаСутьКак обойти
Сценарий, написанный целиком за один раз, часто не работаетПросишь модель сразу написать весь рабочий сценарий: порядок шагов, ветки, циклы, вызовы инструментов. Она не видит, как выглядят реальные данные. Не знает, где поля пустые и какие ветки сработают. Сценарий часто даже не запускается. Модель побольше или режим «подумай подольше» это обычно не лечат. Даже если показать ей примеры входных данных, лучше не становится. Это касается любых задач, где результат нужно потом запускать: автоматизации, конфиги, цепочки вызововНе жди идеала с первой попытки. Прогони первую версию на 5–10 разных реальных случаях. Собери логи. Отдай модели сценарий вместе с логами на ревизию (метод ниже). Если есть код, собирай сценарий по одному узлу с проверкой каждого

Методы

МетодСуть
Ревизия сценария по логам его прогонов — убирает слепые пятнаСначала пусть модель напишет сценарий целиком. Потом прогони его на нескольких разных случаях. Запиши для каждого: входные данные, вызовы, аргументы, результаты или ошибки, сработавшую ветку, итоговый ответ. Дай модели сценарий и логи. Попроси: перепиши ЦЕЛИКОМ, не латками. Добавь: сценарий должен остаться универсальным, не подогнанным под эти прогоны. Почему работает: модель плохо угадывает реальность. Но хорошо чинит текст, когда видит конкретную ошибку: «шаг 2 упал, формат id другой». Слепое планирование становится планированием с обратной связью. Важные детали: берите РАЗНЫЕ случаи: короткие, длинные, с пустыми полями, граничные. Шесть одинаковых успешных запусков почти ничего не дадут. Не показывай модели эталонный ответ и свои оценки, иначе проверяешь подсказку, а не сценарий. Попроси в конце список «проблема → что изменено» и список закрытых заранее рисков. Не работает: нет возможности прогнать сценарий и получить логи. Тогда нужна только догадка, а она слабая
Сборка по одному узлу с проверкой — ошибки не копятсяНе проси весь сценарий сразу. Пусть модель предлагает ОДИН узел (шаг, ветку, цикл). Проверяющий код принимает его или возвращает ошибку. Модель исправляет узел. Потом переходит к следующему. Повторяй, пока сценарий не собран. Почему работает: модель хорошо строит структуру кусками, если каждый кусок проверяют сразу. Ошибка в первом шаге не тащится через весь сценарий. Когда да: сложные сценарии, есть автоматическая проверка (схема, тестовый запуск). Когда нет: нет кода для проверки. В чате вручную слишком долго
📖 Простыми словами

AgentOrch: How Close Can Global Orchestration Come to Step-by-Step Interaction?

arXiv: 2610.33375

Обычные AI-агенты жрут токены как не в себя, обдумывая каждый шаг: дёрнул базу, посмотрел ответ, снова подумал. Метод Step-by-Step даёт точность, но обходится в копеечку. Логичный соблазн — заставить модель один раз написать полный сценарий со всеми ветками и циклами (Global-оркестрация), а дальше крутить код бесплатно. Но тут модель лажает: без обратной связи она гадает структуру данных, и сценарий валится в полный провал на первом же пустом поле.

Это как ехать по незнакомому городу по слепой инструкции: «поверни через сто метров, потом сразу налево». Ты закрываешь глаза и жмёшь на газ, надеясь, что дорогу не перекопали. В реальности там всегда сюрприз. Модель пытается сыграть партию вслепую, но окружению плевать на её фантазии — скрипт ломается просто потому, что сервис вернул null вместо списка.

Тупо брать модель жирнее или включать режим рассуждений бесполезно — это не лечит кривую логику. Что реально работает: метод ревизии по логам (Replan). Модель выдаёт черновой граф, ты прогоняешь его на реальных данных, собираешь ошибки и отдаёшь отчёт обратно. Только увидев живой результат исполнения хотя бы на шести реальных заявках, нейронка понимает, где накосячила, и выправляет ветвление.

В статье тестировали абстрактные задачи, но вывод бьёт по всем, кто строит процессы в n8n или Make. Не пытайся сгенерировать сложный сценарий возврата товаров или связку CRM с таблицами за один красивый промпт. Любая логика с условиями требует прогона через живые логи, иначе твой «автономный» бот намертво зависнет при первом сбое API.

Короче: Step-by-Step стабильно точнее, но разорит тебя на токенах, а чистый Global дёшев, но падает на старте. Рабочий вариант — гибрид: генерируешь монолитный сценарий, обязательно прогоняешь через итеративный дебаг по логам и только потом пускаешь в прод без участия LLM. Кто надеется получить рабочий пайплайн с первой попытки — гарантированно выкатит херню на проде.

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

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

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