Создание с расширенным мышлением
Расширенное мышление предоставляет Claude 3.7 Sonnet улучшенные возможности рассуждения для сложных задач, одновременно обеспечивая прозрачность его пошагового мыслительного процесса перед предоставлением окончательного ответа.
Как работает расширенное мышление
Когда включено расширенное мышление, Claude создает блоки контента thinking
, где он выводит свои внутренние рассуждения. Claude включает выводы из этих рассуждений перед формированием окончательного ответа.
Ответ API будет включать блоки контента как thinking
, так и text
.
В многоходовых разговорах только блоки мышления, связанные с сессией использования инструмента или ходом assistant
в последней позиции сообщения, видны для Claude и тарифицируются как входные токены; блоки мышления, связанные с более ранними сообщениями assistant
, не видны для Claude во время сэмплирования и не тарифицируются как входные токены.
Реализация расширенного мышления
Добавьте параметр thinking
и указанный бюджет токенов для использования расширенного мышления в ваш API-запрос.
Параметр budget_tokens
определяет максимальное количество токенов, которое Claude может использовать для своего внутреннего процесса рассуждения. Большие бюджеты могут улучшить качество ответа, позволяя проводить более тщательный анализ сложных проблем, хотя Claude может не использовать весь выделенный бюджет, особенно в диапазонах выше 32K.
Ваш budget_tokens
всегда должен быть меньше указанного max_tokens
.
API-ответ будет включать блоки контента как thinking, так и text:
Понимание блоков мышления
Блоки мышления представляют внутренний процесс мышления Claude. Чтобы позволить Claude работать над проблемами с минимальными внутренними ограничениями, сохраняя при этом наши стандарты безопасности и наши stateless API, мы реализовали следующее:
- Блоки мышления содержат поле
signature
. Это поле содержит криптографический токен, который подтверждает, что блок мышления был сгенерирован Claude, и проверяется при передаче блоков мышления обратно в API. При потоковой передаче ответов подпись добавляется черезsignature_delta
внутри событияcontent_block_delta
непосредственно перед событиемcontent_block_stop
. Строго необходимо отправлять обратно блоки мышления только при использовании инструментов с расширенным мышлением. В противном случае вы можете опустить блоки мышления из предыдущих ходов или позволить API удалить их за вас, если вы передаете их обратно. - Иногда внутренние рассуждения Claude будут помечены нашими системами безопасности. Когда это происходит, мы шифруем некоторые или все блоки
thinking
и возвращаем их вам как блокredacted_thinking
. Эти отредактированные блоки мышления расшифровываются при передаче обратно в API, позволяя Claude продолжить свой ответ без потери контекста.
Вот пример, показывающий как нормальные, так и отредактированные блоки мышления:
Появление отредактированных блоков мышления в вашем выводе является ожидаемым поведением. Модель все еще может использовать эти отредактированные рассуждения для формирования своих ответов, сохраняя при этом ограничения безопасности.
Если вам нужно протестировать обработку отредактированного мышления в вашем приложении, вы можете использовать эту специальную тестовую строку в качестве промпта: ANTHROPIC_MAGIC_STRING_TRIGGER_REDACTED_THINKING_46C9A13E193C177646C7398A98432ECCCE4C1253D5E2D82641AC0E52CC2876CB
При передаче блоков thinking
и redacted_thinking
обратно в API в многоходовой беседе вы должны включить полный неизмененный блок обратно в API для последнего хода ассистента.
Это критически важно для поддержания потока рассуждений модели. Мы предлагаем всегда передавать обратно все блоки мышления в API. Для получения дополнительной информации см. раздел Сохранение блоков мышления ниже.
Рекомендации по обработке отредактированного мышления в продакшене
При создании клиентских приложений, использующих расширенное мышление:
- Помните, что блоки отредактированного мышления содержат зашифрованный контент, который не читается человеком
- Рассмотрите возможность предоставления простого объяснения, например: “Некоторые внутренние рассуждения Claude были автоматически зашифрованы в целях безопасности. Это не влияет на качество ответов.”
- Если показываете блоки мышления пользователям, вы можете отфильтровать отредактированные блоки, сохраняя при этом обычные блоки мышления
- Будьте прозрачны в том, что использование функций расширенного мышления может иногда приводить к шифрованию некоторых рассуждений
- Реализуйте соответствующую обработку ошибок для корректной работы с отредактированным мышлением без нарушения вашего пользовательского интерфейса
Потоковая передача расширенного мышления
Когда включена потоковая передача, вы будете получать контент мышления через события thinking_delta
. Вот как обрабатывать потоковую передачу с мышлением:
Пример потокового вывода:
О поведении потоковой передачи с мышлением
При использовании потоковой передачи с включенным мышлением вы можете заметить, что текст иногда поступает более крупными фрагментами, чередующимися с меньшей, токен-за-токеном доставкой. Это ожидаемое поведение, особенно для контента мышления.
Система потоковой передачи должна обрабатывать контент пакетами для оптимальной производительности, что может привести к такому “прерывистому” шаблону доставки. Мы постоянно работаем над улучшением этого опыта, и будущие обновления будут направлены на то, чтобы сделать потоковую передачу контента мышления более плавной.
Блоки redacted_thinking
не будут иметь связанных дельт и будут отправляться как одно событие.
Важные соображения при использовании расширенного мышления
Работа с бюджетом мышления: Минимальный бюджет составляет 1,024 токена. Мы предлагаем начинать с минимума и постепенно увеличивать бюджет мышления, чтобы найти оптимальный диапазон для хорошей работы Claude в вашем случае использования. Более высокое количество токенов может позволить достичь более всестороннего и нюансированного рассуждения, но также может быть уменьшение отдачи в зависимости от задачи.
- Бюджет мышления является целевым показателем, а не строгим ограничением - фактическое использование токенов может варьироваться в зависимости от задачи.
- Будьте готовы к потенциально более длительному времени ответа из-за дополнительной обработки, необходимой для процесса рассуждения.
- Потоковая передача требуется, когда
max_tokens
больше 21,333.
Для бюджетов мышления выше 32K: Мы рекомендуем использовать пакетную обработку для рабочих нагрузок, где бюджет мышления установлен выше 32K, чтобы избежать проблем с сетью. Запросы, заставляющие модель думать выше 32K токенов, вызывают длительные запросы, которые могут столкнуться с системными таймаутами и ограничениями открытых соединений.
Совместимость мышления с другими функциями:
- Мышление несовместимо с модификациями
temperature
,top_p
илиtop_k
, а также с принудительным использованием инструментов. - Вы не можете предварительно заполнять ответы, когда включено мышление.
- Изменения в бюджете мышления делают недействительными кэшированные префиксы промптов, которые включают сообщения. Однако кэшированные системные промпты и определения инструментов будут продолжать работать при изменении параметров мышления.
Ценообразование и использование токенов для расширенного мышления
Токены расширенного мышления учитываются в контекстном окне и тарифицируются как выходные токены. Поскольку токены мышления рассматриваются как обычные выходные токены, они также учитываются в ваших ограничениях скорости. Обязательно учитывайте это увеличенное использование токенов при планировании использования вашего API.
Для Claude 3.7 Sonnet цены следующие:
Использование токенов | Стоимость |
---|---|
Входные токены | $3 / MTok |
Выходные токены (включая токены мышления) | $15 / MTok |
Запись кэша промптов | $3.75 / MTok |
Чтение кэша промптов | $0.30 / MTok |
Пакетная обработка для расширенного мышления доступна со скидкой 50% от этих цен и часто завершается менее чем за 1 час.
Все токены расширенного мышления (включая отредактированные токены мышления) тарифицируются как выходные токены и учитываются в ваших ограничениях скорости.
В многоходовых разговорах блоки мышления, связанные с более ранними сообщениями ассистента, не тарифицируются как входные токены.
Когда включено расширенное мышление, автоматически включается специализированный системный промпт из 28 или 29 токенов для поддержки этой функции.
Расширенные возможности вывода (бета)
Claude 3.7 Sonnet может создавать существенно более длинные ответы, чем предыдущие модели, с поддержкой до 128K выходных токенов (бета) - более чем в 15 раз длиннее, чем другие модели Claude. Эта расширенная возможность особенно эффективна для случаев использования расширенного мышления, включающих сложные рассуждения, богатую генерацию кода и всестороннее создание контента.
Эта функция может быть включена путем передачи заголовка anthropic-beta
со значением output-128k-2025-02-19
.
При использовании расширенного мышления с более длинными выводами вы можете выделить больший бюджет мышления для поддержки более тщательного рассуждения, при этом все еще имея достаточно токенов для окончательного ответа.
Мы предлагаем использовать потоковый режим или пакетный режим с этой расширенной возможностью вывода; для получения дополнительной информации см. наше руководство по вопросам надежности сети для длинных запросов.
Использование расширенного мышления с кэшированием промптов
Кэширование промптов с мышлением имеет несколько важных соображений:
Включение блоков мышления в кэшированные промпты
- Мышление включается только при генерации хода ассистента и не предназначено для кэширования.
- Блоки мышления предыдущих ходов игнорируются.
- Если мышление отключается, любой контент мышления, переданный в API, просто игнорируется.
Правила инвалидации кэша
- Изменения параметров мышления (включение/отключение или изменения бюджета) инвалидируют точки прерывания кэша, установленные в сообщениях.
- Системные промпты и инструменты сохраняют кэширование даже при изменении параметров мышления.
Примеры кэширования промптов с расширенным мышлением
Max tokens и размер контекстного окна с расширенным мышлением
В более старых моделях Claude (до Claude 3.7 Sonnet), если сумма токенов промпта и max_tokens
превышала контекстное окно модели, система автоматически корректировала max_tokens
, чтобы уместиться в пределах контекстного лимита. Это означало, что вы могли установить большое значение max_tokens
, и система молча уменьшала его по мере необходимости.
С Claude 3.7 Sonnet, max_tokens
(который включает ваш бюджет мышления, когда мышление включено) применяется как строгое ограничение. Система теперь будет возвращать ошибку валидации, если токены промпта + max_tokens
превышают размер контекстного окна.
Как рассчитывается контекстное окно с расширенным мышлением
При расчете использования контекстного окна с включенным мышлением есть некоторые моменты, о которых следует помнить:
- Блоки мышления из предыдущих ходов удаляются и не учитываются в вашем контекстном окне
- Текущее мышление хода учитывается в вашем лимите
max_tokens
для этого хода
Диаграмма ниже демонстрирует специализированное управление токенами при включенном расширенном мышлении:
Эффективное контекстное окно рассчитывается как:
Мы рекомендуем использовать API подсчета токенов для получения точного количества токенов для вашего конкретного случая использования, особенно при работе с многоходовыми разговорами, которые включают мышление.
Вы можете прочитать наше руководство по контекстным окнам для более подробного погружения.
Управление токенами с расширенным мышлением
Учитывая новое поведение контекстного окна и max_tokens
с моделями расширенного мышления, такими как Claude 3.7 Sonnet, вам может потребоваться:
- Более активно отслеживать и управлять использованием токенов
- Корректировать значения
max_tokens
по мере изменения длины промпта - Потенциально чаще использовать конечные точки подсчета токенов
- Помнить, что предыдущие блоки мышления не накапливаются в вашем контекстном окне
Это изменение было сделано для обеспечения более предсказуемого и прозрачного поведения, особенно поскольку максимальные лимиты токенов значительно увеличились.
Расширенное мышление с использованием инструментов
При использовании расширенного мышления с инструментами помните о следующем шаблоне поведения:
-
Первый ход ассистента: Когда вы отправляете начальное сообщение пользователя, ответ ассистента будет включать блоки мышления, за которыми следуют запросы на использование инструментов.
-
Ход с результатом инструмента: Когда вы передаете сообщение пользователя с блоками результатов инструмента, последующее сообщение ассистента не будет содержать дополнительных блоков мышления.
Если расширить здесь, нормальный порядок разговора с использованием инструментов с мышлением следует этим шагам:
- Пользователь отправляет начальное сообщение
- Ассистент отвечает блоками мышления и запросами инструментов
- Пользователь отправляет сообщение с результатами инструментов
- Ассистент отвечает либо дополнительными вызовами инструментов, либо просто текстом (без блоков мышления в этом ответе)
- Если запрашиваются дополнительные инструменты, повторите шаги 3-4, пока разговор не будет завершен
Этот дизайн позволяет Claude показывать свой процесс рассуждения перед запросом инструментов, но не повторять процесс мышления после получения результатов инструментов. Claude не будет выводить другой блок мышления до следующего хода пользователя, не являющегося tool_result
.
Диаграмма ниже иллюстрирует управление токенами контекстного окна при комбинировании расширенного мышления с использованием инструментов:
Сохранение блоков мышления
Во время использования инструментов вы должны передавать блоки thinking
и redacted_thinking
обратно в API, и вы должны включать полный неизмененный блок обратно в API. Это критически важно для поддержания потока рассуждений модели и целостности разговора.
Хотя вы можете опустить блоки thinking
и redacted_thinking
из предыдущих ходов с ролью assistant
, мы предлагаем всегда передавать обратно все блоки мышления в API для любого многоходового разговора. API будет:
- Автоматически фильтровать предоставленные блоки мышления
- Использовать соответствующие блоки мышления, необходимые для сохранения рассуждений модели
- Тарифицировать только входные токены для блоков, показанных Claude
Почему блоки мышления должны быть сохранены
Когда Claude вызывает инструменты, он приостанавливает построение ответа в ожидании внешней информации. Когда возвращаются результаты инструментов, Claude продолжит строить этот существующий ответ. Это требует сохранения блоков мышления во время использования инструментов по нескольким причинам:
-
Непрерывность рассуждений: Блоки мышления фиксируют пошаговые рассуждения Claude, которые привели к запросам инструментов. Когда вы отправляете результаты инструментов, включение исходного мышления гарантирует, что Claude может продолжить свои рассуждения с того места, где он остановился.
-
Поддержание контекста: Хотя результаты инструментов появляются как сообщения пользователя в структуре API, они являются частью непрерывного потока рассуждений. Сохранение блоков мышления поддерживает этот концептуальный поток через несколько вызовов API.
Важно: При предоставлении блоков thinking
или redacted_thinking
вся последовательность последовательных блоков thinking
или redacted_thinking
должна соответствовать выводам, сгенерированным моделью во время исходного запроса; вы не можете переупорядочивать или изменять последовательность этих блоков.
Советы по наилучшему использованию режима расширенного мышления
Чтобы получить максимальную отдачу от расширенного мышления:
-
Установите соответствующие бюджеты: Начните с больших бюджетов мышления (16,000+ токенов) для сложных задач и корректируйте в зависимости от ваших потребностей.
-
Экспериментируйте с бюджетами токенов мышления: Модель может работать по-разному при различных настройках максимального бюджета мышления. Увеличение максимального бюджета мышления может заставить модель думать лучше/усерднее, в обмен на увеличенную задержку. Для критических задач рассмотрите возможность тестирования различных настроек бюджета, чтобы найти оптимальный баланс между качеством и производительностью.
-
Вам не нужно самостоятельно удалять предыдущие блоки мышления: API Anthropic автоматически игнорирует блоки мышления из предыдущих ходов, и они не включаются при расчете использования контекста.
-
Отслеживайте использование токенов: Следите за использованием токенов мышления для оптимизации затрат и производительности.
-
Используйте расширенное мышление для особенно сложных задач: Включайте мышление для задач, которые выигрывают от пошагового рассуждения, таких как математика, программирование и анализ.
-
Учитывайте увеличенное время ответа: Учитывайте, что генерация блоков мышления может увеличить общее время ответа.
-
Правильно обрабатывайте потоковую передачу: При потоковой передаче будьте готовы обрабатывать как блоки мышления, так и текстовые блоки контента по мере их поступления.
-
Инженерия промптов: Ознакомьтесь с нашими советами по промптам для расширенного мышления, если вы хотите максимизировать возможности мышления Claude.
Следующие шаги
Was this page helpful?