3,583 papers
arXiv:2610.35959 84 25 окт. 2026 г. FREE

AgentBaton: сильная модель начинает задачу, дешёвая заканчивает

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

TL;DR

AgentBaton — подход «эстафетная палочка» для долгих агентных задач (программирование, терминал). Дорогая модель делает первую часть: план, рабочий прототип, первые запуски. Затем один раз управление передаёт дешёвой модели, и та доводит работу до конца. Авторы добавили к этому маленький обученный детектор, который сам выбирает момент передачи. Но главная ценность для практика не в нём, а в правилах передачи, которые они проверили.

Главная находка — асимметрия. Если начать дешёвой моделью и позвать сильную «на сложное», результат обычно хуже, чем у одной сильной, а экономии почти нет. Дешёвая за первые шаги успевает наломать дров, и сильной приходится это разгребать. Обратный порядок работает: сильная сделала основу и получила обратную связь от запусков, а дешёвая чинит, проверяет и дочищает. Точность при этом почти сохраняется, а цена падает на две трети и больше. Просить саму модель «передай управление, когда будешь готова» бесполезно. Одни модели так не делают вообще, другие передают всегда, но экономия получается небольшая.

Суть метода в трёх правилах: (1) передавай сверху вниз, один раз; (2) выбирай момент по состоянию работы, а не по счёту шагов; (3) выбирай способ передачи истории по направлению. Вверх (дешёвая → сильная) лучше отдавать историю файлом-журналом. Вниз часто лучше оставить её в том же диалоге.

🔬

Схема метода

ШАГ 1: Сильная модель берёт задачу → план, прототип, первые запуски
ШАГ 2: Проверка готовности к передаче (3 признака):
        • есть рабочий прототип или нужный артефакт
        • запускали/тестировали и получили обратную связь (даже плохую)
        • остаток работы локальный: починить, проверить, довести
ШАГ 3: ОДНА передача → дешёвая модель получает то же рабочее пространство
        + историю (в диалоге ИЛИ файлом-журналом)
ШАГ 4: Дешёвая модель доводит до конца. Назад не переключаем.

Шаги идут в одной сессии агента. Переключение модели — это ручное действие или настройка инструмента.

🚀

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

Задача: Вы — владелец небольшого магазина на Ozon. Нужен скрипт, который каждое утро забирает остатки из 1С через выгрузку и обновляет их в Ozon Seller API. Работаете в Claude Code, на задачу есть и дорогая, и дешёвая модель.

Что делаете: 1. Дорогая модель проектирует скрипт, пишет первую рабочую версию и прогоняет её на тестовых данных. Часть остатков не обновилась из-за кодировки в артикулах. Это нормальная обратная связь: проблема сузилась. 2. Проверяете три признака. Прототип есть. Запуск был, и мы знаем, где падает. Остался локальный ремонт. 3. Переключаете модель на дешёвую. Продолжаете в том же диалоге или даёте ей журнал (см. шаблон ниже).

Промпт для дешёвой модели (передача через журнал):

Ты продолжаешь работу над задачей. Исходная задача: скрипт ежедневной
синхронизации остатков из выгрузки 1С в Ozon Seller API.

История работы предыдущего исполнителя лежит в файле ./handoff/log.jsonl.
Каждая строка — один шаг: номер шага, ответ модели и список действий.
У каждого действия есть команда, код возврата, stdout и stderr.
Записи идут по порядку времени. Сначала прочитай ПОСЛЕДНИЕ записи,
чтобы понять текущее состояние. Рабочие файлы уже в папке проекта.

Что нужно: исправить обработку артикулов с кириллицей, прогнать тест
на tests/sample_stocks.csv, убедиться, что все позиции обновились.

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

🧠

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

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

Сильная сторона. Дешёвой модели не нужно придумывать решение с нуля. Ей достаточно видеть готовый артефакт и результат запуска, чтобы локально чинить, проверять и дописывать. Здесь она почти не уступает сильной. Даже неудачный запуск полезен, если он сужает проблему: он показывает, где именно ломается.

Как метод это использует. Сильная берёт на себя неопределённую часть работы (замысел, основа, поиск причины). Дешёвая берёт определённую часть (доводка). Момент передачи определяется состоянием работы, а не процентами или числом шагов.

Рычаги: - Момент передачи. Для разных пар моделей он разный: от примерно 30% до 60% траектории сильной модели. Если сомневаетесь, передавайте позже, но до финальной доводки. Чем позже, тем меньше экономия. - Способ передачи истории вниз. Если у исходной модели виден ход рассуждений, оставьте историю в диалоге. Если нет, попробуйте журнал-файл. Для некоторых моделей разница была заметной, для других смешанной. - Способ передачи истории вверх. Журнал-файл в большинстве случаев давал и лучшую точность, и меньшую цену, чем вставка всего в контекст. - Инструкция по чтению журнала. «Сначала последние записи» помогает быстрее понять текущее состояние.

