TL;DR
Hourglass Reasoning — это техника из четырёх изолированных шагов, где каждый следующий шаг получает только сжатый символьный результат предыдущего — схему φ и правило T — и никогда не видит сырые примеры, черновик кода или историю ошибок. Это создаёт принудительное «бутылочное горлышко» между этапами рассуждения.
Обычное уточнение (self-refinement) — когда ты просишь модель «исправь ответ» — практически не работает. Модель получает: оригинальный пример, текущий вывод, ошибку — и начинает патчить вывод, а не разбираться в правиле. Получается, как студент на экзамене, который вместо понимания теоремы запоминает ответы конкретных примеров. ПРОХОДИТ тесты из условия, валится на новых данных.
Hourglass исправляет это принуждением: модель сначала формулирует правило в явном виде, а потом реализует и дорабатывает именно правило — не вывод. Четыре изолированных шага, между которыми передаётся только пара (φ, T) — и ничего лишнего.
Схема метода
Каждый шаг — отдельный запрос в новой беседе. Между шагами передаётся только то, что указано в стрелках.
ВХОДНЫЕ ДАННЫЕ: Примеры (S) — несколько пар «вход → выход»
ШАГ 1: Индукция
Вход: Примеры S
Делает: Извлекает структуру входных данных → схема φ
+ промежуточный разбор примеров → черновик z
→ Передаёт дальше: φ и z
ШАГ 2: Дедукция
Вход: Примеры S + φ + z
Делает: Формулирует правило преобразования T
z УНИЧТОЖАЕТСЯ после этого шага
→ Передаёт дальше: только φ и T
ШАГ 3: Реализация
Вход: Примеры S + φ + T
Делает: Производит итоговый ответ/текст/план (артефакт P)
→ Если P правильный: готово
→ Если P содержит ошибки: переходим к Шагу 4
ШАГ 4: Уточнение (при ошибках)
Вход: S + φ + T + P + описание ошибки
Делает: Обновляет φ и T (не правит P напрямую!)
Заново генерирует P из обновлённых φ и T в чистом контексте
→ Цикл: возврат к Шагу 3 с новыми φ и T
Критически важно: черновик z никогда не пересекает границу между Шагом 2 и Шагом 3. История ошибок никогда не уходит в следующую итерацию. Только φ и T.
Пример применения
Задача: Ты маркетолог во Вконтакте, ведёшь сообщество кофейни «Кофемания». Хочешь научить модель писать посты в стиле бренда. Есть 5 образцов, надо создавать новые под разные инфоповоды.
ШАГ 1 — Промпт в новой беседе:
Вот 5 постов из сообщества кофейни. Твоя задача — НЕ писать пост,
а извлечь структуру.
Пост 1: [вставляешь]
Пост 2: [вставляешь]
Пост 3: [вставляешь]
Пост 4: [вставляешь]
Пост 5: [вставляешь]
Сделай ДВЕ вещи:
**СХЕМА φ** — как устроен каждый пост:
- Из каких блоков состоит (структура)
- Какие элементы обязательны
- Как начинается, как заканчивается
- Интонация и тональность
**ЧЕРНОВИК z** — конкретные наблюдения из этих 5 постов:
- Что именно использует бренд в каждом примере
- Конкретные обороты, паттерны
ШАГ 2 — Новая беседа:
Вот 5 примеров постов кофейни [вставить],
вот схема φ [вставить из Шага 1],
вот наблюдения z [вставить из Шага 1].
Сформулируй ПРАВИЛО T — алгоритм создания поста в этом стиле.
Не пиши пост. Только правило.
Правило должно работать для ЛЮБОГО инфоповода (не только этих пяти).
z после этого шага больше не нужен.
ШАГ 3 — Новая беседа:
Создай пост для кофейни «Кофемания».
Схема φ: [вставить]
Правило T: [вставить]
Инфоповод: открытие новой точки на Тверской, 15 ноября
Используй только φ и T. Примеры показываю только для проверки:
[5 постов]
Если результат не нравится — ШАГ 4 в новой беседе:
Вот пост [вставить P], вот что не так: [описание]
Схема φ: [вставить]
Правило T: [вставить]
Примеры: [вставить S]
Не правь пост напрямую.
Сначала обнови φ и T — что именно в них неверно.
Затем напиши новый пост с нуля по обновлённым φ и T.
Результат: На Шаге 2 модель выдаст формальный алгоритм — как конструктор: «начало = эмоция/сцена, середина = факт/польза, конец = призыв без восклицательного знака». На Шаге 3 — пост, который структурно совпадает с брендом, а не просто «похож по ощущению». При ошибке Шаг 4 пересматривает именно правило, а не косметически правит текст.
Почему это работает
Провал стандартного уточнения — модель получает в одном контексте всё сразу: примеры, своё предыдущее решение и описание ошибки. В таком «шуме» она не обновляет правило — она латает конкретный вывод под конкретную ошибку. Следующая версия проходит прошлые тесты, но создаёт новые проблемы в других местах.
Что умеет модель хорошо — формулировать явные правила из примеров. Это и есть φ + T. Модель прекрасно отвечает на «опиши паттерн» — хуже на «воспроизведи паттерн, помня про все прошлые ошибки».
Как метод использует эту силу — принудительно изолирует каждый этап. Реализатор (Шаг 3) никогда не видит историю ошибок. Уточняющий агент (Шаг 4) никогда не правит вывод напрямую. Все исправления проходят только через обновление φ и T. Это как разница между «исправь опечатку в коде» и «переформулируй теорему, затем напиши код заново».
Рычаги управления: - Детальность φ → чем подробнее описана схема, тем точнее реализация. Попроси в Шаге 1 «опиши не менее 7 структурных элементов» - Число итераций → ограничь Шаг 4 до 2-3 повторений: после трёх итераций качество обычно не растёт - Строгость черновика z → попроси в Шаге 1 «приведи цитаты из примеров», это даёт более точную схему - Явный критерий остановки → в Шаге 4 добавь «если правило не менялось — не переписывай, просто скажи об этом»
Шаблон промпта
Шаг 1 — Индукция
Вот {число} примеров {тип_контента}:
{примеры}
Сделай две вещи — не создавай {тип_контента}, только анализируй:
**СХЕМА φ** — универсальная структура {тип_контента} в этом стиле:
- Из каких блоков состоит
- Что обязательно присутствует
- Тональность, интонация, характерные приёмы
**ЧЕРНОВИК z** — конкретные наблюдения из этих примеров:
- Что именно используется в каждом
- Конкретные формулировки и паттерны
Шаг 2 — Дедукция
{примеры}
Схема φ: {вставить из Шага 1}
Черновик z: {вставить из Шага 1}
Сформулируй ПРАВИЛО T — алгоритм создания {тип_контента} в этом стиле.
Правило должно работать для любой задачи {контекст},
не только для этих примеров.
Не создавай {тип_контента}. Только правило.
Шаг 3 — Реализация
Создай {тип_контента} по заданию: {задача}
Схема φ: {вставить из Шага 2}
Правило T: {вставить из Шага 2}
Опирайся только на φ и T.
Примеры — только как контрольный ориентир: {примеры}
Шаг 4 — Уточнение (при ошибке)
Результат: {вставить из Шага 3}
Что не так: {описание проблемы}
Схема φ: {вставить}
Правило T: {вставить}
Примеры S: {вставить}
Не правь результат напрямую.
Сначала: обнови φ и T — что именно в них неверно, как их улучшить.
Затем: создай новый {тип_контената} с нуля по обновлённым φ и T.
Плейсхолдеры:
- {тип_контента} — посты, письма, сценарии, брифы, заголовки
- {задача} — конкретный запрос для нового элемента
- {контекст} — отрасль, бренд, платформа
- {примеры} — 3-7 образцов (оптимум — 5)
🚀 Быстрый старт — вставь в чат:
Вот шаблон Hourglass Reasoning — техника для точного воспроизведения
паттернов из примеров. Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит тип контента, примеры и задачу — потому что ей нужны входные данные для каждого из четырёх шагов. Она возьмёт логику изоляции из шаблона и настроит под твой кейс.
Ограничения
⚠️ Задачи с имплицитным знанием: Для некоторых лингвистических и культурных паттернов явная вербализация правила хуже интуитивного применения. На GPT-5.5 Hourglass проигрывал прямому промпту при работе с лингвистическими загадками (pass@1: 46.5 vs 58.3). Если задача требует «чувства языка», а не структурного правила — метод может навредить.
⚠️ Требует верифицируемого результата: Шаг 4 работает только когда есть чёткий критерий ошибки. «Напиши лучше» — не критерий. «Не совпадает с форматом» / «нет призыва к действию» — критерий.
⚠️ Четыре отдельных сессии: Нужно скрупулёзно копировать φ и T между чатами. Если случайно добавить лишний контекст — изоляция ломается и выигрыш исчезает. Аблации подтверждают: именно изоляция — источник прироста, а не структурированный вывод сам по себе.
⚠️ Первый шаг критичен: Слабая индукция на Шаге 1 не компенсируется сильным уточнением. Если схема φ изначально плохая, Шаг 4 её не вытянет — сам по себе уточняющий агент без хорошей стартовой схемы даёт результат около базового уровня.
Как исследовали
Исследователь из Пекинского университета задался вопросом: почему само-уточнение (self-refinement) так часто деградирует результаты? Вместо того чтобы улучшать ответы, повторные просьбы «исправить» часто делали хуже — особенно в сложных задачах. Идея была простой: изолировать правило от реализации физически, разбив задачу на отдельные API-вызовы без общей истории.
Проверяли на трёх непохожих бенчмарках, которые намеренно подобрали с разными типами сложности: ARC-AGI-2 (визуальные головоломки — угадай правило трансформации сетки), ChipBench (синтез схем на Verilog — нула допуска к ошибкам), BBEH-Linguini (лингвистические олимпиадные задачи, где вербализация правил, по прошлым исследованиям, уже сама по себе проблема). Модели — GPT-5.5 и Gemini 3.1 Pro.
Самый показательный результат — аблации. Исследователи специально сломали метод по частям: убрали изоляцию, оставив структурированный вывод; ослабили первый шаг индукции; убрали все вспомогательные инструкции из промптов. Ключевой вывод: без изоляции контекста результаты падали почти до уровня baseline, даже если φ и T оставались в промпте. Структурированный вывод без физической изоляции — плацебо. Это противоречило интуиции, что «главное — явно написать правило».
На ChipBench с GPT-5.5 точность синтеза Verilog выросла с 31% до 58% — практически удвоилась. На ARC-AGI-2 best-of-5 вырос на 14 пунктов. Особенно интригующий результат на лингвистике: Self-Refine там рухнул вдвое хуже raw-промпта, а Hourglass — нет. Это подтверждает: проблема не в «явном правиле», а в том, что его смешивают с мусором исправлений в одном контексте.
Оригинал из исследования
Оригинальные промпты авторов (для ARC-AGI-2) — на GitHub: https://github.com/ZhuHuan09/hourglass-reasoning
Структура информационного потока из таблицы исследования:
Stage | Input | Output | Role
-------------|--------------------|-`--------------|--------------------------
Induction | S | φ, z | Generate schema + scaffold
Deduction | S, φ, z | T | Derive rule; discard z
Implementation | S, φ, T | P | Compile (φ,T) into artifact
Refinement | S, φ, T, P, ŷ | φ_new, T_new | Revise (φ,T); regenerate P
| | P_new |
Контекст: Это формальная таблица из Section 3.2, описывающая точную архитектуру информационных потоков. Ключевой факт — z (transient scaffold) уничтожается после Шага 2 и никогда не передаётся дальше.
Адаптации и экстраполяции
💡 Адаптация: Hourglass для разбора конкурентов
Классический кейс — у тебя есть 5-7 примеров успешных продуктов конкурента (карточки товаров, лендинги, рекламные объявления). Хочешь понять их логику и применить у себя.
Шаг 1: Извлеки схему φ (структура оффера) + черновик z (конкретные примеры использования). Шаг 2: Сформулируй правило T (принцип позиционирования, логика УТП). Шаг 3: Применяй к своему продукту.
Преимущество: ты не «копируешь формулировки» (поверхностное смешивание), а воспроизводишь структуру. Модель не может схитрить, потому что буквально не видит оригинальный текст на этапе реализации.
🔧 Техника: явный запрет на прямую правку
По умолчанию модель будет пытаться отредактировать вывод напрямую — это её сильный паттерн. Добавь в Шаг 4 явный запрет:
Запрещено: редактировать текущий результат построчно.
Обязательно: сначала обнови φ и T, затем создай результат заново с нуля.
Напиши сначала "Обновлённая φ:", затем "Обновлённое T:", затем результат.
Эффект: Модель не «улучшает» текст стилистически — она пересматривает логику и генерирует заново. Разница заметна на втором-третьем уточнении.
🔧 Техника: z как инструмент диагностики
Черновик z по умолчанию предназначен для уничтожения. Но при отладке можно сохранить z и сравнить с T:
Дополнительно: покажи z перед тем как сформулировать T.
Мне нужно проверить логику перехода от наблюдений к правилу.
Эффект: Видишь, где модель «срезала углы» при формулировке правила — из каких конкретных наблюдений она выводила T. Если z богатый, а T куцый — надо просить развернуть T.
Ресурсы
Статья: Think Through a Bottleneck: Hourglass Reasoning for Rigorous Induction Автор: Huan Zhu, Peking University Код и промпты: https://github.com/ZhuHuan09/hourglass-reasoning
Смежные работы в статье: - Self-Refine (Madaan et al., 2023) — baseline метод само-уточнения - ARC-AGI-2 (Chollet, 2019) — бенчмарк визуальной индукции - BBEH-Linguini / BIG-Bench Extra Hard (Kazemi et al., 2025) - Information Bottleneck Theory (Tishby et al., 1999)
