3,583 papers
arXiv:2609.25686 83 22 сент. 2026 г. FREE

Лестница состояния задачи: явные команды и самоучёт побеждают пассивный чеклист статусов

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

TL;DR

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

Главная боль: даже когда модели показывают точный, всегда актуальный чеклист статусов ("шаг 3: готово", "шаг 5: заблокирован"), она всё равно ошибается — повторно выполняет уже сделанный шаг, если пользователь просто снова упомянул его с новым номером заказа, без явного "переделай". Ещё более неожиданно: если попросить модель самой вести свой статус-леджер (без всякой проверки правильности) — она справляется лучше, чем когда ей показывают точный внешний чеклист.

Метод — "лестница" из четырёх уровней связи состояния с поведением: (1) статус только в переписке, (2) точный чеклист показан, (3) перед каждым действием — прямая команда типа "этот шаг ГОТОВ — не переделывай", (4) блокировка неправильных действий на уровне инструмента. Прыжок с уровня 2 на уровень 3 — с показа на приказ — даёт самый большой скачок надёжности, и это чистый приём промптинга, без кода.


🔬

Схема метода

УРОВЕНЬ 1 (слабый): Статус живёт только в истории чата → модель часто путает "упомянул" с "сделай заново"
УРОВЕНЬ 2: Точный чеклист статусов вставляется в каждое сообщение → лучше, но ошибки остаются
УРОВЕНЬ 3 (применим в чате): Перед действием — явная команда на основе статуса:
   "шаг X: ГОТОВО — не переделывай" / "шаг Y: ЗАБЛОКИРОВАН — не делай, назови что нужно сначала" / "шаг Z: ДОСТУПЕН — делай сейчас"
   → ошибки резко падают
УРОВЕНЬ 4 (нужен код/инструмент): Жёсткая блокировка неправильного действия на уровне системы → почти без ошибок, но требует внешнего механизма
ДОПОЛНИТЕЛЬНО (чистый чат-приём): Самоучёт — просишь модель САМУ вести и выводить статус-леджер каждый ход, без проверки → обходит даже точный внешний чеклист

🚀

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

Задача: Ты ведёшь запуск товара на Wildberries через AI-ассистента как виртуального проектного менеджера. Этапы: заказать образцы у фабрики → согласовать договор → снять карточки товара → загрузить на маркетплейс → запустить рекламу. Переписка идёт несколько дней, вразнобой: ты то спрашиваешь про уже готовый этап, то отменяешь шаг, то просишь переделать.

Промпт:

Ты — мой проектный ассистент по запуску товара на Wildberries. Веди статус этапов:

1. Заказать образцы у фабрики [код завершения: О-101]
2. Согласовать договор с фабрикой [О-102] (требует: 1)
3. Снять карточки товара [О-103] (требует: 2)
4. Загрузить карточки на Wildberries [О-104] (требует: 3)
5. Запустить рекламу [О-105] (требует: 4)

Правила:
- Каждый этап выполняется ОДИН раз.
- Если я снова упоминаю уже сделанный этап без слова "переделай" — просто подтверди, что он готов, не выполняй заново.
- Если этап заблокирован (не готовы условия) — не выполняй, объясни что нужно сделать сначала.
- Если этап отменён — откажись выполнять, даже если я снова о нём заговорю.

Перед тем как выполнить или отклонить любое моё сообщение, сначала явно укажи одной строкой:
СТАТУС: {этап} — {ДОСТУПЕН, выполняю / УЖЕ ГОТОВО, не переделываю / ЗАБЛОКИРОВАН, жду {что} / ОТМЕНЁН, отказываюсь}

После статуса — выполни или откажи, и в конце всегда выводи свой леджер:
ЛЕДЖЕР:
1: ..., 2: ..., 3: ..., 4: ..., 5: ...

Моё сообщение: "Слушай, разберись с карточками товара, вот новый заказ №4521"

Результат: Модель сначала выдаст строку СТАТУС, где явно скажет — доступен этап или уже сделан. Если этап уже был выполнен раньше (даже с другим номером заказа), она подтвердит это и не будет выполнять заново — потому что команда явно требует сначала произнести статус, а не сразу действовать. В конце — обновлённый леджер всех пяти этапов, который сама модель ведёт и на который будет ориентироваться в следующих сообщениях.


🧠

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

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

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

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