📋

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

Это текстовая инструкция для новой сессии на принимающей модели. Структура взята из статьи: исходная задача, путь к журналу, описание полей, порядок записей, указание читать конец первым.

Ты продолжаешь работу над задачей, которую начал другой исполнитель.

ИСХОДНАЯ ЗАДАЧА:
{исходная_задача}

ИСТОРИЯ РАБОТЫ лежит в файле: {путь_к_журналу}
Формат: одна запись на каждый шаг прежнего исполнителя. Поля записи:
- номер шага
- его исходный ответ
- список действий: команда, код возврата, stdout, stderr

Записи идут в хронологическом порядке. Начни с ПОСЛЕДНИХ записей,
чтобы понять, в каком состоянии сейчас работа. К ранним записям
возвращайся, только если нужно выяснить, почему что-то было сделано так.

Рабочие файлы уже лежат в {папка_проекта} в том состоянии,
в каком их оставил предыдущий исполнитель.

ЧТО ОСТАЛОСЬ СДЕЛАТЬ:
{остаток_работы}

КАК ПОНЯТЬ, ЧТО ГОТОВО:
{критерий_готовности}

Что подставлять: - {исходная_задача} — дословная постановка, которую получила сильная модель. - {путь_к_журналу} — файл, куда выгружена история. Если инструмент сам его не создаёт, попросите сильную модель в конце своей части записать журнал по этой схеме. - {остаток_работы} — локальные дела: починить конкретную ошибку, проверить, довести. - {критерий_готовности} — тест, команда или проверка, которая подтверждает результат.

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

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

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

LLM спросит, какая у тебя исходная задача, что уже сделано, что упало или не проверено и как понять, что работа закончена. Эти данные нужны, чтобы принимающая модель получила чёткий остаток работы, а не «разберись сам».

⚠️

Ограничения

⚠️ Детектор требует обучения: сам AgentBaton — это отдельная обученная маленькая модель, которая обучалась на сотнях тысяч шагов агентных запусков. Читателю без GPU и команды разработки она недоступна. Применимы только выводы из анализа, и момент передачи придётся выбирать вручную.

⚠️ Ручной выбор момента не проверен: признаки готовности авторы выделили разбором примеров и использовали для разметки. Как работает человек с чек-листом, они не измеряли.

⚠️ Точность иногда падает: в ряде пар при передаче дешёвой модели точность падала заметно, в некоторых случаях на 5–12%. В других случаях была на уровне базы, а иногда выше. Итог зависит от пары моделей.

⚠️ Запросить «передай сам» не получится: инструкция сильной модели «передай управление, когда готова» не сработала. Одна модель не передавала никогда, другая почти никогда. Третья передавала всегда, но экономия была скромной.

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

⚠️ Одна передача: переключаться туда-обратно не пробовали. Авторы считают, что частое переключение накапливает ошибки.

⚠️ Учёт стоимости: локальные модели в расчёте считались бесплатными. Если вы платите за облачную дешёвую модель, экономия будет меньше.

🔍

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

Исследователи взяли три сильные модели и одну дешёвую (27B) и два бенчмарка: терминальные задачи и сложные задачи по разработке в реальных репозиториях. Сначала прогнали каждую модель в одиночку и записали траектории. Затем воспроизвели действия сильной модели до выбранной точки (15%, 30%, 45%, 60%, 75%, 90% пути) и дали другой модели продолжить с того же рабочего состояния. Так можно честно сравнить «передали здесь» и «не передавали».

Результат оказался несимметричным. Передача вверх обычно давала потерю точности, а экономия была малой. У одной модели на 30% траектории точность чуть выше, 70,8% против 68,1%, но цена упала всего на 6,1%. Передача вниз показала противоположное. Kimi K3 на 45% пути: 72,57% против 73,45% у себя, при этом на 61,5% дешевле. GLM-5.3 на 30%: 61,1%, ровно как у одной, и на 82,4% дешевле. GPT-5.6 Sol на 60%: 67,26% против 68,10%, на 47,9% дешевле.

Затем сравнили два способа передачи истории: вставить в контекст или положить файлом-журналом. Для передачи вверх журнал был лучше почти везде. Для передачи вниз результат зависел от модели. Авторы предполагают, что дело в том, видны ли у исходной модели её рассуждения.

