Skip to Content
МоделиClaudeРасширенный thinking

Расширенный thinking в Claude

На этой странице описано, как включить расширенный thinking в Claude и прочитать его содержимое. ID моделей и адреса API см. в обзоре семейства Claude.

ГлавноеВ нативном API передавайте thinking, в OpenAI-совместимом API — объект reasoning. При включённом thinking не задавайте temperature.

Расширенный thinking позволяет модели сначала провести рассуждение, а затем ответить; это полезно для математики, кода и многошаговых аналитических задач. По нашим замерам, следующие модели у провайдера по умолчанию стабильно возвращают содержимое thinking: Opus 5.5, Opus 5, Opus 4.8, Opus 4.6, Sonnet 4.6, Haiku 5.5, Haiku 4.5, Fable 5.

Нативный API Anthropic

Доступны два режима:

РежимЗаписьПримечание
Фиксированный бюджет"thinking": {"type": "enabled", "budget_tokens": 2000}budget_tokens не меньше 1024 и обязательно меньше max_tokens
Адаптивный"thinking": {"type": "adaptive"}Глубину thinking определяет модель; можно регулировать через "output_config": {"effort": "low"} и т. п.
claude_thinking.py
import os import anthropic client = anthropic.Anthropic(base_url="https://api.ofox.io/anthropic", api_key=os.environ["OFOX_API_KEY"]) message = client.messages.create( model="anthropic/claude-opus-5.5", max_tokens=4000, thinking={"type": "enabled", "budget_tokens": 2000}, messages=[{"role": "user", "content": "Ракетка и мяч вместе стоят 1,10 доллара, ракетка на 1 доллар дороже мяча. Сколько стоит мяч?"}], ) for block in message.content: if block.type == "thinking": print("[Thinking]", block.thinking) elif block.type == "text": print("[Ответ]", block.text)
  • В content ответа сначала идёт блок thinking, затем блок text. Блок thinking содержит signature, который в многошаговых вызовах инструментов нужно передавать обратно без изменений.
  • При потоковом выводе содержимое thinking приходит в событиях thinking_delta, за ними следует одно событие signature_delta, и только затем начинаются text_delta.
  • При включённом thinking не задавайте temperature (или установите 1) и не задавайте top_k.
  • Токены, израсходованные на thinking, учитываются в output_tokens и оплачиваются по цене вывода.

OpenAI-совместимый API

Thinking включается объектом reasoning, где max_tokens задаёт бюджет thinking:

claude_thinking_openai.py
import os from openai import OpenAI client = OpenAI(base_url="https://api.ofox.io/v1", api_key=os.environ["OFOX_API_KEY"]) resp = client.chat.completions.create( model="anthropic/claude-sonnet-4.6", max_tokens=4000, extra_body={"reasoning": {"max_tokens": 2000}}, messages=[{"role": "user", "content": "Ракетка и мяч вместе стоят 1,10 доллара, ракетка на 1 доллар дороже мяча. Сколько стоит мяч?"}], ) msg = resp.choices[0].message details = getattr(msg, "reasoning_details", None) or [] print("[Thinking]", "".join(d.get("text", "") for d in details)) print("[Ответ]", msg.content)
  • В непотоковом ответе содержимое thinking находится в message.reasoning_details; склейте поля text всех элементов по порядку.
  • В потоковом ответе содержимое thinking находится в delta.reasoning_content.

Другие ошибки см. в разделе Типичные ошибки.

Обновлено