Рычаг управления: можно менять формулировку команды под задачу — "ДОСТУПЕН/ГОТОВО/ЗАБЛОКИРОВАН" замени на свои категории статуса (например, "требует согласования", "в работе", "просрочено"). Убери требование выводить леджер, если не хочешь загромождать ответ — но тогда точность просядет.


📋

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

Ты — мой ассистент по управлению проектом «{название проекта}». Веди статус этапов:

{список этапов с зависимостями и кодами завершения}

Правила:
- Каждый этап выполняется {сколько раз} раз.
- Если я снова упоминаю уже сделанный этап без явного "переделай" — подтверди готовность, не выполняй заново.
- Если этап заблокирован — не выполняй, объясни что нужно сделать сначала.
- Если этап отменён — откажись выполнять.

Перед действием сначала укажи одной строкой:
СТАТУС: {этап} — {ДОСТУПЕН / УЖЕ ГОТОВО / ЗАБЛОКИРОВАН / ОТМЕНЁН}

Затем выполни или откажи. В конце выведи свой леджер по всем этапам.

Моё сообщение: {запрос}

Плейсхолдеры: {название проекта} — суть задачи; {список этапов} — твои шаги с тем, что от чего зависит; {сколько раз} — обычно "один"; {запрос} — текущее сообщение пользователя.

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

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

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

LLM спросит про твои этапы и их зависимости — потому что без чёткого списка "что от чего зависит" директивы не сработают. Модель возьмёт структуру команд из шаблона и подставит твои реальные этапы.


⚠️

Ограничения

⚠️ Не для задач с "оценкой на глаз": если правильное поведение зависит от интерпретации свободного текста (а не от чёткого статуса "готово/заблокировано"), жёсткие команды и блокировки могут навредить — если модель неверно поняла запрос, команда просто закрепляет эту ошибку.

⚠️ Включённый режим рассуждений частично лечит слабый уровень 1-2: у мощных моделей с "размышлением" перед ответом разница между простым чеклистом и явными командами сжимается — но полностью пассивный подход (только переписка) всё равно слабее.

⚠️ Жёсткая блокировка (уровень 4) требует внешнего механизма — кода или инструмента, который физически не даёт выполнить неправильное действие. В чистом чате без интеграций это нельзя воспроизвести буквально, только сымитировать через требование к модели самой себя перепроверять.


🔍

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

Команда построила тестовый стенд из «проектов»: 5–18 шагов с зависимостями (закупка, согласование, поставка и т.п.), сгенерированных по сценарию — пользователь просит шаги вразнобой, отменяет один, просит переделать другой. Каждый эпизод содержал специальные "ловушки": повторное упоминание готового шага без слова "переделай", вопрос про заблокированный или отменённый шаг.

Проверяли три модели (включая мощную Qwen3-235B и слабую Qwen3.6-35B, а также закрытую DeepSeek V4 Pro), с включённым и выключенным режимом рассуждений. Оценивали не по мнению другой модели-судьи, а строгим сопоставлением кода выполнения — либо шаг выполнен правильно, либо нет.

Оказалось, что просто показ точного статуса поднимает успех совсем немного (с 0,38 до 0,55 у топовой модели), а явные команды-директивы — сильно (до 0,84–0,87), а жёсткая блокировка — почти до максимума (0,98). Но на внешнем бенчмарке про менеджмент проектов, где правильность зависит от интерпретации свободного текста, а не от чёткого статуса, всё наоборот: простой показ записи побеждает обе "командные" версии, а жёсткая блокировка неверного суждения модели только вредит. Отсюда вывод — сила навязывания статуса должна зависеть от того, насколько чётко определено "правильное поведение".


💡

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

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

Пример: в промпте для трекинга переговоров с клиентом попроси модель перед каждым ответом писать "СТАТУС ПЕРЕГОВОРОВ: {этап} — {что решено, что открыто}" — это перенос техники с проектных задач на любой длинный диалог с накопленным контекстом (например, ведение сделки, поддержка клиента, юридическое согласование документа).

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


🔗

Ресурсы

How Strongly Should Task State Influence an LLM Agent? — Chenyu Zhang (University of Waterloo), Wonbin Kweon (Sungkyunkwan University), Jiawei Han (University of Illinois Urbana-Champaign). Препринт. Упоминаются бенчмарки τ²-bench (авиакомпания) и PMBench (управление проектами) как внешняя проверка выводов.


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

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

