3,583 papers
arXiv:2610.32305 88 23 окт. 2026 г. FREE

Самоограничение агента (self-restraint): агент сам считает, что проверка провалена, и всё равно запускает анализ, который после неё запрещён

КЛЮЧЕВАЯ СУТЬ
Агент сам пишет «стабильность не подтверждена» и следующей командой считает то, что при нестабильности считать нельзя. Если проверка пройдена, агент идёт дальше в 92% случаев. Если провалена, останавливается только в 19%. Метод позволяет заставить аналитического агента реально остановиться, когда данные не годятся для вывода. Вместо «тебе можно остановиться» в промпт пишутся правила допустимости: анализ Б допустим только если выполнено А. Остановка превращается из отказа в ход по правилам. Такая формулировка подняла слабую модель на 25 пунктов, а простое разрешение остановиться дало нестабильный результат.
Адаптировать под запрос
⚡

TL;DR

Исследование показывает: агент в многошаговой аналитической задаче не останавливается, даже когда его собственная проверка показала, что идти дальше нельзя. Авторы назвали это уклоном к действию (action bias) — инерцией продолжать запускать инструменты, не глядя на результат предыдущего шага. Они измеряют способность самоограничения: меняется ли следующее действие агента от того, что он только что посчитал.

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

Простое «тебе разрешено остановиться» работает нестабильно. У одной модели точность остановок выросла с 23% до 79%, но корректное продолжение просело. Другая модель не сдвинулась вообще. Лучше сработала нормативная формулировка: промпт просто излагает правила предпосылок («анализ B допустим только если выполнено A») без разговоров о «завершении задачи». Она подняла слабую модель на 25 пунктов.

🔬

Схема метода

Это находка, а не техника, поэтому схема показывает два уровня: как устроена проверка в исследовании и что из неё берёт практик.

КАК УСТРОЕН БЕНЧМАРК
Задача = цепочка анализов + «ворота» (проверка предпосылки)
Ворота пройдены  → GO      (надо продолжать)
Ворота провалены → NO-GO   (надо стоп / обход)
Парные задачи: та же точка, данные подменены → нужны ПРОТИВОПОЛОЖНЫЕ действия
Оценка: по журналу команд (что реально посчитано), а не по тексту отчёта

ЧТО БЕРЁТ ПРАКТИК (один промпт)
ШАГ 1: Выписать предпосылки как правила «анализ Б допустим только если А» → список ворот
ШАГ 2: Перед каждым анализом агент записывает значение, порог, вердикт → строка в журнале
ШАГ 3: Провал → запрещённые вычисления не запускать, даже «для справки» → отчёт о стопе
ШАГ 4: Человек проверяет журнал команд, а не только итоговый вывод
🚀

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

Задача: Селлер на Ozon запускает A/B-тест двух карточек товара (новые фото против старых) и просит агента в Claude Code посчитать, какая версия даёт больший прирост конверсии. Трафик должен делиться 50/50, но в данных перекос 58/42. Если не поймать его, любой вывод об «приросте» будет ложным, даже при безупречной арифметике.

Промпт:

Ты аналитик A/B-тестов. Данные: файл ab_test_ozon.csv (колонки: user_id, variant, date, views, orders).

ПРАВИЛА ДОПУСТИМОСТИ (это не пожелания, а условия, при которых анализ имеет смысл):

Ворота G1 — Баланс трафика. Критерий: доли вариантов A и B отличаются от 50/50 не значимо (хи-квадрат, p > 0.01).
Ворота G2 — Размер выборки. Критерий: в каждом варианте не менее 1 000 просмотров на день теста и не менее 30 заказов.
Ворота G3 — Нет пересечения с акциями. Критерий: в датах теста нет дней с общей акцией Ozon (список дат ниже).

ЗАВИСИМОСТИ:
- Расчёт прироста конверсии, p-value и доверительных интервалов допустим ТОЛЬКО если G1, G2 и G3 пройдены.
- Если любые ворота провалены, расчёт прироста запрещён полностью: не считай его даже «для информации» и не включай в отчёт.

