Фраза «давай подумаем шаг за шагом» несколько лет была самым известным приёмом промт-инжиниринга. С появлением моделей, которые рассуждают перед ответом сами, совет устарел — а местами стал вредным. Статья о том, откуда взялся приём, как он работает и что делать вместо него с современными моделями, чтобы получить точный ответ на сложную задачу и не переплачивать за лишние размышления.
Откуда взялась «цепочка рассуждений»
В 2022 году вышли две работы, которые закрепили приём.
- Wei и соавторы, «Chain-of-Thought Prompting Elicits Reasoning in Large Language Models» (Google). В промт добавляли несколько примеров, где перед ответом расписано решение по шагам. На арифметических, логических задачах и задачах на здравый смысл точность заметно росла. Модель на 540 млрд параметров с восемью такими примерами показала лучший на тот момент результат на наборе школьных текстовых задач по математике GSM8K. Важная оговорка из статьи: эффект проявлялся только у больших моделей, а маленьким такие примеры не помогали и даже вредили.
- Kojima и соавторы, «Large Language Models are Zero-Shot Reasoners». Оказалось, что можно обойтись без примеров: достаточно добавить к вопросу фразу «Let's think step by step». Модель сама расписывала решение и чаще приходила к верному ответу.
Почему это работает: модель генерирует текст по одному токену, и каждый следующий опирается на уже написанное. Если ответ выдаётся сразу, у модели нет «места», чтобы выполнить промежуточные вычисления. Расписанные шаги становятся для неё черновиком, на который можно опереться.
Что изменилось: модели рассуждений
Современные модели — линейки o-серии и GPT-5 у OpenAI, Claude с режимом размышлений (thinking), Gemini с thinking — рассуждают перед ответом сами, во внутреннем черновике. Их этому специально обучали. Отсюда новые правила.
Не просите «думать по шагам». В руководстве OpenAI по моделям рассуждений прямо сказано: не нужно просить их рассуждать пошагово или объяснять рассуждения — они делают это внутри, а такие просьбы иногда ухудшают результат.
Пишите проще. OpenAI советует короткие и ясные инструкции: модель сама найдёт путь к решению, сложные «строительные леса» из шагов ей не нужны. В свежих рекомендациях к GPT-5.5 то же: короткие промты, ориентированные на результат, обычно лучше длинных описаний процесса.
Управляйте глубиной параметром, а не словами. У моделей рассуждений есть настройка объёма размышлений: reasoning_effort у OpenAI, effort у Anthropic, бюджет thinking у Google. Низкий уровень — быстрее и дешевле, высокий — для сложных задач. Начинайте с низкого или среднего и повышайте, только если качества не хватает.
Задайте критерии успеха. Вместо описания шагов скажите, каким должен быть результат и как его проверить. OpenAI рекомендует явно перечислить признаки успешного ответа и попросить модель продолжать, пока они не выполнены.
Плохо:
Подумай шаг за шагом. Сначала прочитай код, потом найди функции,
потом проверь каждую функцию, потом...
Лучше:
Найди причину, по которой функция calculateTotal возвращает неверную
сумму при скидке больше 50%. Готово, когда: причина указана с номером
строки, предложено исправление, и ты проверил его на примерах из
теста test_discount.
Обратная проблема: модель думает слишком много
Модели рассуждений склонны к лишней тщательности: на простой вопрос тратят много времени, перебирают варианты, возвращаются к уже принятым решениям. Это стоит денег и времени. Что помогает:
- понизить уровень effort — самый надёжный способ;
- попросить выбрать подход и держаться его. Пример из руководства Anthropic, по смыслу: «выбери подход и доведи его до конца; пересматривай решение, только если появилась новая информация, которая ему противоречит»;
- убрать «перестраховочные» инструкции. Фразы вроде «если сомневаешься — проверь ещё раз» и «будь максимально тщательным» писали для старых моделей, которые делали слишком мало. Новые воспринимают их буквально и перерабатывают;
- ограничить контекст — избыток документов тоже провоцирует лишние размышления.
Когда пошаговое рассуждение всё ещё полезно
Приём не умер, он сместился.
Модели без режима размышлений. Небольшие и быстрые модели, которые отвечают сразу, по-прежнему выигрывают от просьбы рассуждать. Чтобы рассуждения не мешали разбирать ответ, разделите их тегами:
Реши задачу. Сначала распиши рассуждения в тегах <thinking>,
затем дай итоговый ответ в тегах <answer> — только число.
Программа берёт содержимое <answer>, а <thinking> можно сохранить в лог для отладки.
Направить размышления. Даже модели, которые думают сами, можно подсказать, о чём думать. Например, в агентных сценариях Anthropic предлагает такую инструкцию: после получения результата инструмента оценить его качество и спланировать следующий шаг, прежде чем действовать.
Цепочка промтов. Если важно проверить промежуточный результат или задать конвейер, разбейте задачу на отдельные запросы. Самый частый вариант — самопроверка:
- Первый запрос: написать черновик.
- Второй: проверить черновик по списку критериев и перечислить проблемы.
- Третий: исправить черновик по списку проблем.
Каждый шаг — отдельный вызов, его можно залогировать, оценить или перезапустить, не начиная всё сначала.
Рассуждения не равны правде
Расписанные шаги выглядят убедительно, но не гарантируют верного ответа: модель может уверенно рассуждать от неверной посылки. Поэтому:
- проверяйте результат, а не красоту рассуждений — запустите код, пересчитайте число, сверьте цитату;
- для фактов из документов просите опираться на цитаты (подробнее — в статье «Длинный промт: разметка, документы и цитаты»);
- в важных задачах задайте проверку в критериях готовности: «ответ проверен на тестах», «каждое утверждение подкреплено ссылкой на раздел».
Шпаргалка
| Модель и задача | Что делать |
|---|---|
| Модель рассуждений, сложная задача | Короткий промт с целью и критериями успеха; effort — средний или высокий |
| Модель рассуждений, простая задача | Низкий effort; без просьб «подумать» |
| Модель думает слишком долго | Понизить effort; попросить выбрать подход и держаться его |
| Быстрая модель без режима размышлений | Попросить рассуждать в <thinking>, ответ — в <answer> |
| Нужно проверить промежуточный результат | Цепочка промтов: черновик → проверка → исправление |
Источники
- Chain-of-Thought Prompting Elicits Reasoning in Large Language Models — Wei и соавторы, 2022.
- Large Language Models are Zero-Shot Reasoners — Kojima и соавторы, 2022.
- Reasoning best practices — OpenAI.
- Prompting best practices: Thinking and reasoning — Anthropic.