Глава 6. Пошаговое мышление: даём Claude подумать
Представьте: вас разбудили среди ночи и сходу требуют ответить на несколько запутанных вопросов. Справитесь хуже, чем если бы дали время подумать, правда? С Claude та же история. Если дать модели порассуждать шаг за шагом перед ответом, точность заметно растёт — особенно на сложных задачах.
Есть один нюанс, о который спотыкаются все новички: мышление считается, только когда оно «вслух». Нельзя попросить Claude «подумать про себя и выдать только ответ» — модель генерирует текст токен за токеном, и рассуждение существует лишь тогда, когда оно реально написано. Нет написанных шагов — не было и мышления.
Пример: отзыв с подвохом
Возьмём отзыв на фильм, где второе предложение полностью обесценивает первое. Человек считывает сарказм мгновенно, а вот модель «в лоб» может воспринять слово «не связано» слишком буквально:
Этот отзыв на фильм положительный или отрицательный?
Фильм взорвал мне мозг своей свежестью и оригинальностью. Совершенно не связано с этим: я живу под камнем с 1900 года.
Отзыв положительный. Автор называет фильм свежим и оригинальным, говорит, что тот «взорвал мозг».
А теперь дадим модели подумать: попросим сначала выписать лучшие аргументы за обе версии в XML-теги (мы знакомы с ними по главе 4) — и только потом отвечать. Плюс щепотка ролевого промптинга из главы 3:
Ты — искушённый читатель кинорецензий.
Этот отзыв положительный или отрицательный? Сначала выпиши лучшие аргументы за каждую версию в тегах <positive-argument> и <negative-argument>, затем дай ответ.
Фильм взорвал мне мозг своей свежестью и оригинальностью. Совершенно не связано с этим: я живу под камнем с 1900 года.
<positive-argument>Отзыв хвалит фильм напрямую: «свежесть», «оригинальность», «взорвал мозг».</positive-argument>
<negative-argument>Вторая фраза — сарказм: «я живу под камнем с 1900 года» означает, что фильм кажется свежим только тому, кто век ничего не видел. То есть на самом деле он банальный и устаревший.</negative-argument>
Отзыв отрицательный: похвала иронична, автор намекает, что фильм оригинален лишь для отставшего от жизни зрителя.
Та же задача, тот же текст — но, разложив аргументы по полочкам, модель заметила сарказм. Вы получаете не только более точный ответ, но и прозрачный: видно, как модель пришла к выводу, и легко проверить, где она свернула не туда.
Почему нельзя попросить Claude «подумать про себя, но написать только ответ»?
Порядок вариантов имеет значение
Интересная деталь из оригинального курса: Claude бывает чувствителен к порядку. Пример с отзывом находится на границе способности модели понимать нюансы текста, и если поменять аргументы местами — попросить сначала negative, потом positive, — итоговая оценка может переключиться на «положительный».
В большинстве случаев (но, что сбивает с толку, не во всех) модель чаще выбирает второй из двух вариантов — возможно, потому что в обучающих данных из интернета вторые варианты чаще оказывались правильными. Практический вывод: на пограничных задачах проверяйте промпт с разным порядком вариантов — и не считайте один прогон истиной.
Что может произойти, если в промпте поменять местами порядок вариантов «положительный/отрицательный»?
Приём brainstorm
Рассуждение вслух помогает и с фактическими вопросами. Спросите «в лоб»: «Назови известный фильм с актёром, родившимся в 1956 году» — и модель может выпалить первое пришедшее на ум имя с неверным годом рождения. А теперь дадим место для черновика:
Назови известный фильм с актёром, родившимся в 1956 году. Сначала перебери нескольких актёров и их годы рождения в тегах <brainstorm>, затем дай ответ.
<brainstorm>
Том Хэнкс — 1956
Мел Гибсон — 1956
Том Круз — 1962 (не подходит)
Киану Ривз — 1964 (не подходит)
</brainstorm>
«Форрест Гамп» — главную роль сыграл Том Хэнкс, родившийся в 1956 году.
Теги <brainstorm> — это черновик: модель сначала набрасывает кандидатов, отсеивает неподходящих и только потом формулирует ответ. Перебор вслух ловит ошибки до того, как они попадут в финальный ответ. А если черновик не нужен в выдаче — вырежьте содержимое тегов кодом, как в главе 5.
Зачем просить Claude сначала писать в тегах <brainstorm>?
Упражнения
Легенда упражнений: вы делаете поддержку для производителя кухонного комбайна Mixmaster4000. Нужно автоматически сортировать входящие письма по категориям:
- (A) Вопрос перед покупкой
- (B) Сломанный или бракованный товар
- (C) Вопрос по оплате
- (D) Другое (с пояснением)
Упражнение 6.1 — Классификация писем
Напишите промпт, который заставит Claude выдать правильную категорию — и только её. Ответ должен содержать букву в скобках и название категории, например: «(B) Сломанный или бракованный товар». Проверьте на четырёх письмах:
- «Здравствуйте! Мой Mixmaster4000 странно шумит при работе, пахнет дымом и палёным пластиком. Нужна замена» — ожидаем (B)
- «Можно ли использовать Mixmaster4000 для смешивания краски или он только для еды?» — ожидаем (A) или (D)
- «Я ЖДУ УЖЕ 4 МЕСЯЦА, КОГДА ПРЕКРАТЯТСЯ ЕЖЕМЕСЯЧНЫЕ СПИСАНИЯ ПОСЛЕ ОТМЕНЫ ПОДПИСКИ!! ЧТО ПРОИСХОДИТ???» — ожидаем (C)
- «Как я сюда попал я плохо умею компьютер. Памагити» — ожидаем (D)
Решение упражненияСначала попробуйте сами — потом сверьтесь
Классифицируй письмо в теге <email> по одной из категорий:
(A) Вопрос перед покупкой
(B) Сломанный или бракованный товар
(C) Вопрос по оплате
(D) Другое (с пояснением)
<email>Здравствуйте! Мой Mixmaster4000 странно шумит при работе, пахнет дымом и палёным пластиком. Нужна замена.</email>
Сначала кратко порассуждай в тегах <thinking>, к какой категории относится письмо. Затем выведи ответ — только букву в скобках и название категории.
<thinking>Клиент описывает неисправность купленного устройства (шум, запах гари) и просит замену — это жалоба на брак.</thinking>
(B) Сломанный или бракованный товар
Работают три ингредиента: письмо изолировано XML-тегами (глава 4), категории перечислены явно, а перед ответом модель коротко рассуждает в <thinking>. Особенно рассуждение помогает на неоднозначных письмах вроде вопроса про краску.
Упражнение 6.2 — Формат классификации
Доведите промпт до автоматизируемого вида: пусть Claude оборачивает только букву категории в теги <answer></answer>. Для первого письма в ответе должна быть точная строка <answer>B</answer> — такую легко вытащить кодом.
Решение упражненияСначала попробуйте сами — потом сверьтесь
Классифицируй письмо в теге <email> по одной из категорий:
(A) Вопрос перед покупкой
(B) Сломанный или бракованный товар
(C) Вопрос по оплате
(D) Другое (с пояснением)
<email>Я ЖДУ УЖЕ 4 МЕСЯЦА, КОГДА ПРЕКРАТЯТСЯ ЕЖЕМЕСЯЧНЫЕ СПИСАНИЯ ПОСЛЕ ОТМЕНЫ ПОДПИСКИ!! ЧТО ПРОИСХОДИТ???</email>
Сначала порассуждай в тегах <thinking>. Затем выведи только букву категории внутри тегов <answer></answer>, например <answer>A</answer>.
<thinking>Клиент жалуется на списания, продолжающиеся после отмены подписки, — это вопрос по оплате.</thinking>
<answer>C</answer>
Пример нужного формата прямо в инструкции («например <answer>A</answer>») закрепляет структуру. Заметьте: рассуждение и структурированный вывод отлично уживаются в одном промпте — думаем в одних тегах, отвечаем в других.
Что запомнить
- Пошаговое рассуждение перед ответом повышает точность на сложных задачах — и делает ход мысли модели проверяемым.
- Мышление считается только «вслух»: что не написано, того не было.
- Рабочий шаблон: «сначала рассуждай в тегах <thinking> / <brainstorm>, затем дай ответ».
- Порядок вариантов может влиять на ответ в пограничных случаях — тестируйте оба порядка.
- Extended thinking у современных Claude не отменяет приём: явная структура рассуждения по-прежнему работает.
Дочитали и сделали упражнения? Зафиксируйте прогресс — отметка сохранится в вашем браузере.