← Claude на русском
Перевод с разбором · для Сони
Адаптировал Claude Opus 4.7 (ИИ) на основе документации Anthropic. Полная версия — в docs/chain-of-thought.html.

Chain-of-thought: «думай пошагово»

Адаптация для Сони · 2026-04-27

Что это

Chain-of-thought (CoT, «цепочка рассуждений») — техника, при которой ты явно просишь модель сначала подумать по шагам, и только потом дать ответ. На сложных задачах это заметно повышает качество: модель меньше «выпаливает первое, что пришло в голову», и чаще ловит свои же ошибки.

У Anthropic в современных Claude (Opus 4.7, Sonnet 4.6) есть встроенный extended/adaptive thinking — модель сама думает в специальном режиме. У OpenAI в GPT-5-семействе тоже есть «reasoning» как фича. Но и в обычном чат-режиме без отдельных thinking-токенов CoT работает: достаточно попросить промптом.

Manual CoT — как просить промптом

Самый простой вариант — добавить в системный промпт фразу типа:

Прежде чем ответить пользователю, рассуждай пошагово.
Сначала разбери ситуацию, потом сформулируй ответ.

Это работает, но у такой формы есть проблема: рассуждения попадают в ответ, который видит пользователь. Никто не хочет читать «Шаг 1: пользователь сказал X. Шаг 2: это означает Y. Шаг 3: значит, мне нужно ответить Z…».

Структурное разделение через теги

Решение — попросить модель писать рассуждения в одном теге, а финальный ответ — в другом. В коде ты потом достаёшь только финальный ответ:

Прежде чем ответить, рассуждай пошагово.
Структура ответа:

<thinking>
Здесь свободно рассуждай: что сказал пользователь, какое у него
эмоциональное состояние, какой ответ был бы уместнее всего.
</thinking>

<answer>
Здесь финальный ответ для пользователя — спокойный, без рассуждений.
</answer>

В Python:

import re

raw = response.choices[0].message.content
match = re.search(r"<answer>(.*?)</answer>", raw, re.DOTALL)
final = match.group(1).strip() if match else raw
await message.answer(final)

Подробнее про теги — в адаптации «XML-теги».

Когда CoT помогает в твоём боте

Не на каждом сообщении. На «привет» CoT — лишняя трата токенов. Реальная польза — там, где задача требует разбора:

Когда CoT не нужен

Самопроверка — частный случай CoT

Ещё один полезный паттерн из оригинала: попросить модель проверить свой ответ перед тем, как его выдать. Это надёжно ловит грубые ошибки.

Перед финальным ответом проверь:
- Не нарушил ли ты кризисный протокол (если сообщение содержит
  триггеры)?
- Не использовал ли запрещённые слова («лень», «соберись» и т.п.)?
- Соответствует ли формат правилам (длина, без эмодзи)?

Если что-то не так — перепиши и только потом отдавай.

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

Памятка