ПОРЯДОК РАБОТЫ:
1. Посчитай G1, затем G2, затем G3. После каждых ворот выведи строку:
   ГЕЙТ: <имя> | значение: <число> | порог: <число> | вердикт: ПРОЙДЕН / ПРОВАЛЕН
2. Если всё пройдено, продолжай до конца без лишних остановок.
3. Если что-то провалено, остановись на этом месте. В отчёте напиши: какие ворота провалены, почему результат теста нельзя использовать и что делать (перезапустить тест, исправить рандомизацию, продлить сроки).

Остановка при провале ворот считается успешным завершением задачи. Вывод о приросте на невалидных данных — ошибка.

Даты акций Ozon в период теста: 2025-03-08, 2025-03-09.

Результат: Модель выведет три строки с вердиктами ворот. Если перекос трафика подтвердится, она остановится после G1, не будет считать прирост и опишет, что делать дальше. Если все ворота пройдены, она посчитает прирост и интервал. Проверяя результат, откройте журнал команд агента и убедитесь, что расчёт прироста вообще не запускался после проваленных ворот.

🧠

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

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

Что модель умеет хорошо. Она хорошо следует явным условным правилам, когда они сформулированы как условие допустимости, а не как совет. Фраза «анализ Б допустим только при выполнении А» переводит остановку из «отказа» в правильный ход по правилам. Именно такая формулировка («нормативная») подняла слабую модель сильнее, чем просто разрешение остановиться.

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

Рычаги управления: - Число ворот и пороги → добавляй под свою задачу. Пороги бери из стандарта вашей области, а не «на глаз». - Фраза про остановку → убери её, если агент слишком часто тормозит там, где можно идти дальше. Разрешение остановиться портило продолжение у части моделей. - Строка журнала → оставь обязательной: по ней видно, где агент сошёл с рельсов. - Запрет «для справки» → самая важная строка. Без неё агент считает запрещённое и аккуратно умалчивает об этом в отчёте.

📋

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

Дословного текста «нормативного» промпта в доступной части статьи нет, есть только его описание: правила предпосылок без рамки про завершение задачи. Шаблон ниже собран по этому описанию.

Ты {роль_аналитика}. Данные: {источник_данных}.

ПРАВИЛА ДОПУСТИМОСТИ (условия, при которых анализ имеет смысл):

Ворота G1 — {название}. Критерий: {проверка и порог}.
Ворота G2 — {название}. Критерий: {проверка и порог}.
Ворота G3 — {название}. Критерий: {проверка и порог}.

ЗАВИСИМОСТИ:
- {анализ_1} допустим ТОЛЬКО если {ворота} пройдены.
- {анализ_2} допустим ТОЛЬКО если {ворота} пройдены.
- Если ворота провалены, зависимые анализы запрещены полностью: не считай их, даже «для справки».

ПОРЯДОК:
1. Проверяй ворота по очереди. После каждых выведи строку:
   ГЕЙТ: <имя> | значение: <число> | порог: <число> | вердикт: ПРОЙДЕН / ПРОВАЛЕН
2. Все пройдены → продолжай до конца без лишних остановок.
3. Любые провалены → остановись. В отчёте: что провалено, почему вывод недопустим, что делать дальше.

Остановка при проваленных воротах считается корректным завершением. Вывод на невалидных данных — ошибка.

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

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

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

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

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

⚠️

Ограничения

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

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

⚠️ Нельзя полагаться только на отчёт агента: в нём бывают выводы на невалидных данных, хотя тон спокойный и аккуратный. Проверять нужно журнал реально выполненных команд.

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

⚠️ Домен: бенчмарк построен на промышленной статистике и частично биоинформатике, где предпосылки формализованы. В областях без чётких порогов («ворота» размыты) эффект будет слабее.

🔍

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

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

Тринадцать моделей от шести разработчиков прогнали через стандартную среду Terminal-Bench по три раза на задачу. Оценивали по журналу команд: если запущен запрещённый анализ, это ошибка, даже когда отчёт его не упоминает. Результат: 92% правильных продолжений против 19% правильных остановок. В 201 из 272 случаев с верно посчитанной проверкой агент всё равно шёл дальше, и в 174 из них диагностика появилась в журнале до запрещённого анализа. Это и есть «знал и сделал».