Чтобы понять, что именно делает передачу успешной, они взяли случаи, где дешёвая модель проваливалась после ранней передачи, но справлялась после следующей. Они посмотрели, что сильная модель сделала между этими точками, и вывели три признака готовности. Попытка просто попросить модель самой решать, когда передавать, провалилась. Это и привело к обучению детектора на 4000 траекторий. Детектор — маленькая модель на 2 млрд параметров, обученная на 16 GPU H100, она отвечает за 0,3 секунды. Через 11 пар моделей и два бенчмарка он в среднем сокращает затраты на 65,9% и в лучшем случае даёт прирост до 8,8 п.п. к точности одной сильной модели.

💡

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

🔧 Техника: чек-лист готовности перед переключением → меньше ложных передач

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

Прежде чем я передам работу другой модели, ответь коротко:
1. Есть ли уже рабочий прототип или нужный артефакт? Какой?
2. Что мы запускали или проверяли, и что показала проверка?
3. Что осталось: локальная правка/проверка или ещё нужно что-то придумывать?
Если ответ на (3) — «нужно придумывать», передавать рано.

Передача по ответам: если на пункт 3 модель говорит «локальная правка», можно переключать. Это дополнение, а не результат статьи. Пользуйтесь им как отправной точкой и проверяйте на своих задачах.

🔗

Ресурсы

  • AgentBaton: Efficient Model Collaboration in Agentic Tasks — Junlong Li (HKUST), Jindong Jiang, Yonggan Fu, Jiarui Yao (UIUC), Hanrong Ye, Wonmin Byeon, Peter Belcak, Hao Zhang, Pavlo Molchanov; NVIDIA, 2026.
  • Бенчмарки: Terminal-Bench 2.1 и DeepSWE v1.1; каркас агента — mini-SWE-agent.
  • Данные для обучения детектора: SWE-rebench V2.

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

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

Порядок решает всё: если сильная модель начинает, а дешёвая заканчивает, цена падает на две трети и больше, а точность почти не проседает. Если поменять их местами, выйдет хуже, чем у одной сильной, а экономии почти нет. Метод AgentBaton позволяет заметно сократить расходы на долгие задачи для агента (код, терминал) без дообучения: нужна одна передача в правильный момент. Фишка: дорогая модель делает основу и первые запуски, а дешёвой остаётся только чинить и дочищать. Ей не нужно придумывать решение с нуля, а на таком объёме работы она почти не уступает сильной.

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

Работает как эстафета. Профи берёт старт, а на ровном финише палочку берёт запасной бегун. Обратно её не передают. Три правила: 1. Передавай только сверху вниз и только один раз. 2. Выбирай момент по состоянию работы, а не по номеру шага. Нужны три признака: есть рабочий прототип, были запуски с результатом (даже плохим), остаток работы локальный. 3. Историю вверх (дешёвая → сильная) отдавай файлом-журналом. Вниз часто лучше оставить её в том же диалоге. Моменты передачи у разных пар моделей лежат между 30% и 60% пути сильной модели.

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

Дешёвая модель в начале долгой задачи часто берёт неверные предположения и уходит не туда. Потом сильной приходится разгребать этот мусор, и вся экономия сгорает. Поэтому передача вверх и частые переключения по ходу работы только копят ошибки. В конце всё наоборот. Есть готовый файл и результат запуска, и задача сужается до «найди, где падает, и почини». Даже неудачный запуск помогает: он показывает дешёвой модели, где именно ломается код, и она не гадает. Прикол: просить сильную модель «передай управление, когда будешь готова» бесполезно. Одна модель не передаёт никогда, другая почти никогда. Третья передаёт всегда, но экономия скромная. Момент придётся выбирать самому. Цена вопроса: в ряде пар моделей точность проседала на 5–12%. В других случаях она была на уровне одной сильной, а иногда выше.

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

Разработка и терминал → долгие задачи, где сначала нужна основа, а потом много мелкой доводки: правки, тесты, починка ошибок. Особенно когда счёт за сильную модель за месяц уже режет глаз. Не подходит для текстовых и аналитических задач: там перенос не проверяли. Не подходит, когда ошибка в замысле дорого стоит и доводить нечего. Сам обученный детектор момента передачи недоступен, поэтому момент выбираешь вручную по трём признакам. Эту ручную проверку авторы отдельно не измеряли. Если дешёвая модель у тебя платная облачная, экономия будет меньше: в расчётах авторов локальные модели считались бесплатными.

Мини-рецепт