Парадокс: точный чеклист статусов, где каждый шаг подписан "готово" или "заблокирован" — работает хуже, чем если попросить модель саму вести свой учёт, без всякой проверки правильности. Метод даёт агенту чёткое поведение на многошаговых задачах: он не путает "ты снова упомянул шаг" с командой "сделай его заново". Фишка — замени показ факта на прямую команду: не "шаг 3 готов", а "шаг 3 ГОТОВ — не переделывай". Скачок с уровня "покажи статус" на уровень "прикажи действие" даёт самый большой прирост надёжности.

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

Внутри — лестница из четырёх ступеней, каждая следующая надёжнее прошлой. Уровень 1: статус живёт только в переписке — модель забывает. Уровень 2: точный чеклист в каждом сообщении — лучше, но модель всё равно путает "увидеть факт" и "сделать из него вывод". Уровень 3: перед действием — готовая команда вместо факта: "не переделывай" или "делай сейчас". Модель не думает — она подчиняется, и ошибки резко падают. Уровень 4 — жёсткая блокировка на уровне кода, почти без ошибок, но нужен внешний инструмент вне чата.

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

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

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

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

Мини-рецепт

1. Опиши этапы: список шагов с зависимостями и кодами завершения ("шаг 3 требует шаг 2").
2. Задай жёсткое правило: каждый этап выполняется один раз, без слова "переделай" — не трогай.
3. Заставь произносить статус первым: перед любым действием модель пишет одну строку — "СТАТУС: шаг X — ДОСТУПЕН / ГОТОВО / ЗАБЛОКИРОВАН".
4. Включи самоучёт: попроси вести и выводить леджер всех этапов в конце каждого ответа — без проверки это работает даже лучше внешнего чеклиста.

Примеры

[ПЛОХО] : Разберись с карточками товара, вот новый заказ №4521
[ХОРОШО] : Сначала укажи одной строкой СТАТУС: {этап} — {ДОСТУПЕН, выполняю / УЖЕ ГОТОВО, не переделываю / ЗАБЛОКИРОВАН, жду}. Затем выполни или откажи. В конце выведи леджер по всем пяти этапам.
Источник: How Strongly Should Task State Influence an LLM Agent?
ArXiv ID: 2609.25686 | Сгенерировано: 2026-09-23 04:39

Проблемы LLM

ПроблемаСутьКак обойти
Модель видит статус, но не делает из него правильный вывод о действииПоказываешь модели точный чеклист: "шаг 3 — готово". Пользователь снова упоминает этот же шаг (без слова "переделай"). Модель всё равно выполняет его заново. Она прочитала факт, но не связала его с "значит, сейчас переделывать не нужно". Проблема для любых агентов, ведущих многошаговые процессы с памятью о состоянииНе показывай статус как факт — превращай его в прямую команду перед каждым действием: "шаг X ГОТОВ — не переделывай", "шаг Y ЗАБЛОКИРОВАН — не делай, назови что нужно сначала"

Методы

МетодСуть
Явная команда вместо статуса-фактаПеред выполнением любого действия заставь модель сначала произнести одну строку-вывод: СТАТУС: {этап} — {ДОСТУПЕН/ГОТОВО/ЗАБЛОКИРОВАН/ОТМЕНЁН}, а не просто дай ей таблицу статусов. Почему работает: модель плохо превращает факт в решение о поведении, но отлично исполняет уже готовый вывод-приказ. Убираешь промежуточный шаг рассуждения — вместо "вот факт, сделай вывод" сразу "вот вывод, действуй". Когда работает: многошаговые задачи с чёткими условиями готовности/блокировки (проекты, тикеты, воркфлоу). Когда не работает: задачи с "оценкой на глаз" — если правильное поведение зависит от интерпретации свободного текста, жёсткая команда просто закрепит ошибку интерпретации
📖 Простыми словами

How Strongly Should Task State Influence anLLMAgent?

arXiv: 2609.25686

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

Это как неопытный стажёр с блокнотом: галочка напротив пункта стоит, но стоит начальнику на панике крикнуть «срочно делай!», как стажёр бежит делать всё по второму кругу. Формально данные перед глазами, но желание угодить перевешивает логику. Чтобы агент не косячил, ему мало просто показать шпаргалку со статусом — его нужно жестко вести по процессу.

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

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

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

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

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

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