Extended thinking do Claude
Esta página explica como ativar o extended thinking do Claude e ler o conteúdo do thinking. IDs de modelo e endereços de endpoint estão na visão geral da família Claude.
ResumoNo endpoint nativo, envie thinking; no endpoint compatível com OpenAI, envie o objeto reasoning. Com o thinking ativado, não defina temperature.
O extended thinking faz o modelo raciocinar antes de responder e é indicado para matemática, código e análises de várias etapas. Em nossos testes, os modelos a seguir retornaram o conteúdo do thinking de forma estável com o provedor padrão: Opus 5.5, Opus 5, Opus 4.8, Opus 4.6, Sonnet 4.6, Haiku 5.5, Haiku 4.5, Fable 5.
Endpoint nativo da Anthropic
Há dois modos:
Python
claude_thinking.py
import os
import anthropic
client = anthropic.Anthropic(base_url="https://api.ofox.ai/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": "Um taco e uma bola custam juntos 1,10 dólar. O taco custa 1 dólar a mais que a bola. Quanto custa a bola?"}],
)
for block in message.content:
if block.type == "thinking":
print("[thinking]", block.thinking)
elif block.type == "text":
print("[resposta]", block.text)- No
contentda resposta, primeiro aparece o blocothinkinge depois o blocotext. O blocothinkingtraz umasignature, que deve ser devolvida sem alterações em chamadas de ferramentas de vários turnos. - No streaming, o conteúdo do thinking chega por eventos
thinking_delta, seguidos de um eventosignature_delta, e só então começam ostext_delta. - Com o thinking ativado, não defina
temperature(ou defina-o como 1) nemtop_k. - Os tokens consumidos pelo thinking entram em
output_tokense são cobrados pelo preço de saída.
Endpoint compatível com OpenAI
Ative pelo objeto reasoning, em que max_tokens é o orçamento do thinking:
claude_thinking_openai.py
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.ofox.ai/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": "Um taco e uma bola custam juntos 1,10 dólar. O taco custa 1 dólar a mais que a bola. Quanto custa a bola?"}],
)
msg = resp.choices[0].message
details = getattr(msg, "reasoning_details", None) or []
print("[thinking]", "".join(d.get("text", "") for d in details))
print("[resposta]", msg.content)- Em respostas sem streaming, o conteúdo do thinking fica em
message.reasoning_details; concatene otextde cada item na ordem. - Em respostas com streaming, o conteúdo do thinking fica em
delta.reasoning_content.
Outros erros estão em Erros comuns.
Última atualização em