Чтобы проверить, не врёт ли строгая оценка по журналу, сертифицированные эксперты по качеству вслепую прочитали 60 отчётов. Они нашли выводы на невалидных данных в 47% дошедших до развилки случаев, а разрыв сократился с 73 до 25 пунктов: часть агентов считала запрещённое, но осторожно умалчивала. Затем проверили инструкции: разрешение остановиться дало у одной модели 23→79% остановок (при потере в GO), у другой — ничего. Предрегистрированная репликация (32 парные задачи, 960 прогонов) подтвердила, что перефразирование разрешения почти не меняет эффект, а нормативная формулировка поднимает слабую модель на 25 пунктов. Вывод для практики: проблема не только в том, что промпт давит «закончи задачу».

💡

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

🔧 Техника: добавить «журнал ворот» в самый конец отчёта → быстрый аудит без чтения всего

В конце отчёта выведи таблицу «Журнал ворот»: гейт | значение | порог | вердикт | какие анализы после него запускались.
Если после ПРОВАЛЕН запускался любой зависимый анализ, пометь строку «НАРУШЕНИЕ».

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

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

Шаг 1. Я даю тебе только данные для проверки баланса групп. Посчитай ворота G1 и дай вердикт. Больше ничего не считай.
(дальше, если G1 пройден) Шаг 2. Вот данные для расчёта конверсии...

Это моя идея на основе результата статьи, авторы такой приём не проверяли.

🔗

Ресурсы

  • DMAIC-Bench: From Self-Reflection to Self-Restraint for Agents in Multi-Stage Analytical Tasks (Preprint).
  • Код и данные: https://github.com/psptpx/DMAIC-Bench-public
  • Авторы: Shan Peng, Shuaiqi Cheng, Miao Peng, Chenyi Zi, Jia Li. Xiwei Technology (Guangzhou) и The Hong Kong University of Science and Technology (Guangzhou).
  • Опорные стандарты и работы из статьи: Lean Six Sigma / DMAIC (Montgomery), AIAG MSA-4, NIST/SEMATECH; Reflexion, Self-Refine; Terminal-Bench.

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

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

Агент сам пишет «стабильность не подтверждена» и следующей командой считает то, что при нестабильности считать нельзя. Если проверка пройдена, агент идёт дальше в 92% случаев. Если провалена, останавливается только в 19%. Метод позволяет заставить аналитического агента реально остановиться, когда данные не годятся для вывода. Вместо «тебе можно остановиться» в промпт пишутся правила допустимости: анализ Б допустим только если выполнено А. Остановка превращается из отказа в ход по правилам. Такая формулировка подняла слабую модель на 25 пунктов, а простое разрешение остановиться дало нестабильный результат.

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

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

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

Результат проверки остаётся в контексте как ещё один кусок текста. Модель продолжает по инерции «задача — посчитать, значит считаем», а стоп-сигнала из текста проверки не получается. Просьба «подумай и покритикуй себя» тоже не помогает: критика появляется, действие не меняется. Зато модель хорошо следует явным условным правилам, если они поданы как условие допустимости, а не как совет. Жесть — даже когда отчёт выглядит аккуратно, эксперты находят в нём выводы на невалидных данных почти в половине случаев. У одной модели простое разрешение остановиться подняло точность остановок с 23% до 79%, но испортило корректное продолжение. Другая модель вообще не сдвинулась.

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

Аналитика с агентом (Claude Code и похожие) → многошаговые расчёты, где у каждого шага есть предпосылка: A/B-тесты, контроль качества, статистика процессов, биоинформатика. Особенно когда ошибка в данных делает вывод ложным даже при идеальной арифметике. НЕ подходит там, где порогов нет и «ворота» размыты: эффект будет слабее. Шаблон проверен узко, так что гоняйте его на своих данных.

Мини-рецепт

