TL;DR
Модель в диалоге застревает на первой догадке о том, что вы хотели, и потом просто патчит старый ответ новой информацией — вместо того, чтобы пересобрать его с нуля. Уточнение модель формально принимает ("окей, понял"), но фактически продолжает тащить в текст обломки прежней, уже неверной интерпретации.
Представь: просишь помочь с отчётом "к завтрашнему ревью". Модель решает, что это для совета директоров, и пишет в стиле презентации с оптимистичным тоном. Ты уточняешь: "нет, это разбор провала для инженеров, нужны причины без сглаживания". Модель добавляет технические детали — но тон, структура и общий "презентационный дух" остаются прежними. Она сказала, что поняла, но не перестроила задачу заново.
Решение — не полагаться на то, что модель сама пересмотрит подход после уточнения. Либо явно просишь её забыть все прежние предположения и начать с чистого листа, либо с самого начала используешь двухфазную схему: сначала модель задаёт все уточняющие вопросы, и только потом — выполняет задачу.
Схема метода
СЦЕНАРИЙ А — Rollback (если уточнение пришло ПОСЛЕ неверного ответа, один промпт):
ШАГ 1: Явно указать "забудь все прошлые предположения, перестрой ответ с нуля
только на основе текущего уточнения" → новый ответ без остатков старой версии
СЦЕНАРИЙ Б — Two-phase (если задача изначально двусмысленная, два хода):
ШАГ 1: Просишь модель СНАЧАЛА задать все уточняющие вопросы,
не приступая к выполнению → список вопросов
ШАГ 2: Отвечаешь на вопросы → модель выполняет задачу → финальный ответ
без "хвоста" от неверной интерпретации
Пример применения
Задача: Основатель стартапа просит помочь разобрать провальный релиз фичи перед завтрашней встречей.
Промпт 1 (первое сообщение):
Помоги написать разбор того, почему наш последний релиз фичи провалился.
Нужно к завтрашней встрече.
Модель, не зная аудиторию, скорее всего напишет в духе презентации для инвесторов: сглаженные формулировки, "точки роста", минимум техники.
Промпт 2 (уточнение + rollback):
Уточнение: это разбор для нашей инженерной команды, а не для инвесторов.
Нужны технические причины сбоя и конкретные шаги фикса, без сглаживания.
Забудь все предположения, которые ты делал в предыдущем ответе о тоне и аудитории.
Перестрой разбор с нуля, основываясь только на этом уточнении.
Не используй структуру или формулировки из прошлого ответа.
Результат: Модель выдаст новый текст, написанный именно как инженерный постмортем — с конкретными техническими причинами сбоя, без "заглаживания" провала и без остатков презентационного языка. Без явного rollback модель скорее просто добавила бы технические детали поверх старой, всё ещё "презентационной" структуры.
Почему это работает
Модель в диалоге не пересматривает всю картину задачи при получении уточнения — она патчит уже сгенерированный ответ, добавляя новые факты поверх старой формы. Это происходит даже когда модель вслух подтверждает, что поняла уточнение.
Зато модель отлично умеет генерировать связный текст с нуля, когда получает чистую, непротиворечивую инструкцию без истории прежних версий.
Явная команда "забудь всё и начни заново" отрезает модели путь к патчингу — она вынуждена сгенерировать ответ, опираясь только на актуальные условия, а не на скелет старого текста.
Рычаги управления: - Порядок подачи информации — если можешь, дай все условия сразу в одном сообщении, а не по частям: путь важен не меньше, чем итоговый набор фактов. - Явный rollback против простого уточнения — фраза "забудь прошлые предположения" резко усиливает реальный пересмотр, а не только словесное согласие. - Two-phase с самого начала — сильнее, чем rollback постфактум: не даёт модели вообще сформировать неверную интерпретацию.
Шаблон промпта
Rollback (после того как модель уже пошла по неверному пути):
Забудь все предположения, которые ты делал в предыдущих ответах об этой задаче.
Вот уточнённое условие: {уточнение}.
Построй ответ заново, с нуля, основываясь только на этом уточнении.
Не используй структуру, тон или содержание из прошлых ответов.
Two-phase (с самого начала диалога):
Прежде чем выполнять задачу «{задача}», задай мне все уточняющие вопросы,
которые нужны, чтобы устранить любую неоднозначность.
Не приступай к выполнению, пока я не отвечу на все вопросы.
🚀 Быстрый старт — вставь в чат:
Вот два приёма для работы с неоднозначными задачами в диалоге с AI:
(1) Two-phase — попроси модель сначала задать уточняющие вопросы, не выполняя задачу;
(2) Rollback — если уточнение пришло после того, как модель уже начала выполнять задачу неправильно,
явно попроси забыть прошлые предположения и построить ответ с нуля.
Адаптируй один из этих приёмов под мою задачу: {моя задача}.
Задавай вопросы, если нужно уточнить детали.
[вставить шаблон выше]
LLM спросит, какой сценарий у тебя — задача изначально неоднозначная (тогда two-phase) или уточнение пришло уже после неверного ответа (тогда rollback) — потому что от этого зависит, какой шаблон использовать.
Ограничения
⚠️ Не полное решение, а проверка механизма: сами авторы предупреждают, что rollback и two-phase — это способ показать, что проблема лечится, а не готовый универсальный рецепт.
⚠️ Код и структурированные задачи — зона максимального риска: если старая интерпретация уже "зашилась" в структуру (схема данных, интерфейс, план с зависимостями), даже rollback может не убрать все следы полностью.
⚠️ Словесное согласие не гарантирует пересмотра: модель может сказать "понял, исправляю" и при этом всё равно тащить старую логику в код или структуру ответа — визуальное согласие ≠ поведенческое изменение.
⚠️ Суммаризация диалога усиливает проблему: если просишь AI сжать историю переписки, он может "схлопнуть" неопределённость в одну версию, потеряв альтернативные варианты, которые ещё не были опровергнуты.
Как исследовали
Исследователи прогнали Gemini-2.5-Pro и Gemini-2.5-Flash через почти 300 задач на письмо, планирование и код, где сначала давался неоднозначный запрос, а потом — уточнение. Добавили 20 ручных пилотных задач и 30 более сложных adversarial-сценариев. Всего — около 7160 испытаний и почти 14000 вызовов API.
Проверяли разный порядок подачи информации (всё сразу / сначала уточнение / сначала неоднозначность), разные стратегии памяти (сырая история, сжатое summary, рассуждение по шагам, единый "лист состояния") и два прямых вмешательства — явный rollback и двухфазную политику.
Главный сюрприз: код оказался самой уязвимой зоной — контаминация там почти вдвое выше, чем в письме, потому что ранние догадки "зашиваются" в интерфейсы и схемы данных. Ещё более неожиданно: рассуждение по шагам и явное ведение состояния диалога не помогали, а иногда даже вредили — превращали неопределённость в фальшивую уверенность. Зато простой явный rollback обнулил измеренную контаминацию в контролируемом эксперименте, а двухфазная политика (сначала спросить — потом делать) вообще исключила ошибочные решения.
