Инженер Anthropic Тарик Шихипар раскладывает задачу на четыре категории знания — ещё до того, как пишет первый промпт. Это не магия и не хак: за подходом стоит психология 1970-х и три года исследований самой Anthropic о том, знает ли модель границы собственного знания. Разбираем, как применить это прямо сейчас.

Почему «напиши хороший промпт» — плохой совет

Стандартный совет по промптингу звучит примерно так: «Будьте конкретны, дайте контекст, укажите формат». Всё верно, но это работает только с тем знанием, которое у вас уже есть. Проблема в другом: самые дорогие ошибки случаются не там, где вы знаете, что чего-то не знаете, а там, где вы вообще не подозреваете о существовании проблемы.

Именно этот слепой угол — «неизвестное неизвестное» — делает промпт-инжиниринг непредсказуемым. Модель пишет убедительный ответ, вы принимаете его за истину, а потом выясняется, что вопрос был задан неправильно с самого начала.

Четыре категории знания: рабочий фреймворк

Перед любой нетривиальной задачей Шихипар явно формулирует, что попадает в каждую из четырёх зон.

КатегорияЧто этоПример
ЗнаюФакты и контекст, которые точно верны«Наш API возвращает JSON, timeout — 30 с»
Знаю, что не знаюКонкретные пробелы«Не знаю, как ведёт себя модель при rate limit»
Знаю, но не проговариваюНеявные допущения«Считаю, что пользователь — разработчик»
Не знаю, что не знаюСлепые углыНужно спросить у модели

Третья и четвёртая категории — самые опасные. Неявные допущения незаметно просачиваются в промпт и искажают ответ. Слепые углы вообще не попадают в запрос.

Практический шаг: перед написанием промпта потратьте две минуты и заполните эту таблицу для своей задачи. Категорию четыре оставьте пустой — её содержимое вы узнаете только из ответа модели или из вопросов, которые она задаст.

Как попросить модель показать её собственные пробелы

Это ключевой приём. Вместо того чтобы сразу требовать ответ, сначала спросите модель о границах её знания по теме.

plain
Перед тем как отвечать на мой вопрос, сделай следующее:
1. Перечисли, что ты знаешь об этой теме достаточно уверенно.
2. Укажи, где твоё знание может быть неполным или устаревшим.
3. Сформулируй вопросы, которые ты бы задал мне, чтобы дать более точный ответ.
4. Только после этого отвечай.

Задача: [ваша задача]

Этот шаблон реализует то, что исследователи называют metacognitive prompting: модель сначала выполняет monitoring (оценивает своё знание), затем control (корректирует поведение перед ответом).

Для задач с высокой ценой ошибки добавьте явный запрос на калибровку уверенности:

python
prompt = """
Ответь на вопрос ниже. После каждого ключевого утверждения
в скобках укажи уровень уверенности: [высокая / средняя / низкая]
и одну причину этой оценки.

Вопрос: {question}
"""

Что Anthropic выяснили про P(True) и P(IK) — и почему это важно для промптинга

В 2022 году Anthropic опубликовали работу «Language Models (Mostly) Know What They Know». Они измеряли два показателя:

  • P(True) — оценка моделью вероятности того, что конкретный ответ правильный.
  • P(IK) — оценка вероятности того, что модель вообще обладает нужным знанием.

Результат: модели действительно различают более и менее надёжные ответы лучше случайного угадывания. Но calibration (соответствие заявленной уверенности реальной точности) ухудшается на новых типах задач и новых данных. Проще говоря: «уверенность 93%» в ответе модели — не измерительный прибор, а сигнал, который нужно интерпретировать с поправкой на тип задачи.

Практический вывод: чем дальше задача от типичного обучающего распределения (редкая предметная область, свежие события, специфический корпоративный контекст), тем меньше доверяйте уверенному тону модели и тем важнее явно запрашивать оценку пробелов.

Пошаговый рабочий процесс для нетривиальных задач

