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

Chain-of-thought: чтобы модель думала пошагово

Адаптация для Вани · 2026-04-23

Зачем тебе это нужно

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

Когда CoT нужен

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

Простые задачи: классификация типа лестницы, извлечение поля из текста, проверка регулярки. CoT тут добавляет только задержку и токены.

Три формата CoT

1. Неструктурированный («подумай, прежде чем ответить»)

Перед ответом коротко оцени:
1. Какие материалы нужны по BOM?
2. Сколько часов работы?
3. Есть ли риски (редкое дерево, срок)?
Потом дай итоговую рекомендацию.

Что здесь происходит: рассуждение попадает в ответ вперемешку с итогом. Для отображения пользователю может быть ок, для парсинга кодом — не очень.

2. Структурированный через XML-теги

Рассуждение положи в <thinking>, финальный вывод — в <recommendation>.
Внутри <recommendation> — валидный JSON:
{"status": "ok"|"risky"|"reject", "reason": string, "margin_pct": number}

Что здесь происходит: рассуждение и результат в разных тегах. Regex или парсер выдёргивает только JSON из <recommendation>. Содержимое <thinking> логируешь для отладки, пользователю не показываешь.

3. Встроенный thinking-режим

У Claude в API есть параметр thinking, у OpenAI — семейство o-моделей (o3, o4-mini), которые по умолчанию «думают» перед ответом. Они стоят дороже за вход, но на сложных оценках обычно точнее, чем gpt-5.x + ручной CoT.

Пример: ревью сметы

val prompt = """
Ты — опытный прораб по производству лестниц. Ревизуй смету, найди
ошибки и недостающие позиции.

Рассуждение положи в <thinking>:
1. Все ли материалы учтены? (основной массив, крепёж, клей, лак)
2. Адекватны ли количества при заданных размерах?
3. Нет ли подозрительно низких или высоких цен?

Итог — в <review>:
{"issues": [{"severity": "low|med|high", "text": "..."}], "summary": "..."}

Смета:
${estimate.toJson()}
""".trimIndent()

Что здесь происходит: ты явно задаёшь модели структуру рассуждения — три пункта. Модель не пропустит ни один. Затем возвращает списочный отчёт с уровнями важности. Кодом достаёшь <review>, парсишь JSON, отображаешь в UI как список «что проверить перед отправкой клиенту».

Совет Anthropic: «выбирай и придерживайся»

На сложных задачах модель Claude 4.6+ может уходить в бесконечное исследование. Если видишь это — добавь:

Выбери подход и придерживайся его. Не пересматривай решение без
новых фактов. Если видишь два варианта — выбери один и доведи.

Что это значит для твоей системы

Полная версия — в docs/chain-of-thought.html.