TL;DR
FOR-Prompting — техника, которая улучшает ответы модели через внешние вопросы вместо прямых исправлений. Три роли работают в цикле: Defender предлагает решение → Debater задаёт только вопросы (никаких готовых ответов) → Defender пересматривает решение → Host синтезирует финал. Ключевое отличие от других методов: Debater никогда не даёт решений, только спрашивает — как человек, который помогает переосмыслить задачу.
Модели плохо ловят собственные ошибки при прямом промпте. Chain-of-Thought заставляет думать пошагово, но это внутренний монолог без внешнего давления. Дебаты между агентами часто подменяют один ответ другим — непонятно, кто прав и почему. FOR-Prompting решает это через вопросы-триггеры: Debater выявляет пробелы ("А что если билеты проданы?", "Реалистично ли всё это за один день?"), заставляя Defender самого найти и исправить слабые места. При этом авторство остаётся у одного агента (Defender), что сохраняет прозрачность.
Метод работает в 3-7 раундов (число задаётся). Каждый раунд: Debater генерирует 2-5 вопросов на основе текущего ответа → Defender пересматривает решение с учётом всех предыдущих вопросов → Host агрегирует финальный ответ. В исследовании тестировали фиксированные 3 раунда для сравнимости, но в реальных задачах (мозгоштурм, планирование) можно продолжать до сходимости или бюджета токенов.
Схема метода
ЦИКЛ (N раундов, обычно 3-7):
РАУНД 0:
Defender: Генерирует начальный ответ A₀ на вопрос Q
РАУНД 1...N:
Debater: Анализирует A_{r-1} → генерирует вопросы O_r (БЕЗ решений)
Defender: Читает Q + все предыдущие O₁...O_r → пересматривает ответ → A_r
ФИНАЛ:
Host: Синтезирует итоговый ответ A* из полной истории {A₀, O₁, A₁, ..., O_N, A_N}
Критично: Все роли выполняются в одном чате последовательными промптами. Можно делать в одном запросе (попросить модель сыграть все роли) или разбить на отдельные сообщения.
Пример применения
Задача: Ты решил открыть кофейню в спальном районе Москвы. Проверь идею через FOR-Prompting — найди слабые места в плане.
Промпт:
Сыграй три роли для проверки бизнес-идеи:
DEFENDER (ты):
Я хочу открыть кофейню в спальном районе Москвы (Кунцево).
План:
- Локация: первый этаж жилого дома, 40м², аренда 150к/мес
- Целевая аудитория: жители района, работающие удалённо
- Средний чек: 250₽, прогноз 100 чашек в день
- Стартовый капитал: 1.5 млн (оборудование, ремонт, запасы)
- Окупаемость: 12-15 месяцев
DEBATER (ты же, но в другой роли):
Задай 4-5 вопросов к этому плану. НЕ предлагай решения, только спрашивай:
- Что могло пойти не так?
- Какие допущения не проверены?
- Что упущено?
DEFENDER (снова ты):
Пересмотри план с учётом вопросов Debater. Что изменится?
HOST (ты):
Собери итоговый вывод: что в плане крепко, где риски, какие первые шаги.
Результат:
Модель покажет 3-4 раунда мышления:
- Первый ответ Defender — базовый план (как в промпте)
- Вопросы Debater — например: "А конкуренты в радиусе 500м?", "Реальны ли 100 чашек для нового места без клиентской базы?", "Что если удалёнщики уйдут в офисы?", "Легальны ли кофейни в жилых домах?"
- Ревизия Defender — пересмотр с цифрами: "Проверил — 2 конкурента, но у них другой формат. Снизил прогноз до 60 чашек. Нашёл требование СанПин для кафе в жилых домах. Добавил план привлечения первых клиентов."
- Синтез Host — структурированный вывод: сильные стороны (локация, низкая аренда), риски (переоценка спроса, юридические ограничения), приоритетные шаги (проверить СанПин, протестировать спрос через попап).
Финальный план будет детальнее и честнее исходного — модель сама нашла пробелы через вопросы.
Почему это работает
Слабость LLM: Модели склонны к подтверждающему мышлению — раз ответ сгенерирован, он кажется верным. При прямом промпте модель не ищет дыры в своей логике, потому что не видит внешнего давления.
Сильная сторона LLM: Модели отлично отвечают на конкретные вопросы и хорошо играют роли. Если задать вопрос "А что если Х?", модель легко переключается и проверяет допущение. Если дать роль критика, модель генерирует вопросы в стиле "А почему не Y?".
Как метод использует сильную сторону: FOR-Prompting симулирует внешнего собеседника, который не даёт готовых ответов, а только спрашивает. Это заставляет Defender самого найти ошибки, не получая подсказок. Вопросы работают как триггеры для переосмысления: "А это точно реалистично?", "А что если условия изменятся?", "А учёл ли ты Z?". При этом авторство остаётся у одного агента — Host знает, что итоговое решение создал Defender, а не смесь мнений.
Рычаги управления промптом:
- Число раундов (1-7) → Меньше раундов = быстрее и дешевле, больше = глубже проработка. Для простых задач хватает 1-2 раунда, для сложных (планирование, мозгоштурм) — 5-7.
- Инструкции Debater ("задай уточняющие вопросы" vs "задай жёсткие критические вопросы") → Мягкие вопросы = уточнения и детализация. Жёсткие = поиск противоречий и слабых мест.
- Условие выхода → Можно остановить, когда:
- Debater не находит новых вопросов
- Defender перестаёт менять ответ
- Достигнут заданный порог качества
- Исчерпан бюджет токенов
- Формат вопросов Debater ("только да/нет" vs "открытые вопросы") → Закрытые вопросы = быстрая проверка фактов. Открытые = исследование альтернатив.
- Роль Host (синтезировать vs просто взять последний ответ Defender) → Если Host активен, он объединяет лучшее из всех раундов. Если пассивен — просто берёт финальную версию.
Шаблон промпта
Базовый вариант (1 раунд, всё в одном промпте)
Сыграй три роли для решения задачи: {задача}
DEFENDER:
Предложи решение задачи. Будь конкретным.
DEBATER:
Задай 3-5 вопросов к решению Defender. НЕ предлагай исправления, только спрашивай:
- Что могло пойти не так?
- Какие допущения не проверены?
- Что упущено?
DEFENDER (ревизия):
Пересмотри своё решение с учётом вопросов Debater. Что изменится?
HOST:
Собери итоговый ответ: что в решении сильное, где риски, какие следующие шаги.
Плейсхолдеры:
{задача}— твоя задача (бизнес-идея, план, решение проблемы, текст для анализа)
Расширенный вариант (3 раунда, отдельные промпты)
Промпт 1 (Defender):
Ты — Defender. Реши задачу: {задача}
Будь конкретным. Дай финальный ответ.
Промпт 2 (Debater, раунд 1):
Ты — Debater. Вот решение Defender:
[вставить ответ Defender]
Задай 4-5 вопросов к этому решению. НЕ предлагай исправления, только спрашивай:
- Что могло пойти не так?
- Какие допущения не проверены?
- Что упущено?
Промпт 3 (Defender, раунд 1):
Ты — Defender. Вот твоё прошлое решение и вопросы Debater:
ПРОШЛОЕ РЕШЕНИЕ:
[вставить]
ВОПРОСЫ DEBATER:
[вставить]
Пересмотри решение. Ответь на вопросы. Дай новую версию.
Повтори Промпты 2-3 ещё 2 раза для раундов 2-3.
Промпт 4 (Host):
Ты — Host. Вот полная история обсуждения:
[вставить всю переписку Defender ↔ Debater]
Собери итоговый ответ:
1. Какое решение получилось?
2. Какие сильные стороны?
3. Какие риски остались?
4. Что делать дальше?
Плейсхолдеры:
{задача}— твоя задача[вставить ответ Defender]— ответ из предыдущего шага[вставить всю переписку]— копируй все раунды
🚀 Быстрый старт — вставь в чат:
Вот шаблон FOR-Prompting. Адаптируй под мою задачу: [твоя задача].
Задавай вопросы, чтобы понять задачу и заполнить роли.
[вставить базовый или расширенный шаблон выше]
LLM спросит детали задачи (что именно проверить, какие ограничения, какой формат ответа) — потому что Debater должен знать контекст, чтобы задавать релевантные вопросы, а Host должен понимать, что важно в итоговом синтезе. Модель возьмёт структуру FOR-Prompting и адаптирует под твою ситуацию.
Ограничения
⚠️ Токены и время: 3-7 раундов = 3-7x больше токенов, чем прямой промпт. Для простых задач ("столица Франции") это избыточно. Для сложных (бизнес-план, разбор статьи) — оправдано.
⚠️ Не для задач с чётким правильным ответом: Если ответ однозначен (математика 2+2, факт "кто президент"), вопросы Debater не добавят ценности. FOR-Prompting сильнее для открытых задач (планирование, креатив, анализ), где важно найти слепые зоны.
⚠️ Качество вопросов зависит от модели: Слабые модели (GPT-3.5, малые open-source) могут генерировать поверхностные вопросы. Сильные модели (GPT-4, Claude, o1) задают острые вопросы. На модели <7B параметров эффект снижается.
⚠️ Может зациклиться: Если Debater задаёт одни и те же вопросы, а Defender не меняет ответ — цикл бесполезен. Следи за сходимостью: если после 2-3 раундов изменений нет — останавливай.
Как исследовали
Команда проверила FOR-Prompting на трёх типах задач: математические задачи (GSM8K), малые модели, исправление ошибок без инструментов. Вот что делали и почему пришли к таким выводам.
GSM8K (1,319 математических задач): Сравнили three метода — прямой промпт, CoT (пошаговое мышление), FOR-Prompting (3 раунда). Результаты: прямой промпт провалился (точность 68%), CoT дал скачок (90%), FOR-Prompting сравнялся с CoT по точности (90%), но обогнал его по reasoning (+13% к CoT) и coherence (+10% к CoT). Это удивительно: точность та же, но качество объяснений выше. Почему? Вопросы Debater заставляли Defender явно формулировать допущения и шаги, которые в CoT остаются неявными. Судья GPT-4.1 оценивал по трём метрикам: reasoning (логичность шагов), coherence (связность, отсутствие противоречий), holistic quality (общая полезность). FOR-Prompting получил higher ratings в reasoning и coherence, потому что внешние вопросы делают рассуждения структурированнее и прозрачнее.
Малые модели (LLaMA 3.2:1B, 1.3K задач GSM8K): Прямой промпт дал всего 5.6% точности (модель слишком слаба). Один раунд FOR-Prompting поднял точность до 24.3% — почти в 4 раза! Три раунда — до 25%. Инсайт: даже малая модель может улучшиться через внешние вопросы, хотя абсолютная точность остаётся низкой. Это важно для on-device применений (приватность, экономия токенов) — можно взять слабую модель и компенсировать структурой промпта.
Исправление ошибок (GPT-4.1, задача "How many rs in strarrtrabbbery"): Прямой промпт дал неверный ответ ("4 'r's"). FOR-Prompting (7 раундов) исправил: Debater спросил "Точно 4? Покажи как считал", Defender пересчитал и нашёл 5 'r's. Каждый следующий раунд добавлял проверку (индексы, таблица, визуализация). Ключевой инсайт: модель сама нашла ошибку через вопросы, без человека и без внешних инструментов (калькуляторов, кода). Это показывает, что вопросы работают как внутренняя проверка.
Открытые задачи (план поездки в Рио, 5 дней): Сравнили ChatGPT o1 (extended thinking), GPT-4.1 (прямой промпт), FOR-Prompting. Результат: FOR-Prompting покрыл 20 факторов (погода, билеты, план Б для дождя, альтернативы, безопасность, аптечка, офлайн-карты), тогда как o1 и GPT-4.1 — только 10-15 факторов. Debater спрашивал: "А если билеты на Christ the Redeemer распроданы?", "Реально ли Sugarloaf + Lapa за один день?", "Что делать в дождь?". Defender добавлял запасные варианты, тайминги, подстраховки. Вывод: FOR-Prompting не просто генерирует контент, а проверяет его на практичность — как будто рядом сидит человек и задаёт неудобные вопросы.
Почему такие результаты? Ключевая находка: вопросы без решений работают лучше, чем прямые исправления. Когда второй агент даёт готовый ответ (как в debate-подходах), непонятно, кто прав, и Defender может просто принять чужое решение. Когда второй агент только спрашивает, Defender сам находит ошибки, что усиливает обучение и делает финальный ответ его собственным, а не смесью мнений. Это объясняет, почему reasoning и coherence выше при той же точности.
Оригинал из исследования (роли)
Defender:
"You are the Defender. Answer the user's task as best as possible.
Be concise but correct. Provide a single final answer at the end, clearly marked."
Debater:
"You are the Debater. You will ask clarifying questions to improve the answer,
without proposing any solutions. Your output should be ONLY a concise list of questions."
Host:
"You are the Host. You must synthesize the Defender's answer and the Debater's objections,
and produce a refined final answer. Quote specific objections when relevant."
Контекст: Исследователи использовали эти роли как базовые промпты. Можно адаптировать формулировки, сохраняя суть: Defender решает, Debater спрашивает (БЕЗ решений), Host синтезирует.
Адаптации и экстраполяции
💡 Адаптация для разбора собственного текста
Хочешь улучшить статью, питч, пост? Используй FOR-Prompting как внутреннего редактора:
DEFENDER:
Вот мой текст: {текст}
DEBATER:
Задай вопросы к тексту:
- Что читатель может не понять?
- Где логика провисает?
- Какие примеры слабые?
- Что можно сократить?
DEFENDER (ревизия):
Переписать текст с учётом вопросов.
HOST:
Итоговая версия текста + список изменений.
Эффект: текст станет чётче и понятнее, потому что модель сама нашла слабые места через вопросы читателя.
🔧 Техника: убрать Host → видеть промежуточные версии
Если хочешь отслеживать эволюцию ответа, не используй Host — просто останавливайся на последнем ответе Defender. Так ты видишь каждую итерацию и можешь вмешаться, если модель ушла не туда.
РАУНД 1: Defender даёт A₁
РАУНД 2: Debater → вопросы O₁ → Defender → A₂
РАУНД 3: Debater → вопросы O₂ → Defender → A₃
Стоп. Берёшь A₃ как финал.
Полезно для дебага промптов или контроля качества — ты видишь, на каком раунде ответ стал хуже.
🔧 Техника: дать Debater конкретный фокус
По умолчанию Debater спрашивает широко. Но можно сузить фокус:
DEBATER:
Задай вопросы ТОЛЬКО про {фокус}:
- финансовую реалистичность
- юридические риски
- технические детали
- user experience
Эффект: модель проверяет только нужный аспект, не раздувая объём. Полезно, когда у тебя есть конкретные слабые места ("я не уверен в финансах, проверь только это").
🔧 Техника: комбо с Chain-of-Thought
Можно встроить CoT в Defender:
DEFENDER:
Реши задачу {задача}.
Думай пошагово (Chain-of-Thought).
Покажи промежуточные шаги.
DEBATER:
Задай вопросы к шагам Defender.
DEFENDER (ревизия):
Пересмотри шаги с учётом вопросов.
Эффект: CoT даёт структуру, FOR-Prompting добавляет внешнюю проверку. Лучшее из двух миров.
Ресурсы
Оригинальная работа: Zhang H., Zhang A., Dai J. "FOR-Prompting: From Objection to Revision via an Asymmetric Prompting Protocol" (2025)
Авторы: He Zhang (Pennsylvania State University, Genentech), Anzhou Zhang, Jian Dai (Genentech, Inc.)
Ключевые отсылки из исследования:
- Chain-of-Thought (CoT) — Wei et al., 2022
- Tree-of-Thought (ToT) — Yao et al., 2023
- Self-Consistency — Wang et al., 2023
- Multi-agent debate — Du et al., 2024
- Constitutional AI — Bai et al., 2022
- GSM8K benchmark — Cobbe et al., 2021
