Когда бот должен ответить на что-то сложное (например, по цепочке реплик понять, что пользователь говорит про симптомы выгорания, а не про обычный «устал») — он может срезать углы и пропустить шаг. Если попросить его думать вслух, прежде чем отвечать, качество растёт заметно. Это и есть chain-of-thought (CoT, «цепочка рассуждений»).
Простые реплики («поздоровайся», «поблагодари»), короткая классификация — тут CoT только добавит задержки и токенов.
Прежде чем отвечать, коротко оцени в голове: что сейчас чувствует
пользователь, какой следующий шаг будет самым полезным, не слишком ли
мой ответ длинный. Потом ответь.
Что здесь происходит: модель сама разложит мысли перед финальным текстом. Рассуждение попадёт в ответ вперемешку — для бота с пользователем это может быть не страшно, но для программного парсинга неудобно.
Прежде чем ответить, подумай внутри тега <thinking>.
Финальный ответ пользователю положи внутри тега <reply>.
Что здесь происходит: теперь в ответе есть
<thinking>…</thinking> (это тебе не надо
показывать пользователю) и <reply>…</reply>
(это отправляешь в Telegram). В коде вытаскиваешь только reply
регуляркой или простым split.
В API Claude есть параметр thinking: модель сама решает, сколько думать, и возвращает результат рассуждения отдельным блоком. У OpenAI аналог — семейство o-моделей (o3, o4-mini), которые думают по умолчанию. В обычных GPT-5.x такого явного параметра нет, там CoT задаёшь промптом (варианты 1 и 2 выше).
SYSTEM = """Ты — помощник по планированию для людей с СДВГ.
Перед финальным ответом подумай в теге <thinking>:
1. Какое сейчас состояние пользователя? (перегруз, стыд, усталость, нейтрально)
2. Что он хочет на самом деле — выговориться или план?
3. Какой ответ будет коротким и полезным?
Финальный ответ — в теге <reply>. Короткий, один вопрос или один
микрошаг."""
Что здесь происходит: встроили CoT прямо в системный промпт.
Пользователь увидит только содержимое <reply>.
Содержимое <thinking> ты можешь логировать и смотреть,
почему бот принимает те или иные решения — это бесценно при отладке.
<reply> перед отправкой в Telegram.