Что такое Chain-of-Thought
Chain-of-Thought (CoT) — промпт-паттерн, при котором агент перед финальным ответом явно записывает ход своих рассуждений. Вместо того чтобы сразу выдать ответ (который может быть галлюцинацией), модель шаг за шагом расписывает логику — и только потом делает вывод.
Это один из самых исследованных и надёжных паттернов в prompt engineering. Работает с Claude, GPT-4, Gemini и любой достаточно мощной моделью.
Почему это работает
Языковые модели генерируют текст токен за токеном. Когда модель пишет рассуждение, каждый следующий токен рассуждения становится контекстом для следующего шага. Это значит:
- Модель «помнит» что уже вывела в ходе рассуждения
- Промежуточные шаги ограничивают пространство возможных финальных ответов
- Ошибка в рассуждении видна — её можно поймать и исправить
- Модель реже «прыгает» к первому правдоподобному ответу
Без CoT модель часто выдаёт уверенный, но неверный ответ — потому что финальный токен генерируется без промежуточных проверок. С CoT каждый шаг рассуждения служит якорем для следующего.
Установка
Базовый шаблон (Zero-Shot CoT)
Добавь одну фразу в конец промпта:
Реши задачу шаг за шагом, прежде чем дать финальный ответ.
Или в английском варианте (часто работает лучше):
Think step by step before giving your final answer.
Расширенный шаблон с явной структурой
Ты — аналитик. При решении любой задачи следуй этой структуре:
<thinking>
1. Что именно требуется сделать?
2. Какие данные у меня есть?
3. Какие шаги нужны для решения?
4. Возможные ошибки и проверка логики.
</thinking>
<answer>
Финальный ответ здесь.
</answer>
Задача: {задача}
Теги <thinking> и <answer> помогают парсить вывод программно, если агент встроен в систему.
Вариации
Zero-Shot CoT
Не даёшь примеров — просто просишь думать пошагово. Работает для большинства задач.
Вопрос: Сколько раз буква "р" встречается в слове "strawberry"?
Думай шаг за шагом.
Few-Shot CoT
Даёшь 1–3 примера с рассуждением, затем задаёшь реальный вопрос. Лучше работает для специфических доменов.
Пример:
Вопрос: У Маши 5 яблок. Она отдала 2 Пете и купила ещё 3. Сколько у неё яблок?
Рассуждение: Начало — 5 яблок. Отдала 2: 5 - 2 = 3. Купила 3: 3 + 3 = 6.
Ответ: 6 яблок.
Теперь реши:
Вопрос: У сервера 32 GB RAM. Запущены 4 контейнера по 6 GB и система использует 2 GB. Сколько RAM свободно?
Self-Consistency CoT
Запускаешь один промпт несколько раз, берёшь самый частый ответ. Повышает точность на задачах с однозначным ответом, но дороже по токенам.
Примеры до/после
Задача: анализ ошибки в коде
Без CoT:
Промпт: Почему этот Python-код падает? [код]
Ответ: Проблема в индексации списка.
Ответ может быть верным, может быть нет — модель "угадала".
С CoT:
Промпт: Почему этот Python-код падает? Думай шаг за шагом. [код]
Ответ:
Шаг 1: Смотрю на traceback — ошибка на строке 14, IndexError.
Шаг 2: Строка 14: result = data[index]. Значит index выходит за границы data.
Шаг 3: Откуда берётся index? Передаётся как аргумент функции, не проверяется.
Шаг 4: Откуда вызывается функция? На строке 27 передаётся len(data) вместо len(data)-1.
Ответ: Баг на строке 27 — передаётся len(data) как индекс, но максимальный валидный индекс len(data)-1.
Задача: бизнес-решение
Без CoT:
Стоит ли запускать Telegram-бота для магазина?
→ Да, стоит, боты повышают конверсию.
С CoT:
Шаг 1: Какова аудитория магазина? Нужно знать, сидят ли клиенты в Telegram.
Шаг 2: Какая задача для бота? Уведомления, заказы, поддержка?
Шаг 3: Какие ресурсы есть на разработку и поддержку?
Шаг 4: Какова альтернативная стоимость — что не будет сделано вместо бота?
Ответ: Зависит от ответов выше. Если >30% аудитории в Telegram и задача — статусы заказов, то да, ROI будет высокий. Если аудитория в Instagram и нет ресурсов на поддержку — нет.
Ограничения
- Больше токенов — рассуждение занимает место в контексте и стоит денег. На простых задачах CoT не нужен.
- Не помогает с фактами — если модель не знает факт, пошаговое рассуждение не создаст знание из воздуха. CoT помогает с логикой, а не с памятью.
- Не всегда нужна структура — для творческих задач жёсткий CoT может мешать. Используй его для аналитических, технических и многошаговых задач.
- Модель может "притвориться" — иногда модель пишет рассуждение, которое выглядит логичным, но не влияет на ответ. Проверяй, что рассуждение действительно связано с выводом.