3,583 papers
arXiv:2610.05572 70 4 окт. 2026 г. FREE

Разделение сложности задачи и провала запуска: почему «агент скоро провалится» нельзя определить по первым шагам

КЛЮЧЕВАЯ СУТЬ
Парадокс: предсказатель провала, который вообще не смотрит на работу агента, набирает почти столько же баллов, сколько тот, что следит за каждым шагом. Вывод исследования позволяет не сжигать токены на обрыв «плохо выглядящих» запусков и сразу распределять бюджет по сложности задач: сильную модель, лишние попытки или человека отдавать тяжёлым задачам. Высокий балл наблюдателя измеряет сложность задачи, а не судьбу конкретного запуска. Внутри одной задачи ранние шаги дают почти монетку (AUROC около 0,5, где 1 значит «идеально»), а сложность видна ещё до старта.
Адаптировать под запрос
⚡

TL;DR

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

Боль знакома тем, кто гоняет агентов в Claude Code или Cursor: на третьем шаге агент мечется, ошибается, и хочется всё оборвать и начать заново. Но по первым шагам нельзя отличить запуск, который выправится, от запуска, который развалится. Метрики качества мониторов (AUROC, где 0,5 — «монетка», а 1 — «идеально») складывают задачи вместе. Поэтому монитор выглядит умным, хотя он просто отличает «лёгкую задачу» от «тяжёлой». Внутри одной задачи он почти не лучше монетки.

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

🔬

Схема метода

Это не техника, а правило принятия решений:

РЕШЕНИЕ 1 (до запуска): оцени сложность ЗАДАЧИ → выбери модель / бюджет / человека
РЕШЕНИЕ 2 (в начале запуска): ранние шаги ≠ надёжный сигнал → НЕ обрывай по ним
РЕШЕНИЕ 3 (позже в запуске): сигнал сильнее → контрольные точки позже
ПРОВЕРКА монитора: сравнивай успешные и проваленные запуски ОДНОЙ задачи, а не всех подряд
🚀

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

Задача: Разработчик маркетплейса вечером ставит Claude Code на бэклог из 30 тикетов: от «поправить текст кнопки» до «перенести оплату на новый эквайринг». Токенов хватает не на всё. Раньше он следил за ранними шагами и убивал запуски, которые «выглядят плохо». Теперь он сортирует задачи заранее.

Промпт:

Ты — тимлид, который распределяет работу между агентами. Ниже 30 тикетов из бэклога.
Для каждого оцени СЛОЖНОСТЬ ЗАДАЧИ ДО ЗАПУСКА, только по тексту тикета и затронутым модулям.

Признаки сложности: размытое описание, нет воспроизводимого шага, затронуто много файлов,
нужны знания о внешней системе (эквайринг, ЦБ, ЕГРЮЛ), нет тестов.

Для каждого тикета выдай строку:
ID | сложность (низкая/средняя/высокая) | почему (1 фраза) | рекомендация

Рекомендации:
- низкая → дешёвая модель, 1 попытка
- средняя → сильная модель, до 2 попыток
- высокая → сначала разбей на подзадачи или передай человеку

Не оценивай «как пойдёт запуск». Оценивай только саму задачу.

Тикеты:
{список_тикетов}

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

🧠

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

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

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

Как использовать: решение о ресурсах привязывай к тому, что реально различимо. До запуска — к задаче, внутри запуска — к сигналам из его поздней части. Рычаги: - Момент проверки. Чем позже контрольная точка, тем надёжнее сигнал, но тем больше потрачено токенов. - Тип агента. У слабых моделей сбой заметнее, у сильных он хуже виден. - Цена ошибки при обрыве. Если обрыв ломает запуск, который бы справился, ложные срабатывания дороже, чем кажется. Одна из цитируемых работ показала, что критик с хорошими офлайн-цифрами может снизить долю успехов, когда прерывает удачные траектории.

📋

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

Готовых промптов в статье нет. Ниже сборка по её выводам: триаж задач по сложности до запуска.

Ты — {роль_распределителя}. Перед запуском агента оцени сложность каждой задачи
ТОЛЬКО по её описанию и контексту. Не угадывай, как пойдёт выполнение.

Критерии сложности: {критерии}.

Для каждой задачи:
ЗАДАЧА | сложность (низкая/средняя/высокая) | причина | действие

Правила действия:
- низкая → {действие_для_простых}
- средняя → {действие_для_средних}
- высокая → {действие_для_сложных}

Задачи:
{список_задач}

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

⚠️

Ограничения

⚠️ Ранний обрыв не «бесполезен вообще»: сигнал провала усиливается позже в запуске. Статья говорит только, что ранние мониторы слабы. Поздние контрольные точки могут работать.

⚠️ Старые и узкие модели: значительная часть данных — модели Llama-3 и Qwen в задачах по исправлению кода. Для новейших агентов в других доменах вывод может сместиться.