Шаг 1. Заполните таблицу знания (2 минуты, в любом редакторе).

Шаг 2. Передайте категории 1–3 в контекст модели явно.

plain
Контекст задачи:
- Что я знаю точно: [список]
- Где я не уверен: [список]
- Мои допущения, которые могут быть неверны: [список]

Задача: [формулировка]

Шаг 3. Попросите модель назвать слепые углы до того, как она даст ответ (шаблон из предыдущего раздела).

Шаг 4. Итерируйте по пробелам. Вопросы, которые модель сформулировала на шаге 3, — это и есть ваша категория четыре. Теперь вы можете либо ответить на них, либо принять осознанное решение двигаться дальше без этой информации.

Шаг 5. Запросите финальный ответ с калибровкой уверенности по ключевым утверждениям.

Весь цикл занимает 10–15 минут для сложной задачи и радикально снижает количество «уверенных галлюцинаций» в результате.

Где это ломается

Короткие фактические вопросы. Для «какой синтаксис у list comprehension в Python» этот процесс избыточен. Метакогнитивный промптинг окупается на задачах с неопределённостью: архитектурные решения, анализ, генерация стратегий.

Модель переоценивает своё незнание. Иногда явный запрос на пробелы приводит к тому, что модель начинает сомневаться там, где у неё достаточно знания. Противоядие: после получения списка пробелов спросите «какие из этих пробелов критичны для ответа, а какие — нет».

Calibration на специфическом контексте. Если ваша задача глубоко погружена в внутреннюю документацию или редкую предметную область, модель не знает, чего она не знает об этом контексте. Здесь метакогнитивный промптинг помогает меньше — важнее качество RAG (retrieval-augmented generation) или явная передача контекста.

Длинные цепочки. В многошаговых агентных сценариях ошибка calibration на раннем шаге накапливается. Встраивайте проверку уверенности на каждом ключевом шаге, а не только в финале.

Что попробовать дальше

Anthropic с 2023 года развивают направление mechanistic interpretability — попытку понять, что происходит внутри модели, когда она «оценивает своё знание». Следить за этим направлением полезно: когда интерпретируемость дойдёт до практических инструментов, промптинг изменится принципиально.

Пока этого не произошло, следующий практический шаг — добавить метакогнитивный шаблон в свою библиотеку промптов и прогнать через него три-пять реальных рабочих задач. Разница в качестве ответов заметна уже на первом прогоне.


FAQ

Метакогнитивный промптинг работает только с Claude?

Нет. Подход протестирован на нескольких семействах моделей, включая GPT-4 и открытые LLM. Конкретные результаты зависят от модели, но базовая механика — явный запрос самооценки перед ответом — работает везде, где модель достаточно велика для instruction following.

Что такое P(IK) простыми словами?

Это вероятность, которую модель сама присваивает тому, что у неё вообще есть знание для ответа на вопрос — ещё до того, как она этот ответ сформулировала. Грубо говоря, «знаю ли я это вообще» в отличие от «правильный ли мой конкретный ответ».

Как понять, что модель галлюцинирует уверенно?

Косвенные признаки: очень специфические цифры без источника, ответ на редкий вопрос без оговорок, отсутствие «не уверен» там, где тема объективно нишевая. Прямой способ — явно попросить модель оценить уверенность и назвать источники каждого ключевого утверждения.

Сколько времени занимает заполнение таблицы знания?

Для большинства рабочих задач — 2–5 минут. Это не методология для каждого запроса, а инструмент для задач с высокой ценой ошибки или высокой неопределённостью: архитектурные решения, исследовательские вопросы, генерация контента по незнакомой теме.

Чем метакогнитивный промптинг отличается от chain-of-thought?

Chain-of-thought просит модель показать ход рассуждений к ответу. Метакогнитивный промптинг просит её оценить качество и границы своего знания до и после рассуждения. Их можно комбинировать: сначала самооценка знания, затем пошаговое рассуждение с калибровкой уверенности на каждом шаге.

Источники