TL;DR
У любой LLM есть скрытый канал самооценки: до ответа модель чувствует, знает ли она ответ, а после — понимает, насколько верен её вывод. Metacognitive Harness — это техника, которая вытаскивает эти сигналы явным образом и использует их как рычаг: доверять ответу, попросить переделать или собрать несколько попыток и выбрать лучшую.
Главный инсайт: модели знают, когда не уверены — но сами по себе не адаптируют усилие. Задать сложный вопрос и лёгкий — модель потратит примерно одинаково «думательных ресурсов» на оба. Она не скажет сама: «стоп, я не уверена, дай попробую ещё раз». Это похоже на студента, который чувствует что не знает ответ, но всё равно сдаёт работу не перечитав.
Метод разделяет мониторинг и действие на два явных сигнала: FOK (Feeling of Knowing — ощущение знания) до ответа и JOL (Judgment of Learning — оценка качества) после. Если уверенность низкая — модель получает компактную обратную связь и пробует снова, не зная предыдущего рассуждения (только итог и причину сомнений). Если высокая — ответ принимается сразу.
Схема метода
ШАГ 1: FOK-запрос (до ответа)
→ Модель даёт оценку 0–1: "насколько уверена, что знает ответ"
→ Без рассуждений, без вычислений — только интуитивная оценка
ШАГ 2: Решение задачи
→ Модель отвечает полноценно
→ После ответа даёт JOL-оценку 0–1 + причину сомнений
ШАГ 3: Решение "доверять или повторить"
→ Высокая уверенность (JOL близко к 1) → принять ответ
→ Низкая уверенность → перейти к шагу 4
ШАГ 4: Повторная попытка с metacognitive-контекстом
→ Модель видит: предыдущий ответ + JOL-оценку + причину сомнений
→ НЕ видит: предыдущее рассуждение (чтобы не зацикливаться на ошибке)
→ Снова генерирует ответ + JOL
ШАГ 5: Агрегация (если несколько попыток)
→ Отдельный блок: сравнить попытки по рассуждению и ответу
→ Выбрать лучшую (без учёта JOL-оценок между попытками)
Все шаги можно запустить в одном длинном промпте или разбить на несколько запросов.
Пример применения
Задача: Ты готовишь питч инвестору для EdTech-стартапа — онлайн-платформы репетиторов. Нужно за 3 минуты объяснить, почему не умрёшь от конкуренции со Skyeng и Учи.ру.
Промпт:
Я задам тебе задачу. Прежде чем отвечать, выполни три шага строго по порядку.
---
ШАГ 1 — ТОЛЬКО ЭТО:
Оцени по шкале 0.0–1.0, насколько ты уверена, что сможешь дать точный и глубокий ответ на следующий вопрос. Не рассуждай, не начинай отвечать — только число и одно предложение почему.
Вопрос: «Как маленькому EdTech-стартапу (платформа репетиторов, 200 тысяч рублей в месяц выручки) обосновать инвестору устойчивость к конкуренции со Skyeng и Учи.ру в питче на 3 минуты?»
Формат ШАГ 1:
FOK: [число]
Причина: [одно предложение]
---
ШАГ 2 — после того как написал FOK:
Ответь на вопрос развёрнуто. Дай конкретные аргументы и структуру питча.
---
ШАГ 3 — сразу после ответа:
Оцени по шкале 0.0–1.0, насколько ты уверена, что твой ответ точный, полезный и применимый именно для этой ситуации. Укажи главную причину сомнений (если есть).
Формат ШАГ 3:
JOL: [число]
Сомнение: [одно предложение]
Результат:
Модель сначала выдаст FOK-оценку — например, 0.7, с пояснением «у меня нет данных по специфике этого рынка». Затем развёрнутый ответ с аргументами. Затем JOL — например, 0.6, с уточнением «не знаю текущих метрик Skyeng и реальной ниши стартапа».
Если JOL ниже 0.75 — вставляешь второй промпт (шаблон ниже). Модель попробует снова, зная только итог и причину сомнений, не повторяя старое рассуждение. Финальная попытка — как правило, точнее и конкретнее.
Почему это работает
Слабость LLM: модель генерирует текст по инерции — один токен за другим, не оглядываясь. Она не останавливается в середине и не говорит «подожди, что-то не так». Без явного запроса на самооценку этот сигнал остаётся внутри и никак не влияет на поведение.
Сильная сторона LLM: если явно спросить «оцени уверенность», модель даёт сигнал, коррелирующий с реальной точностью. Это подтверждено на девяти разных моделях: у кого FOK/JOL выше — у тех и правильных ответов больше. Модель не врёт о своей неуверенности — она просто не использует это знание сама.
Как метод использует это: он разрывает пассивность. Вместо того чтобы уверенность просто существовала где-то внутри, мы вытаскиваем её как явное число — и используем как команду: «низкая уверенность = попробуй снова». Ключевой трюк: при повторной попытке модель видит только итог предыдущей попытки и причину сомнений, но не само рассуждение. Это избегает эффекта «привязки к старой ошибке» — модель начинает заново, зная что именно смущало, но не копируя провальный путь мышления.
Рычаги управления: - Порог JOL (например, 0.75) — ниже этого → повтор. Понизь порог для простых задач, повысь для критичных решений - Число попыток — в исследовании среднее было 2.4. Поставь лимит 2–3 для экономии - Контекст повтора — передавай только JOL + причину, не полное рассуждение. Это принципиально - Агрегация — при нескольких попытках убери JOL-оценки из контекста финального выбора: модель судит по качеству рассуждения, а не по самоуверенности
Шаблон промпта
Я задам тебе задачу. Выполни строго три шага.
---
ШАГ 1 — только это:
Оцени по шкале 0.0–1.0 уверенность, что дашь точный ответ на вопрос ниже.
Не рассуждай, не начинай отвечать — только число и одно предложение.
Вопрос: {твой_вопрос}
FOK: [число]
Причина: [одно предложение]
---
ШАГ 2:
Ответь на вопрос развёрнуто.
---
ШАГ 3 — сразу после ответа:
Оцени по шкале 0.0–1.0 уверенность, что твой ответ точный и применимый.
Укажи главную причину сомнений.
JOL: [число]
Сомнение: [одно предложение]
Если JOL < {порог} — промпт для повтора:
Твой предыдущий ответ: {предыдущий_ответ}
Твоя уверенность была: {JOL}
Причина сомнений: {сомнение}
Попробуй ответить заново, зная про эти сомнения.
Не копируй предыдущее рассуждение — начни с чистого листа.
После ответа снова дай:
JOL: [число]
Сомнение: [одно предложение]
Если несколько попыток — финальный выбор:
У меня есть {N} вариантов ответа на вопрос: {вопрос}
{Попытка 1: рассуждение + ответ}
{Попытка 2: рассуждение + ответ}
Сравни варианты по качеству рассуждения и точности ответа.
Выбери лучший и объясни почему.
Плейсхолдеры:
- {твой_вопрос} — сама задача
- {порог} — ваша планка доверия (рекомендую 0.75–0.8 для сложных задач)
- {предыдущий_ответ}, {JOL}, {сомнение} — берёшь из ответа на ШАГ 3
- {N}, {Попытка 1...} — при финальной агрегации
🚀 Быстрый старт — вставь в чат:
Вот шаблон Metacognitive Harness. Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит: какой вопрос задать, какой порог JOL использовать и что считать «достаточно хорошим» ответом — потому что без этого она не поймёт когда останавливаться и что пересматривать.
Ограничения
⚠️ Не все модели одинаково самосознательны: В исследовании только Claude Sonnet-4.6 прошёл полную диагностику — его FOK/JOL реально коррелируют с точностью и хорошо откалиброваны. Gemini-Flash различал правильные и неправильные ответы, но числа были ненадёжны как пороговые значения. Gemma-4 почти не давал полезного сигнала. Перед серьёзным использованием стоит проверить — попроси модель оценить 10 вопросов с известными ответами и посмотри, совпадает ли уверенность с реальностью.
⚠️ Не для простых задач: Метод увеличивает количество запросов (в среднем в 2.4 раза). Для очевидных вопросов — это трата. Применяй на задачах, где правильность действительно важна: анализ, стратегия, сложные выводы.
⚠️ Ручное применение утомительно при большом объёме: Если нужно обработать 50 похожих задач подряд — без автоматизации это медленно. Метод лучше всего работает для штучных, важных запросов в чате.
⚠️ FOK без рассуждений — против природы модели: Промпт в ШАГ 1 должен явно запрещать любые вычисления до оценки. Если модель начнёт решать до FOK — сигнал потеряет смысл: она будет оценивать уверенность уже зная ответ.
Как исследовали
Команда из UC San Diego взяла девять разных LLM и задала им один тест: прошу оценить уверенность до и после ответа — и посмотрим, совпадает ли это с реальной точностью. Результат оказался неожиданным: сигнал есть у большинства. Модели с высоким FOK/JOL действительно отвечали правильнее. Но вот что поразительно — этот сигнал никак не влиял на их поведение. Уверенные и неуверенные вопросы получали одинаковое количество "думательных усилий". Разрыв между знанием и действием был очевидным.
Тогда исследователи построили управляющее кольцо: зафиксировали один базовый Claude Sonnet-4.6 (без изменений весов) и добавили только слой контроля — FOK до, JOL после, SVM-классификатор для решения "доверять или повторить". Проверили на трёх бенчмарках: экспертные вопросы STEM (HLE-Verified), сложный код (LiveCodeBench v6), мультимодальные задачи (R-Bench-V) — суммарно 1859 примеров. Важно: диагностическую выборку (100 вопросов для обучения SVM) держали строго отдельно от тестовой — чтобы не было утечки данных.
Итог: +8.6 процентных пункта к точности при средней стоимости 2.4 попытки вместо одной. Самый большой прирост — на сложных задачах по коду (+19.6 на Hard split). Параллельное сравнение показало: это не просто "больше попыток" — обычная выборка 4 попыток давала меньше при большей стоимости. Главный вклад — умение остановиться рано когда уверен, и попробовать снова когда нет.
Адаптации и экстраполяции
🔧 Техника: FOK без числа → качественная самооценка
Если числовая шкала 0–1 кажется ненадёжной для конкретной модели, замени на категории:
Перед ответом оцени: "Уверен / Скорее уверен / Не уверен / Не знаю" и одним предложением объясни почему.Модели иногда дают более честную оценку через категории, чем через числа — меньше стремление дать "приличное" число.
🔧 Экстраполяция: Metacognitive Harness как фильтр для важных решений
Применяй FOK/JOL не для повтора, а для флага: если JOL ниже порога — это сигнал, что надо проверить ответ другим способом (поиском, экспертом, альтернативной моделью). Не автоматический повтор, а рекомендация "этому ответу нужна верификация".
После ответа дай: JOL: [0.0–1.0] Сомнение: [в чём неуверен] Рекомендация по верификации: [что проверить, где уточнить]
Ресурсы
Статья: LLMs Know When They Know, but Do Not Act on It: A Metacognitive Harness for Test-time Scaling
Авторы: Qi Cao, Peijia Qin, Yufan Wang, Shuhao Zhang, Pengtao Xie — University of California, San Diego
Теоретическая основа: Nelson–Narens metacognition framework (когнитивная психология)
Бенчмарки: HLE-Verified, LiveCodeBench v6, R-Bench-V
