TL;DR
CONVOLVE — метод, который добавляет в контекст агента накопительный сборник правил остановки (playbook). После каждой неудачной серии действий специальный рефлексирующий агент анализирует что пошло не так и извлекает правило: "если видишь X — прекращай, задача невыполнима". Эти правила накапливаются и добавляются в контекст следующих запросов.
Модели обучены давать ответы — признавать поражение им неcвойственно. Когда задача содержит противоречие или требует ресурс, которого нет, модель не скажет "это невозможно" сразу. Она продолжит пробовать: ещё один поиск, ещё одно предположение, ещё один инструмент. До тех пор пока не выдаст что-то неверное или не исчерпает все попытки. В исследовании лучшие модели останавливались вовремя только в 27% случаев, когда должны были.
CONVOLVE решает это через три шага: агент делает попытку → рефлексирующий агент анализирует траекторию и формулирует стоп-правило → куратор добавляет правило в playbook. Для обычного пользователя принцип напрямую переводится в ручную практику: сформулировать список явных "условий остановки" и добавить их в промпт перед сложным многошаговым заданием.
Схема метода
Один эпизод → полная траектория действий
ШАГ 1: РЕФЛЕКСИЯ
Рефлексирующий агент читает траекторию → определяет:
- когда агент должен был остановиться?
- какие наблюдения были сигналами "прекрати"?
- какие действия были лишними?
ШАГ 2: ОБНОВЛЕНИЕ PLAYBOOK
Куратор преобразует рефлексию → краткие стоп-правила
Структура: [тип задачи] → [сигнал остановки] → [что сказать]
Playbook обновляется: старые правила уточняются, новые добавляются
ШАГ 3: ВПРЫСК КОНТЕКСТА
При следующем эпизоде → playbook добавляется в системный промпт
Агент видит правила до начала работы
Все шаги — в отдельных вызовах LLM, не в одном промпте.
⟳ Цикл повторяется после каждого эпизода — playbook растёт.
Пример применения
Задача: Ты заказываешь у Claude ресёрч по конкурентам — найти реальные отзывы о новом B2B-сервисе, который только вышел на рынок. Информации почти нет. Вместо того чтобы сказать "не нашёл — данных нет", Claude начинает строить предположения, цитировать несуществующие источники, обобщать из смежных ниш. Ты получаешь уверенный текст о несуществующих вещах.
Промпт:
Ты аналитик-исследователь. Твоя задача — найти конкретную информацию.
Ты ОБЯЗАН остановиться и сообщить об этом, если столкнёшься
с любым из условий ниже.
УСЛОВИЯ ОСТАНОВКИ (Playbook):
[Нет данных]
Сигнал: ты не нашёл реальных источников после двух попыток поиска
Действие: остановись и напиши "Достоверных данных не найдено.
Вот что мне известно и что остаётся неизвестным: ..."
[Противоречие в задаче]
Сигнал: задача содержит взаимоисключающие требования
Действие: остановись и напиши "Задача содержит противоречие: [что именно].
Уточни, что важнее."
[Нет верифицируемого ответа]
Сигнал: вопрос требует информации, которой у тебя не может быть
(свежие данные, приватная информация, прогнозы)
Действие: остановись и напиши "Это невозможно проверить. Чтобы получить
реальный ответ, нужно: [что именно]."
[Субъективность без критериев]
Сигнал: задача требует оценки "лучшего" / "правильного" без заданных критериев
Действие: остановись и уточни критерии перед началом работы
---
ЗАДАЧА:
Найди реальные отзывы пользователей о сервисе {название_сервиса} —
конкретные кейсы, цифры, упоминания в профессиональных сообществах.
Результат: Модель сделает одну-две попытки найти информацию. Если реальных данных нет — она остановится и чётко скажет: "Достоверных данных не найдено. Вот что известно и что остаётся белым пятном." Вместо уверенных галлюцинаций — честная карта незнания.
Почему это работает
Слабость LLM. Модель генерирует текст по паттерну — и паттерн "давать ответ" доминирует над паттерном "признавать невозможность". Это не лень и не обман — просто обучение было преимущественно на задачах с правильным ответом. Задачи без ответа встречались реже, и у модели нет встроенного инстинкта "стоп, это невыполнимо".
Сильная сторона LLM. Модель очень хорошо следует явным структурированным правилам в контексте. Если написать "ЕСЛИ видишь X — делай Y" — она будет следовать этому значительно надёжнее, чем general instruction "будь честной". Конкретное условие > абстрактная установка.
Как CONVOLVE это использует. Метод превращает прошлые ошибки в конкретные правила-триггеры и добавляет их до начала работы. Модель не ждёт пока сама "поймёт" что задача невыполнима — она сверяется со списком сигналов в начале каждого шага. Чем богаче playbook, тем точнее остановка.
Рычаги управления в ручном применении:
| Что менять | Эффект |
|---|---|
| Добавить новое стоп-правило после реальной ошибки | Playbook точнее, меньше галлюцинаций |
Убрать [Субъективность без критериев] |
Модель будет пробовать, а не уточнять |
Добавить [Превышение шагов] → "если больше 3 попыток — стоп" |
Ограничение глубины поиска |
| Указать: "запиши что тебе не хватало" при остановке | Получишь карту пробелов, а не тишину |
Шаблон промпта
Ты {роль}. Выполняй задачи точно, без домыслов и подмены фактов предположениями.
УСЛОВИЯ ОСТАНОВКИ — следуй им строго:
[Нет подтверждённых данных]
Сигнал: после {число_попыток} попыток нет верифицируемых источников
Действие: "Данных не найдено. Известно: [...]. Неизвестно: [...]."
[Противоречие в задаче]
Сигнал: {условие_1} и {условие_2} несовместимы
Действие: "Задача противоречива: [что]. Что важнее?"
[Нет верифицируемого ответа]
Сигнал: задача требует {тип_недоступной_информации}
Действие: "Это невозможно проверить. Чтобы узнать, нужно: [что]."
[{Дополнительное условие под вашу задачу}]
Сигнал: {когда срабатывает}
Действие: {что написать}
---
ЗАДАЧА:
{задача}
Что подставлять:
- {роль} — аналитик, редактор, юрист, ресёрчер
- {число_попыток} — обычно 2–3, для глубоких задач 5
- {тип_недоступной_информации} — свежие данные / внутренняя статистика / прогнозы
- {Дополнительное условие} — добавляй из личного опыта: куда модель у тебя уже "уходила в галлюцинации"
🚀 Быстрый старт — вставь в чат:
Вот шаблон с условиями остановки для LLM-агента.
Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит про твою роль, тип задачи и типичные ситуации когда нужен ответ "не знаю" — потому что без этого нельзя подобрать правильные сигналы остановки для твоего кейса.
Ограничения
⚠️ Не работает "из коробки" для агентских систем: Весь эффект Agentic Abstention в полную силу раскрывается только когда агент реально использует инструменты (браузер, терминал, поиск). В обычном чате без инструментов — работает принцип явных стоп-правил, но не полный CONVOLVE-цикл с накопительным playbook.
⚠️ Масштаб модели не гарантирует лучшую остановку: Исследование показало, что более мощные модели иногда хуже знают когда остановиться — они продолжают искать решение дольше. Стоп-правила нужны даже для GPT-4 и Claude 3.5.
⚠️ Ручной playbook требует кураторства: Если вы добавляете правила вручную — следите за противоречиями. Слишком много стоп-правил могут привести к over-abstention: модель начнёт останавливаться там, где должна работать.
⚠️ Environment-based задачи сложнее: Когда невозможность задачи видна только после попыток (например, товара нет в каталоге) — даже с playbook модели труднее, чем с request-based задачами (где проблема видна сразу из текста).
Как исследовали
Команда создала 28 000+ задач трёх типов: покупки в симулированном магазине, работа в терминале и вопросы с поиском по Wiki. Половина задач были нарочно невыполнимыми — либо инструкция содержала противоречие, либо нужный товар удалялся из каталога уже после начала работы агента.
Тестировали 13 моделей (включая GPT-5.4-mini, Llama-3.3-70B, Qwen-3-235B и другие) и два agentic scaffold. Метрика "своевременная остановка" (timely abstention recall) — остановился ли агент в первый момент, когда у него уже хватало информации чтобы понять: задача невыполнима.
Результаты удивили даже исследователей: лучшая baseline-модель останавливалась вовремя лишь в 26.7% случаев. При этом более крупные и умные модели иногда показывали ХУЖЕ — они упорнее продолжали искать решение там, где нужно было сдаться. Reasoning-режим улучшал своевременность, но снижал общее количество правильных остановок.
CONVOLVE с 20 обучающими примерами (!) поднял своевременную остановку Llama-3.3-70B с 26.7% до 57.4%, а общий recall — до 100%. Примечательно: правила, выученные маленькой 8B моделью, также переносились на большую 70B — playbook работает как знание, не как веса.
Оригинал из исследования (CONVOLVE логика)
CONVOLVE context update cycle:
After episode k:
trajectory τ(k) = (x(k), o1, a1, ..., oT, aT)
reflection_agent.analyze(τ(k)):
→ Was abstention warranted? At which step?
→ Which observations were abstention signals?
→ Which actions delayed abstention?
feedback y(k) = φ(τ(k)) // abstention-relevant signals
curator_model.update(playbook):
→ Convert reflection → concise stopping rules
→ Organize by section: [subjective_preference]
[underspecified_intent] [false_premise] [missing_target] [other]
→ Add new rules; refine existing; remove contradictions
c(k+1) = U(c(k), τ(k), y(k)) // updated context for next episode
Playbook appended to system prompt for all future episodes.
Контекст: Исследователи запускали CONVOLVE на WebShop — симулированном магазине, где агент ищет и покупает товары. Часть заданий нарочно делалась невыполнимой (товар удалён из каталога). CONVOLVE учился на 20 примерах, потом тестировался на 101 отложенном примере — без обновления весов модели.
Адаптации и экстраполяции
1. Адаптация: ежесессионный playbook для повторяющихся задач
Если вы регулярно делаете однотипные задачи (конкурентный анализ, ресёрч, написание текстов определённого формата) — ведите личный playbook остановок.
💡 Адаптация для контент-мастера/ресёрчера: Создай отдельный документ "Когда Claude должен остановиться" и обновляй его после каждой галлюцинации. Добавляй в начало каждого похожего запроса.
Прежде чем начать — прочти мои правила остановки:
[Нет актуальных данных]
Если тема касается событий после 2023 или региональной специфики
— скажи об этом до начала, не домысливай.
[Нет реальных кейсов]
Если просишь реальные примеры компаний/кейсов — только
верифицированные. Нет верифицированных → скажи это явно.
[Неизмеримый критерий]
Если задача содержит "хороший", "качественный", "лучший" без критериев
— уточни критерии перед началом.
Задача: {задача}
2. Техника: "карта незнания" как выход из остановки
Вместо просто "не знаю" — попроси модель структурировать пробелы.
🔧 Добавь к любому стоп-правилу: "При остановке обязательно напиши: (1) что точно известно, (2) что неизвестно, (3) что нужно, чтобы ответить."
Это превращает остановку из тупика в actionable список следующих шагов.
3. Экстраполяция: CONVOLVE-принцип для командной работы с AI
Если несколько человек в команде работают с одним AI-ассистентом (например, в Notion или общем ChatGPT-пространстве): собирайте стоп-правила коллективно. Каждый раз когда кто-то поймал галлюцинацию — добавляет правило в общий playbook. Получается командный CONVOLVE вручную.
Ресурсы
- Работа: "Agentic Abstention: Do Agents Know When to Stop Instead of Act?"
- Сайт с датасетом и кодом: https://lhannnn.github.io/agentic-abstention
- Авторы: Han Luo (University of Leeds, Southwest Jiaotong University, University of Washington), Bingbing Wen, Lucy Lu Wang (University of Washington, Allen Institute for AI)
- Связанные работы: WebShop [2], Terminal-Bench 2.0 [4], AbstentionBench [19], Agentic Context Engineering [31]