⚠️ Результат не про промпты: вывод относится к решениям о ресурсах и остановке, а не к формулировке запросов. Из промпта в статье берётся только триаж, и он собран по выводам, а не проверен авторами.

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

🔍

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

Идея была простой: взять наборы данных, где один и тот же агент пытается решить одну и ту же задачу много раз. Тогда можно честно сравнить успешный и проваленный запуск, держа задачу и модель неизменными. Авторы проанализировали четыре коллекции запусков: SWE-agent (три модели Llama-3), SWE-rebench (Qwen3-Coder), LiveClawBench (17 моделей) и Latent Programming Horizons (две модели с доступом к скрытым состояниям).

Сначала они разложили общий AUROC на два вида сравнений: «успех против провала внутри одной задачи» и «между разными задачами». Оказалось, что более 99,93% всех пар сравниваются между разными задачами. Поэтому «оракул сложности», который не видит запуск вообще и выдаёт лишь исторический процент провалов задачи, получает AUROC до 0,945. Внутри задачи у него ровно 0,5.

Простой пример из статьи. Две задачи из Django по 10 попыток: одна решается 9 раз, другая 1 раз. Предсказатель «просто назови процент провалов задачи» даёт AUROC 0,9 по всем 20 запускам и 0,5 внутри каждой задачи.

Затем авторы проверили поведенческие предсказатели, опубликованные мониторы и пробы по скрытым состояниям на ранних шагах. Результат: внутризадачное различение стабильно слабое, около 0,50–0,55. Это удивило: цифры из прошлых работ (0,85–0,94) выглядели куда внушительнее. В конце авторы проиграли реплеем решения при фиксированном бюджете токенов. Распределение ресурсов по задачам оказалось лучше, чем только обрыв. Ранний обрыв начинает выигрывать, когда внутризадачный AUROC достигает примерно 0,84–0,93, то есть намного выше, чем у существующих мониторов.

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

💡

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

🔧 Техника: контрольные точки позже и с пересмотром, а не мгновенный обрыв → меньше потерянных запусков, которые бы выправились.

Это экстраполяция выводов статьи, а не проверенный метод. Фрагмент для CLAUDE.md или AGENTS.md:

Правила самоконтроля:
- Первые {N} шагов не меняй стратегию и не сдавайся из-за единичных ошибок.
- После {N} шагов и далее каждые {M} шагов сделай контрольную точку:
  1) что уже проверено тестами, 2) что осталось, 3) есть ли прогресс.
- Если прогресса нет на двух подряд контрольных точках — остановись,
  опиши блокер и передай человеку. Не продолжай тратить токены.

Подставляйте {N} и {M} под длину ваших задач, например 15 и 10 шагов.

🔗

Ресурсы

  • Disentangling Task Difficulty from Run-Level Failure in Agent Failure Prediction
  • Авторы: Mohsen EsfandyariDoulabi, Lawrence Arkoh, Biruk Tadesse, Vaishvi Patel, Mehul Sharma, Marcelo d'Amorim, Wesley Assunção — North Carolina State University, USA
  • Связанные работы из статьи: Ge et al. (оценка сложности задач по IRT), Bulut (пулованный AUROC отражает сложность вопросов), Mehtiyev & Assunção (ассоциации траекторий зависят от условий сравнения), Vasudev et al. (критик может ухудшить результат)
  • Использованные наборы данных: SWE-agent, SWE-rebench, LiveClawBench, Latent Programming Horizons

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

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

Парадокс: предсказатель провала, который вообще не смотрит на работу агента, набирает почти столько же баллов, сколько тот, что следит за каждым шагом. Вывод исследования позволяет не сжигать токены на обрыв «плохо выглядящих» запусков и сразу распределять бюджет по сложности задач: сильную модель, лишние попытки или человека отдавать тяжёлым задачам. Высокий балл наблюдателя измеряет сложность задачи, а не судьбу конкретного запуска. Внутри одной задачи ранние шаги дают почти монетку (AUROC около 0,5, где 1 значит «идеально»), а сложность видна ещё до старта.

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

Не суди по третьему шагу. Суди по тексту задачи. Всё сводится к трём решениям: 1. До запуска оцени сложность задачи и выбери модель, бюджет или человека. 2. В начале запуска не обрывай его по сумбурным шагам. 3. Ближе к концу ставь контрольные точки: там сигнал сильнее. Распределяй ресурсы между задачами, а не внутри одного запуска. Это как угадывать исход матча по первой минуте. Команда может начать плохо и выиграть. А по составу и турнирной таблице видно, кто сильнее. Проверяй наблюдателя честно. Сравнивай успешные и проваленные запуски ОДНОЙ задачи. Не смешивай всё в кучу.

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

