TL;DR
LLM по умолчанию не планирует — она сразу генерирует ответ. Если попросить написать текст, разобрать ситуацию или решить задачу — модель прыгает к результату без плана, без проверки и никогда не скажет «я не знаю». Именно так работает любой LLM-агент без явных инструкций о процессе.
RigorBench — это бенчмарк, который впервые измеряет не что LLM произвела, а как — насколько дисциплинированно она работает. Базовый агент без инструкций о процессе почти никогда не создаёт план, не проверяет результат и не признаёт, что задача невыполнима. Вместо этого — уверенно выдаёт что-то правдоподобное и неверное. Главная находка: модель способна планировать, только никто не просил.
Исследование выделяет пять столпов дисциплины и показывает: когда явно требовать каждый из них, качество результата растёт на 17%, а токенов тратится на 12% меньше — потому что планирование исключает многократные переделки.
Схема метода
Пять столпов, которые нужно прописывать явно в промпте:
СТОЛП 1: Планирование → явный план/декомпозиция ДО выполнения
СТОЛП 2: Верификация → проверка результата по критериям после
СТОЛП 3: Признание незнания → «скажи, если задача невозможна/неясна»
СТОЛП 4: Атомарность → небольшие проверяемые шаги, не монолит
СТОЛП 5: Разнообразие восстановления → при ошибке — новая стратегия, не то же самое другими словами
Всё — в одном промпте или через явную последовательность шагов.
Пример применения
Задача: Нужно разобрать нишу на Wildberries — есть идея продавать корейскую косметику, но непонятно, насколько она перспективна.
Промпт:
Прежде чем отвечать, составь явный план: какие аспекты будешь анализировать и в каком порядке. Покажи план мне до начала работы.
Задача: оцени перспективность ниши «корейская косметика» на Wildberries для нового продавца с бюджетом ~500 000 ₽.
После анализа проверь сам себя: какие пункты плана ты выполнил, а какие пропустил.
Важно: если для полноценного ответа не хватает данных или задача сформулирована слишком широко — скажи об этом явно, задай уточняющие вопросы. Не придумывай цифры.
Работай атомарно: сначала покажи план → жди моё «ок» → потом приступай к анализу.
Результат: Модель сначала покажет явный план: «1. Объём ниши, 2. Конкурентность, 3. Барьеры входа, 4. Что данных нет — нужен доступ к аналитике». Если задача нечёткая — спросит, что именно важно. После подтверждения — пойдёт по плану и в конце покажет, что сделала, а что осталось за кадром. Никакого самоуверенного «вот ваш анализ» без оговорок.
Почему это работает
LLM обучена завершать текст, а не решать задачи методично. По умолчанию она берёт кратчайший путь к правдоподобному ответу — это выглядит как уверенность, но часто это просто fastest completion, а не лучший ответ.
Модель физически способна строить планы, декомпозировать, признавать неопределённость — у неё есть паттерны для всего этого. Но без явного запроса она эти паттерны не активирует. Planning Fidelity (качество планирования) у базового агента: 0.25 из 1. После явного требования — 0.72. Способность была, её просто не вызвали.
Самый нелогичный результат: дисциплинированные агенты тратят меньше токенов, хотя вроде делают больше (пишут план, проверяют). Объяснение простое: без плана агент переделывает одно и то же пять раз. С планом — делает правильно раз и два.
Рычаги управления: - «Покажи план до начала» → «жди ок» — разбивает монолит на два шага, ты контролируешь направление до выполнения - «Скажи, если данных не хватает» — выключает режим уверенной выдумки - «Проверь себя в конце» — отдельный Self-Check шаг, модель сама находит дыры - «При ошибке — опиши, почему предыдущий подход не сработал, прежде чем пробовать новый» — ломает doom loop (когда модель раз за разом пытается одно и то же)
Шаблон промпта
Прежде чем приступать, составь явный план: какие шаги нужны для {задача}.
Покажи план — и жди моего подтверждения перед началом работы.
Задача: {задача}
Требования к процессу:
— Работай по плану, не пропускай шаги
— Если данных не хватает или задача неоднозначна — скажи явно и задай вопросы
— После выполнения проверь: какие пункты плана выполнены, что осталось?
— Если что-то не получится — объясни, почему, и предложи другой подход
{любые дополнительные критерии результата}
Плейсхолдеры:
- {задача} — что нужно сделать: «напиши стратегию», «разбери ситуацию», «составь план»
- {любые дополнительные критерии результата} — формат, объём, угол зрения, ограничения
🚀 Быстрый старт — вставь в чат:
Вот шаблон дисциплинированного запроса.
Адаптируй под мою задачу: [твоя задача].
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит, что за задача и какие критерии результата важны — потому что «план до начала» требует знать, что именно планировать.
Ограничения
⚠️ Abstention не работает натурально: Даже с явным «скажи, если не знаешь» — модели в почти половине случаев всё равно выдают уверенный неверный ответ на заведомо невозможные задачи. Инструкция помогает, но не исключает проблему.
⚠️ Планирование ≠ верификация: Исследование показало, что добавление требования «проверь себя» почти не меняет ситуацию в автономных агентах. В чате — работает лучше, особенно если явно задавать критерии проверки.
⚠️ Масштаб небольшой: 30 задач — маловато для окончательных выводов. Принципы работают, но конкретные числа (+17%, +41%) воспринимай как ориентир, не абсолют.
⚠️ Исследование про автономных агентов, не про чат: В чате нет «траектории выполнения» и нет автоматических проверок. Принципы извлекаемы, но ты сам должен контролировать процесс — запрашивать план, подтверждать, требовать самопроверку.
Ресурсы
RigorBench: Benchmarking Engineering Process Discipline in Autonomous AI Coding Agents Meher Sai Preetam Madiraju, Meher Bhaskar Madiraju Georgia Institute of Technology (Gatech) mehersaipreetam@gatech.edu, meherbhaskar.madiraju@gatech.edu
Смежное: SWEbench (оценка агентов по результату), Agent-Rigor framework, ReAct paradigm (Yao et al.), Reflexion (Shinn et al.)
