Skip to Content
ModelosClaudeExtended thinking

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:

ModoFormatoObservações
Orçamento fixo"thinking": {"type": "enabled", "budget_tokens": 2000}budget_tokens deve ser no mínimo 1024 e menor que max_tokens
Adaptativo"thinking": {"type": "adaptive"}O modelo decide a profundidade do thinking; pode ser ajustado com "output_config": {"effort": "low"} e similares
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 content da resposta, primeiro aparece o bloco thinking e depois o bloco text. O bloco thinking traz uma signature, 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 evento signature_delta, e só então começam os text_delta.
  • Com o thinking ativado, não defina temperature (ou defina-o como 1) nem top_k.
  • Os tokens consumidos pelo thinking entram em output_tokens e 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 o text de 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