1. Выпиши предпосылки: что должно быть правдой, чтобы расчёт имел смысл (баланс групп, размер выборки, стабильность процесса).
2. Дай пороги из стандарта своей области: не «на глаз», а числа, которые можно проверить.
3. Привяжи расчёты к воротам: «прирост допустим ТОЛЬКО если G1, G2, G3 пройдены».
4. Запрети «для справки»: одной строкой, это самое важное место.
5. Потребуй строку журнала: ГЕЙТ: <имя> | значение: <число> | порог: <число> | вердикт: ПРОЙДЕН / ПРОВАЛЕН.
6. Объяви стоп нормальным итогом: «остановка при провале считается успешным завершением».
7. Проверяй журнал команд: смотри не итоговый текст, а что реально запускалось после проваленных ворот.
8. Если агент тормозит зря: убери фразу про разрешение остановиться, оставь только правила.

Примеры

[ПЛОХО] : Посчитай, какая карточка товара даёт больший прирост конверсии. Если что-то не так с данными, можешь остановиться.
[ХОРОШО] : Ты аналитик A/B-тестов. Данные: ab_test_ozon.csv. ПРАВИЛА ДОПУСТИМОСТИ: Ворота G1 — баланс трафика, доли вариантов не отличаются от 50/50 значимо (хи-квадрат, p > 0.01). Ворота G2 — не менее 1000 просмотров в день и 30 заказов на вариант. Расчёт прироста конверсии допустим ТОЛЬКО если G1 и G2 пройдены. Если ворота провалены, не считай прирост даже для справки. После каждых ворот выведи: ГЕЙТ: <имя> | значение | порог | вердикт. Остановка при провале считается успешным завершением, вывод на невалидных данных — ошибка. В данных перекос 58/42. Агент выведет вердикт ПРОВАЛЕН на G1, не запустит расчёт прироста и напишет, что делать: перезапустить тест или исправить рандомизацию.
Источник: DMAIC-Bench: From Self-Reflection to Self-Restraint for Agents in Multi-Stage Analytical Tasks
ArXiv ID: 2610.32305 | Сгенерировано: 2026-10-26 13:10

Проблемы LLM

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

Методы

МетодСуть
Ворота допустимости — модель останавливается, когда проверка проваленаВыпиши предпосылки анализа как ворота: название, критерий, порог. Задай зависимости: Анализ Б допустим ТОЛЬКО если ворота А пройдены. Потребуй после каждых ворот строку: ГЕЙТ: <имя> \| значение: <число> \| порог: <число> \| вердикт: ПРОЙДЕН / ПРОВАЛЕН. Добавь: при провале зависимые расчёты запрещены полностью, даже «для справки». И: остановка при провале — корректное завершение. Почему работает: значение, порог и вердикт записаны рядом с действием. Остановка становится ходом по правилам, а не отказом. Запрет «для справки» не даёт посчитать запретное и промолчать об этом в отчёте. Когда применять: анализ с предпосылками, которые можно проверить числом. Например, баланс групп, размер выборки, стабильность процесса, качество данных. Пороги бери из стандартов своей области, не «на глаз». Когда не работает: предпосылки размытые, порогов нет. Тогда ворота тоже будут размытыми. Настройка: если модель тормозит там, где можно идти дальше, убери фразу про остановку как успешный итог. Оставь строки журнала
📖 Простыми словами

DMAIC-Bench: From Self-Reflection to Self-Restraint for Agents in Multi-Stage Analytical Tasks

arXiv: 2610.32305

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

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

Исследователи в бенчмарке DMAIC-Bench наглядно доказали: хвалёная рефлексия тут бесполезна. Агенту скармливали A/B-тест с кривым сплитом трафика — перекос 58 на 42 вместо честных 50 на 50. Модель замечает лажу, но не способна на самоограничение: она всё равно радостно выдаёт победный «прирост конверсии». Модные промпты в духе «подумай и покритикуй себя» — полная туфта, потому что без принудительного стопа агент просто генерирует самокритику и тут же её хоронит.

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

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

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

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

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