TL;DR
Test-time Recursive Thinking — метод, который позволяет LLM улучшать ответы через циклы: генерация нескольких решений с разными стратегиями → выбор лучшего → извлечение инсайтов из неудач → использование этих инсайтов в следующем раунде. Работает в обычном чате без дополнительного обучения или внешней проверки — модель сама решает, какой ответ лучше, и сама извлекает уроки из провалов.
Обычные подходы генерируют много независимых попыток и выбирают через голосование. Проблема: каждая попытка не знает об ошибках других — модель повторяет те же грабли. Если в первой попытке забыл про граничный случай, во второй забудет снова. LLM хорошо анализирует и структурирует информацию, но плохо учится между попытками без явной передачи контекста. Знания из одного запроса не переходят в другой автоматически.
TRT решает через список знаний — после каждого раунда модель сравнивает провальные решения с лучшим, формулирует "что избегать" и добавляет в контекст следующего раунда. Плюс каждому новому решению даётся уникальная стратегия (например, для кода: "динамическое программирование", "жадный алгоритм", "рекурсия"), чтобы не плодить копии. Результат: открытые модели достигли 100% на AIME-25/24, закрытые улучшились на +10-15 пунктов на сложных задачах по программированию.
Схема метода
Метод работает в несколько раундов (обычно 4-8), каждый раунд состоит из трёх шагов:
РАУНД 1, 2, 3... до N:
ШАГ 1: Генерация
→ Создай K решений (обычно 2-8), каждое с уникальной стратегией
→ Используй накопленный список знаний "что НЕ работает"
→ Выход: K разных подходов к задаче
ШАГ 2: Выбор лучшего
→ Оцени все K решений (через тесты для кода / проверку логики для математики)
→ Выбери лучшее решение этого раунда
→ Выход: одно решение-кандидат
ШАГ 3: Рефлексия
→ Сравни каждое неудачное решение с лучшим
→ Извлеки инсайт: "почему это решение хуже"
→ Добавь в список знаний на следующий раунд
→ Выход: обновлённый список "что избегать"
Важно: Каждый раунд выполняется отдельным промптом. Список знаний передаётся через контекст между раундами.
Пример применения
Задача: Ты запускаешь маркетплейс рефералов для крипто-бирж (привёл друга → получил процент от его комиссий). Нужно решить: вкладываться в платный трафик сейчас или ждать органики. Задача сложная — много переменных, нет однозначного ответа.
Промпт раунда 1:
Задача: должен ли я вкладываться в платный трафик для маркетплейса рефералов
крипто-бирж или ждать органического роста?
Контекст:
- Сейчас 200 активных рефералов в месяц
- CAC через рекламу ~1500₽
- LTV реферала через 6 месяцев ~3000₽
- Органика растёт +15% в месяц
Сгенерируй 3 разных подхода к анализу этого решения.
Каждый подход должен использовать свою логику:
ПОДХОД 1: Финансовая модель
Проанализируй через unit-экономику и точку окупаемости.
ПОДХОД 2: Рыночная динамика
Проанализируй через конкурентную позицию и окно возможностей.
ПОДХОД 3: Риск-менеджмент
Проанализируй через возможные сценарии (лучший/худший/средний).
Для каждого подхода дай чёткую рекомендацию: вкладываться сейчас или ждать.
Промпт раунда 2 (после анализа результатов раунда 1):
Та же задача.
СПИСОК ЗНАНИЙ из раунда 1:
- Не фокусируйся только на текущем CAC/LTV — они меняются со scale
- Не игнорируй конкурентов — если они займут нишу, органика упадёт
- Не делай бинарный выбор "всё или ничего" — есть промежуточные варианты
Сгенерируй 3 НОВЫХ подхода, избегая ошибок выше:
ПОДХОД 4: Динамическая модель
Как изменятся CAC и LTV при масштабировании?
ПОДХОД 5: Тестирование гипотез
Какой минимальный тест покажет работает ли платный трафик?
ПОДХОД 6: Гибридная стратегия
Как комбинировать платный + органический рост?
Результат:
В каждом раунде модель выдаст несколько разных анализов с разной логикой. После раундов 1-2 ты увидишь эволюцию мышления: первые попытки упускают важные факторы, следующие учитывают критику предыдущих. К раунду 3-4 получишь более nuanced решение, которое учитывает множество углов. Финальный выбор — лучшее решение последнего раунда или консенсус между сильными решениями разных раундов.
Почему это работает
LLM плохо учится между независимыми попытками. Когда генерируешь 10 ответов подряд с temperature > 0, каждый ответ не знает об ошибках других. Если модель в первой попытке забыла проверить граничный случай, во второй забудет снова — нет механизма передачи знаний между треками.
LLM хорошо анализирует различия и извлекает паттерны. Покажи модели два текста и спроси "чем отличаются" — она точно укажет. Покажи удачное и неудачное решение — она объяснит почему одно лучше. Сильная сторона LLM: сравнительный анализ и артикуляция различий.
TRT использует сильную сторону для обхода слабости: превращает каждый раунд в источник знаний для следующего. Модель сравнивает провальные попытки с лучшей, формулирует "в чём ошибка", добавляет в контекст. В следующем раунде эти знания явно ограничивают пространство поиска — модель видит "не делай X, потому что это привело к Y в прошлом раунде". Плюс уникальные стратегии на каждое решение разводят попытки в разные стороны пространства решений.
Рычаги управления промптом:
Количество раундов — больше раундов = глубже исследование, но дороже. Для простых задач 2-3 раунда достаточно, для сложных нужно 6-8.
Количество решений per раунд — исследование показало: лучше больше раундов с меньшим K (например, 8 раундов × 2 решения), чем меньше раундов с большим K (2 раунда × 8 решений). Глубина важнее ширины.
Тип стратегий — для кода: алгоритмические парадигмы (DP, greedy, divide-and-conquer); для анализа: разные фреймворки (финансы, риски, психология); для текстов: разные тональности или структуры.
Формат списка знаний — делай записи негативными ("не делай X") вместо позитивных ("делай Y"), так лучше ограничивает пространство не повторяя конкретных решений.
Шаблон промпта
Базовый шаблон (один раунд)
Задача: {опиши задачу подробно}
Контекст: {добавь важные детали или ограничения}
Сгенерируй {K} разных подходов к решению этой задачи.
Каждый подход должен использовать свою стратегию:
ПОДХОД 1: {название стратегии 1}
{краткое описание логики}
ПОДХОД 2: {название стратегии 2}
{краткое описание логики}
...
ПОДХОД K: {название стратегии K}
{краткое описание логики}
Для каждого подхода:
1. Опиши свою логику пошагово
2. Дай финальное решение/ответ
3. Укажи при каких условиях этот подход НЕ сработает
Шаблон следующего раунда (с накопленными знаниями)
Задача: {та же задача}
СПИСОК ЗНАНИЙ из предыдущих раундов:
{вставь инсайты из прошлых попыток — что НЕ работает и почему}
Сгенерируй {K} НОВЫХ подходов, избегая ошибок выше:
ПОДХОД {K+1}: {новая стратегия}
...
Для каждого подхода дай финальное решение и объясни чем он отличается
от предыдущих попыток.
Шаблон для извлечения инсайтов (между раундами)
У меня есть {K} разных решений одной задачи.
Лучшее решение (выбранное):
{вставь решение которое считаешь сильнейшим}
Альтернативное решение:
{вставь одно из других решений}
Сравни эти решения:
1. В чём ключевое различие подходов?
2. Почему альтернативное решение слабее? Какую ошибку оно содержит?
3. Сформулируй одно правило в формате "Не делай X, потому что это приводит к Y"
Ответ дай кратко, 2-3 предложения. Это правило я добавлю в список знаний
для следующего раунда.
Как использовать:
- {K} — количество решений per раунд (обычно 2-4 для экономии токенов)
- {стратегии} — зависят от домена: для кода (алгоритмы), для анализа (фреймворки), для текстов (стили)
- {список знаний} — копируй из предыдущих раундов, добавляй новые инсайты после каждого раунда
🚀 Быстрый старт — вставь в чат:
Вот шаблон Test-time Recursive Thinking. Адаптируй под мою задачу: [твоя задача].
Задавай вопросы, чтобы заполнить поля и предложи стратегии для подходов.
[вставить шаблон выше]
LLM спросит специфику задачи, сколько раундов провести, какие стратегии использовать — потому что для TRT важно понимать домен (код, анализ, математика) и сложность (простые задачи требуют 2-3 раунда, сложные 6-8). Она возьмёт паттерн "генерация → выбор → рефлексия" из шаблона и адаптирует под твою задачу, предложив релевантные стратегии.
Ограничения
⚠️ Требует много итераций для сложных задач: На простых вопросах ("столица Франции") метод избыточен — хватит одного запроса. Метод раскрывается на задачах где нет единственного очевидного решения: код с edge cases, многофакторный анализ, задачи требующие рассмотреть проблему с разных углов. Для таких задач нужно 4-8 раундов.
⚠️ Качество выбора лучшего решения: Без ground truth модель может ошибиться в выборе — особенно на субъективных критериях. Для кода метод использует self-generated тесты (модель сама пишет проверки), для математики — mutual exclusivity (только один ответ из 0-999 правильный). Но для открытых задач (креатив, стратегия) выбор "лучшего" менее надёжен.
⚠️ Рост контекста: Хотя список знаний компактный (менее 1.5% контекста даже после 64 раундов в исследовании), при очень длинных циклах может понадобиться чистка устаревших инсайтов. Исследователи использовали удаление до 1 записи per раунд, но это manual процесс.
⚠️ Нужен доступ к продвинутым моделям: Метод требует способности к рефлексии и сравнению — слабые модели могут не извлекать полезные инсайты из сравнения решений. Проверено на gpt-oss-120b, Qwen3-235B, o3, o4-mini — модели уровня GPT-4 и выше.
Как исследовали
Команда из Microsoft Research и UC San Diego хотела проверить: могут ли LLM улучшаться без внешней обратной связи? Обычно модели тренируют с reinforcement learning, где есть чёткая награда (правильно/неправильно). Но что если модель сама решает что правильно и сама учится на этом?
Проверяли на двух доменах: математика (AIME 2024/2025, по 30 задач уровня олимпиады) и код (203 самых сложных задачи из LiveCodeBench v6). Для математики использовали открытые модели (gpt-oss-120b, Qwen3-235B) — у них видны reasoning traces, удобно анализировать. Для кода — закрытые o3 и o4-mini, они сильнее в программировании.
Логика эксперимента: сравнивали три подхода с одинаковым compute budget: - Parallel Thinking — генерируй 64 независимых решения, выбери через голосование (baseline) - RSA (Recursive Self-Aggregation) — итеративно улучшай популяцию решений, агрегируя подмножества - TRT — накапливай знания об ошибках, генерируй новые решения с учётом этих знаний
Что удивило: на математике обе открытые модели достигли 100% accuracy через TRT — решили все 30 задач AIME-25 и все 30 задач AIME-24. Это first time для open-source моделей. При этом улучшение было монотонным — точность росла с каждым раундом, не прыгала. Значит накопленные знания реально направляли модель к правильному ответу, не добавляли шум.
На коде эффект меньше, но стабильный: o4-mini с 63.5% → 73.9% (+10.4 pp), o3 с 57.1% → 71.9% (+14.8 pp). RSA отстал на 2-3 пункта при том же compute — значит не просто "больше попыток = лучше", а именно механизм "знания об ошибках" даёт преимущество.
Ключевой инсайт из разбора: когда смотрели pass@k (сколько из всех сгенерированных решений правильные), TRT с стратегиями обгонял random sampling на 2-7 процентных пунктов при одинаковом числе попыток. Это доказывает: strategic planning действительно улучшает exploration — модель не тратит попытки на дубликаты, а исследует разные части пространства решений.
Второй инсайт: глубина важнее ширины. Проверили K=2, K=4, K=8 (решений per раунд) — все три варианта пришли к одному потолку accuracy. Значит больше раундов с меньшим K эффективнее чем меньше раундов с большим K. Лучше 8 раундов × 2 решения, чем 2 раунда × 8 решений.
Третий инсайт из ablation: test execution критичен для выбора лучшего решения. Убрали self-generated тесты для кода — gap между "cumulative best" (лучшее среди всех сгенерированных) и "selected" (то что модель выбрала) вырос с 4.9% до 11.8% для o4-mini. Без тестов модель чаще выбирает не то решение.
Адаптации и экстраполяции
🔧 Техника: прозрачность рассуждений → добавь self-explanation в каждый подход
В оригинале TRT фокусируется на финальных решениях и их сравнении. Но для обучения или дебага полезно видеть почему модель выбрала конкретную стратегию.
Добавь в промпт каждого раунда:
Для каждого подхода:
1. Объясни ПОЧЕМУ ты выбрал эту стратегию для этой задачи
2. Опиши логику пошагово
3. Дай финальное решение
4. Укажи при каких условиях этот подход НЕ сработает
5. Оцени свою уверенность в решении (низкая/средняя/высокая) и объясни почему
Теперь видишь не только результаты, но и reasoning модели о своём reasoning — meta-уровень. Это помогает в extraction: можешь сам дополнить список знаний, если модель пропустила важный инсайт.
🔧 Техника: персонализация стратегий под свой стиль мышления
Вместо абстрактных "ПОДХОД 1, 2, 3" назови стратегии как конкретные линзы анализа, которые тебе близки.
Пример для бизнес-решений:
ПОДХОД 1: ВЗГЛЯД ИНВЕСТОРА
Как оценил бы это решение венчурный фонд? ROI, масштабируемость, риски.
ПОДХОД 2: ВЗГЛЯД ПОЛЬЗОВАТЕЛЯ
Как это повлияет на experience клиента? Какие pain points решает или создаёт?
ПОДХОД 3: ВЗГЛЯД КОНКУРЕНТА
Что сделал бы главный конкурент на моём месте? Как это изменит мою позицию?
Такие named personas острее выполнение роли — модель лучше входит в character "инвестор" чем в абстрактный "финансовый анализ". Плюс тебе легче интерпретировать: сразу видишь "это инвесторский угол, это клиентский".
Можешь использовать реальных людей как архетипы: "Как подошёл бы к этому Тиньков? А Дуров? А Греф?"
🔧 Техника: комбинация TRT + Chain-of-Thought Verification
После выбора лучшего решения добавь дополнительный шаг верификации через обратный reasoning:
Ты выбрал это решение как лучшее: {лучшее решение}
Теперь КРИТИКУЙ его с двух позиций:
КРИТИКА 1: Скептик
Найди слабые места в этом решении. Что может пойти не так?
Какие assumptions не проверены?
КРИТИКА 2: Противоположный подход
Построй аргумент в пользу противоположного решения.
Когда оно было бы правильным?
Если критики находят серьёзные дыры — вернись к раунду генерации с этими
инсайтами в списке знаний.
Это добавляет adversarial проверку финального выбора — полезно для высокорисковых решений (инвестиции, найм, архитектурные решения в проекте).
Ресурсы
Test-time Recursive Thinking: Self-Improvement without External Feedback
Yufan Zhuang, Chandan Singh, Liyuan Liu, Yelong Shen, Dinghuai Zhang, Jingbo Shang, Jianfeng Gao, Weizhu Chen
Microsoft Research, UC San Diego
GitHub: test_time_recursive_thinking
Связанные работы упомянутые в исследовании:
- Reflexion (Shinn et al., 2023) — verbal reinforcement learning
- Self-Consistency (Wang et al., 2022) — majority voting over reasoning chains
- Recursive Self-Aggregation / RSA (Venkatraman et al., 2025) — iterative solution refinement
- Agentic Context Engineering (Zhang et al., 2025) — evolving strategy playbooks
