reasoning_effort, enquanto o Google Gemini e a Anthropic usam um objeto thinking. O AI Gateway aceita os três controles e normaliza os valores para o que cada modelo realmente suporta antes de encaminhar a solicitação.
Casos de uso
- Problemas que exigem dedução lógica em várias etapas (provas matemáticas, depuração de código, planejamento).
- Análises complexas em que um modelo padrão produz resultados superficiais ou incorretos.
- Tarefas de pesquisa em que a profundidade do raciocínio importa mais do que a velocidade da resposta.
- Comparação da qualidade do raciocínio entre provedores com prompts idênticos.
Início rápido
O AI Gateway oferece três controles de raciocínio:- Objeto
reasoningemPOST /responsespara modelos de raciocínio da OpenAI. reasoning_effortemPOST /chat/completionspara modelos de raciocínio da OpenAI.thinkingemPOST /chat/completionspara o extended thinking do Google Gemini e da Anthropic.
Campos da solicitação
Comportamento por provedor
Modelos de raciocínio da OpenAI
Usereasoning_effort em POST /chat/completions.
Exemplos atuais do registro:
openai/gpt-5.6-sol.openai/gpt-5.4-mini. O schema do AI Gateway aceita os seis valores do enum, mas o suporte depende, em última instância, de cada modelo.
O router normaliza
reasoning_effort para o valor mais próximo suportado pelo modelo antes de encaminhar a solicitação. Por exemplo, openai/gpt-5.4 não suporta xhigh: ele é mapeado para high. Modelos que suportam xhigh recebem o valor sem alterações.O AI Gateway remove automaticamente
temperature e top_p antes de
encaminhar a solicitação sempre que o modelo raciocina. Para modelos de
raciocínio da OpenAI e do Azure, isso abrange qualquer reasoning_effort
diferente de none e o caso em que reasoning_effort não é definido, já que
esses modelos raciocinam por padrão. Defina reasoning_effort: none para
encaminhar os parâmetros de amostragem. Esses parâmetros são incompatíveis com
modelos de raciocínio da OpenAI e causam um erro se enviados diretamente.OpenAI
Configure a chave de API da OpenAI e explore todos os modelos compatíveis, incluindo a família de raciocínio GPT-5.x.
Google Gemini
Use o objetothinking.
Exemplos baseados em nível (thinking_level):
-
google/gemini-3-flash-preview. -
google/gemini-3.1-pro-preview. Exemplos baseados em orçamento (budget_tokens): -
google/gemini-2.5-flash. -
google/gemini-2.5-flash-lite. -
google/gemini-2.5-pro. Comportamento do router: -
thinking: { "type": "disabled" }é válido -
Em modelos
thinking_enforced, comogoogle/gemini-2.5-pro, desativar o thinking é convertido em um orçamento mínimo de128 -
Em modelos Gemini sem essa obrigatoriedade, desativar o thinking resulta em um orçamento de
0
Google AI
Configure a chave de API do Google AI e explore os modelos de thinking Gemini 2.5 e Gemini 3.
Anthropic Claude
EmPOST /chat/completions, a Anthropic usa thinking: { type, budget_tokens }.
Exemplos atuais do registro:
-
anthropic/claude-sonnet-5. -
anthropic/claude-opus-5. Comportamento do router: -
As chat completions da Anthropic encaminham
enabled,adaptiveebetween_tools. Nos modelos compatíveis,between_toolsretorna atualizações de progresso entre chamadas de tools sem extended thinking. -
budget_tokensprecisa ser maior que0para ser encaminhado comenabled; omita-o combetween_tools. -
thinking_levelnão é usado nas chat completions da Anthropic.
thinking nos parâmetros do modelo (model.parameters.thinking). Uma solicitação que não define thinking nem reasoning_effort herda o valor salvo; qualquer um dos dois o substitui.
Anthropic
Configure a chave de API da Anthropic e explore os recursos de extended thinking do Claude.
Responses API
EmPOST /v3/router/responses, use o objeto reasoning no estilo da OpenAI com effort, em vez de reasoning_effort, para modelos da OpenAI. Configure os modelos Anthropic Claude com o objeto thinking.
Atualizações de progresso entre chamadas de tools
Adicione estes campos a uma solicitação de uso de ferramentas em um modelo compatível combetween_tools para receber resumos de progresso sem thinking antecipado:
JSON
thinking para /v3/router/chat/completions. Omita display e budget_tokens com between_tools. Mantenha o esforço de raciocínio em low, medium ou high ao defini-lo explicitamente.
Para manter o thinking adaptativo e receber atualizações de progresso, use thinking: { "type": "adaptive", "display": "updates" }. Use display: "summarized" para receber tanto resumos de raciocínio quanto resumos de progresso.
Renderize os eventos response.reasoning_summary_text.delta não vazios à medida que chegam. Em respostas concluídas, leia summary[].text dos itens com type: "reasoning". Esses resumos são separados de output_text. Preserve os itens de raciocínio completos, incluindo as assinaturas, ao retornar resultados de ferramentas.
Uso e saída
O uso de tokens de raciocínio é retornado emusage.completion_tokens_details.reasoning_tokens.
A API da Anthropic nem sempre informa os tokens de thinking separadamente. Quando não informa,
reasoning_tokens é 0 e os tokens de thinking são incluídos na contagem total de completion_tokens. Os modelos de raciocínio do Google Gemini e da OpenAI normalmente informam reasoning_tokens corretamente.Chunks de raciocínio em streaming
No modo de streaming, os modelos de thinking entregam o conteúdo da cadeia de raciocínio como um camporeasoning nos chunks que contêm conteúdo de raciocínio. Chunks apenas de texto não incluem esse campo.
O campo de streaming
reasoning está disponível para os modelos de thinking da Anthropic e do Google Gemini. Os modelos de raciocínio da OpenAI transmitem o conteúdo de thinking por meio de eventos reasoning_summary_text.delta. Não conte com a presença desse campo em todos os provedores.Exemplos de código
Escolher uma configuração
Usereasoning_effort quando o modelo pertencer a uma família de raciocínio da OpenAI, como gpt-5.x, o1 ou o3. Use thinking_level para modelos Gemini 3 preview. Use budget_tokens para modelos da Anthropic e modelos Gemini baseados em orçamento.
Para o catálogo atual de modelos, consulte Modelos compatíveis.