Метрики качества складывают все задачи вместе. Лёгкие задачи почти всегда удаются, тяжёлые почти всегда нет. Наблюдатель просто учится отличать одни от других и выглядит умным. В начале запуска агент, который пробует и ошибается, неотличим от агента, который вот-вот выправится. Наблюдатель видит тяжесть задачи, а не будущее запуска, и поэтому внутри одной задачи почти не лучше монетки. У ложных обрывов есть цена. Одна из работ, которые цитирует статья, показала: критик с хорошими офлайн-цифрами может снизить долю успехов. Он режет траектории, которые справились бы сами. Сигнал провала растёт ближе к концу запуска. У слабых агентов он виден лучше, у сильных хуже.

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

Агентная разработка (Claude Code, Cursor и подобные) → распределение ограниченного бюджета токенов по пачке задач, особенно когда на всё не хватает и хочется «убивать» подозрительные запуски. НЕ подходит как запрет на любой обрыв: поздние контрольные точки могут работать. Данные в основном про Llama-3 и Qwen в исправлении кода, для новейших агентов и других областей вывод может сместиться. Внутризадачный анализ возможен только для задач, где были и успех, и провал. Таких примерно от пятой до двух пятых. Промпт-триаж ниже собран по выводам статьи, авторы его не проверяли.

Мини-рецепт

1. Собери список: выпиши все задачи до запуска, пока агент ещё ничего не сделал.
2. Назови признаки тяжести: размытое описание, нет шага для воспроизведения, много затронутых файлов, внешняя система, нет тестов.
3. Оцени задачу, а не запуск: модель смотрит только на текст и контекст. Угадывать, «как пойдёт», запрещено.
4. Раздай ресурсы по таблице: лёгким дешёвую модель и одну попытку, средним сильную модель и до двух попыток, тяжёлые сначала режь на части или отдавай человеку.
5. Не обрывай по первым шагам: если и ставишь проверку, то ближе к концу запуска.
6. Проверь свой наблюдатель: сравни успешные и проваленные запуски одной задачи. Если разницы нет, он просто отличает лёгкое от тяжёлого.

Примеры

[ПЛОХО] : Следи за агентом. Если на третьем шаге он путается и ошибается, остановись и начни заново.
[ХОРОШО] : Ты тимлид и распределяешь работу между агентами. Оцени сложность каждой задачи ДО запуска, только по тексту и затронутым модулям. Признаки: размытое описание, много файлов, внешняя система (эквайринг, ЕГРЮЛ), нет тестов. Формат строки: ID | сложность | причина в одну фразу | действие. Низкая: дешёвая модель, 1 попытка. Средняя: сильная модель, до 2 попыток. Высокая: сначала разбей на части или передай человеку. Не оценивай, как пойдёт запуск. Оценивай только задачу. Задачи: {список_задач} Первый запрос тратит токены на угадывание по шуму. Второй сортирует 30 задач до старта и отправляет бюджет туда, где он нужен.
Источник: Disentangling Task Difficulty from Run-Level Failure in Agent Failure Prediction
ArXiv ID: 2610.05572 | Сгенерировано: 2026-10-06 05:40

Проблемы LLM

ПроблемаСутьКак обойти
По первым шагам агента не понять, справится он или нетАгент в начале мечется, ошибается, пробует разное. Выглядит плохо. Но удачный запуск в начале выглядит так же. Оборвёшь рано — потеряешь запуск, который выправился бы. Проверки вида «агент провалится» кажутся точными, потому что различают лёгкие задачи и тяжёлые. Внутри одной задачи они почти не лучше монеткиНе обрывай запуск по первым шагам. Ставь контрольные точки позже: к концу сигнал провала заметно сильнее. Проверяя любой такой индикатор, сравнивай успешные и проваленные запуски одной и той же задачи. Не смешивай разные задачи в одну оценку
📖 Простыми словами

Disentangling Task Difficulty from Run-Level Failure inAgentFailure Prediction

arXiv: 2610.05572

Все эти модные системы, которые якобы ловят сбои AI-агентов на лету, занимаются самообманом. Исследователи вскрыли простую вещь: высокая точность таких «детекторов» объясняется лишь тем, что задача изначально зубодробительная. Модели не видят реальной траектории запуска, они просто знают статистику: «на этой фигне обычно все валятся». В итоге то, что выдают за умный мониторинг выполнения, оказывается обычной оценкой сложности, известной ещё до нажатия кнопки «старт».

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

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

Тестировали механику на кодинге в духе Claude Code и закрытии багов, но принцип универсален. Правило применимо к любым сложным пайплайнам: от парсинга кривых сайтов до интеграции незнакомых API. Если агент лезет в запутанную легаси-систему, весь риск зашит в саму постановку задачи, а не в сиюминутную опечатку на втором шаге. Сортируй задачи на входе, а не строй иллюзий о спасении кривого запуска по ходу пьесы.

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

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

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

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