1. Начни сильной моделью: пусть составит план, напишет прототип и сделает первые запуски.
2. Проверь три признака: прототип есть, запуск был и дал результат, остаток работы локальный. Не хватает хотя бы одного — работай дальше сильной.
3. Сомневаешься — передавай позже: но до самой финальной доводки. Чем позже, тем меньше экономия.
4. Сохрани историю: если инструмент сам не пишет журнал, попроси сильную модель в конце записать его в файл. В каждой записи: номер шага, ответ модели, команда, код возврата, stdout, stderr.
5. Переключись на дешёвую модель один раз: вниз можно просто продолжить в том же диалоге. Особенно если видны рассуждения модели. Если нет, попробуй журнал.
6. Дай шаблон передачи: Ты продолжаешь работу над задачей, которую начал другой исполнитель. ИСХОДНАЯ ЗАДАЧА: {задача}. ИСТОРИЯ в файле: {путь}. Начни с ПОСЛЕДНИХ записей. ЧТО ОСТАЛОСЬ: {остаток}. ГОТОВО, КОГДА: {критерий}
7. Назад не переключай: дешёвая модель доводит работу до конца.

Примеры

[ПЛОХО] : Ты сильная модель. Когда решишь, что основа готова, сама передай управление дешёвой. Сильная модель не умеет выбирать момент. Одна не передаст никогда, другая передаст всегда. : начать с дешёвой модели, а на сложном месте позвать сильную. Дешёвая успеет наломать дров, сильной придётся их разгребать, а экономии почти нет.
[ХОРОШО] : сильная модель написала скрипт обновления остатков из 1С в Ozon и прогнала его на тестах. Часть артикулов не обновилась из-за кодировки. Прототип есть, запуск был, остаток локальный. Переключаешься на дешёвую модель и даёшь: Ты продолжаешь работу над скриптом ежедневной синхронизации остатков из выгрузки 1С в Ozon Seller API. История лежит в ./handoff/log.jsonl. Начни с ПОСЛЕДНИХ записей. Исправь обработку артикулов с кириллицей, прогони tests/sample_stocks.csv, убедись, что все позиции обновились. Дорогие токены ушли только на замысел и прототип, а чинит и проверяет дешёвая модель.
Источник: AgentBaton: Efficient Model Collaboration in Agentic Tasks
ArXiv ID: 2610.35959 | Сгенерировано: 2026-10-29 06:10

Проблемы LLM

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

Методы

МетодСуть
Сильная модель начинает, дешёвая заканчивает — дешевле при сохранении качестваСильная модель делает план, рабочий прототип и первые запуски. Потом один раз переключаешь на дешёвую. Назад не возвращаешься. Когда переключать (нужны все три признака): есть рабочий прототип или нужный результат; был запуск или проверка с обратной связью, даже плохой; остаток работы локальный: починить, проверить, довести. Почему работает: сильная берёт неопределённую часть (замысел, поиск причины). Дешёвая берёт определённую (доводка). Передача снизу вверх и частые переключения копят ошибки. Экономия: порядка двух третей цены при близком качестве. Если сомневаешься, переключай позже, но до финальной доводки. Чем позже, тем меньше экономия. Не работает: если часть остатка требует нового замысла. Для пары моделей качество иногда падает на 5–12%, поэтому проверяй результат тестом. Проверено на программировании и терминале. Для текстов и аналитики перенос не проверен
Передача истории файлом-журналом с чтением с конца — новая модель быстро понимает состояниеВыгрузи историю работы в файл. Одна запись на шаг: номер, ответ модели, список действий (команда, код возврата, stdout, stderr). Записи идут по времени. В запросе для новой модели укажи: исходную задачу, путь к файлу, описание полей, «начни с ПОСЛЕДНИХ записей», остаток работы, критерий готовности. Почему работает: текущее состояние лежит в конце журнала. Модель не тащит в контекст всю длинную историю. К ранним записям она возвращается только по нужде. Когда лучше: при передаче вверх (от дешёвой к сильной) журнал чаще давал и точность выше, и цену ниже, чем вставка всего в контекст. При передаче вниз часто лучше оставить историю в том же диалоге, особенно если видны рассуждения прежней модели. Если не уверен, попробуй оба варианта. Если инструмент не создаёт журнал сам, попроси первую модель записать его в конце
📖 Простыми словами

AgentBaton: EfficientModelCollaboration inAgenticTasks

arXiv: 2610.35959

Дешёвые нейросети лажают не на рутинном коде, а на архитектуре и первых шагах: сразу заходят в тупик, городят костыли, а сильная модель потом мучительно разгребает эту кашу. Метод AgentBaton решает проблему через принцип эстафетной палочки. Дорогая LLM строит рабочий каркас, делает первый успешный запуск, а затем ровно один раз сбрасывает исполнение на дешёвую модель.

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

Что реально работает: однократная передача вниз без бесконечного пинг-понга между моделями, который только засоряет контекст ошибками. Причём сама сильная модель на удивление тупит, если просто приказать ей в промпте: "передай задачу, когда будешь готова". Вместо субъективных ощущений сетки авторы прикрутили отдельный микродетектор, который объективно видит готовность прототипа и отмахивает флажком.

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

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

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

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

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