Skip to main content

Visão geral das capacidades

Saídas Estruturadas (Structured Outputs) fazem com que a resposta do modelo siga rigorosamente o JSON Schema que você definiu, garantindo que o valor retornado possa ser analisado diretamente pelo seu programa, sem necessidade de expressões regulares ou pós-processamento. Diferente de pedir ao modelo no prompt para “retornar JSON”, as saídas estruturadas são baseadas em decodificação restrita (Constrained Decoding): o provedor compila o JSON Schema em regras gramaticais e restringe a geração token a token durante a inferência, tornando impossível que o modelo produza conteúdo que viole o Schema. Cenários típicos:
  • Extrair entidades e campos de texto não estruturado
  • Classificação / rotulagem / análise de sentimento
  • Padronização de resultados intermediários em raciocínio multi-etapas
  • Restrição de tipos fortes nos parâmetros de chamada de ferramentas de Agents

Comparação de parâmetros por protocolo

Os nomes dos parâmetros diferem entre os três protocolos, mas o mecanismo subjacente é o mesmo: a saída do modelo corresponde rigorosamente ao JSON Schema que você forneceu.

Início rápido

Protocolo OpenAI (recomendado)

Aplicável a todos os modelos que suportam saídas estruturadas, universal entre fornecedores.

Usando outros modelos (exemplo GLM-5.2)

O mesmo conjunto de parâmetros do protocolo OpenAI se aplica a todos os modelos que suportam saídas estruturadas. Basta trocar o model.
Python

Protocolo nativo Claude

Usando o SDK da Anthropic diretamente, com o parâmetro output_config.format.

Pontos-chave para escrever o Schema

Campos obrigatórios

Todos os tipos object devem declarar explicitamente additionalProperties: false, caso contrário alguns provedores upstream rejeitarão a requisição.

Objetos aninhados

Objetos object aninhados também precisam de additionalProperties: false:

Diferenças de Schema entre protocolos

Ao chamar modelos Claude usando o protocolo OpenAI, o gateway converte automaticamente o formato do Schema e limpa palavras-chave incompatíveis, sem necessidade de adaptação manual.

Mecanismo de degradação automática

O gateway habilita por padrão a proteção de degradação automática de saídas estruturadas para todas as requisições. Quando o modelo ou a plataforma não oferece suporte, o gateway não retorna um erro, mas remove automaticamente a restrição do Schema e marca o motivo da degradação no cabeçalho de resposta. Sua requisição ainda receberá uma resposta normal do modelo, apenas a saída não será restringida pelo Schema. Isso significa que você pode ativar saídas estruturadas de forma unificada no cliente sem precisar fazer verificações de compatibilidade para cada modelo:
  • Troca de modelos sem preocupação: o mesmo código funciona ao alternar entre Claude, GPT, Gemini e GLM. Mesmo que o modelo de destino não suporte saídas estruturadas, a requisição não falhará
  • Fallback transparente: Mesmo que a versão do modelo que acaba processando sua solicitação não suporte saídas estruturadas, a solicitação é concluída normalmente, com a degradação sinalizada no cabeçalho de resposta
  • Lógica simplificada no cliente: não é necessário manter uma lista de “quais modelos suportam saídas estruturadas”. O gateway já cuida disso automaticamente; o cliente só precisa verificar o cabeçalho de resposta para decidir se é necessária uma análise adicional

Cabeçalho de resposta

Exemplo de detecção

Python

Diferença em relação ao modo json_object

O modo json_object não pode ser convertido para o protocolo nativo Claude. Se você enviar response_format: {"type": "json_object"} para o Claude via protocolo OpenAI, o cabeçalho de resposta marcará a degradação json_object_unsupported_on_anthropic. Recomenda-se usar diretamente o tipo json_schema.

Perguntas frequentes

Série Claude (via output_config.format da API Anthropic):
  • Opus / Sonnet / Haiku 4.5 e versões superiores
  • Fable / Mythos 5 e versões superiores
Série OpenAI (via response_format):
  • GPT-4o e superiores, série GPT-5
Série Gemini (via responseSchema):
  • Gemini 2.5 e superiores
Você pode verificar as tags de capacidade de cada modelo na página de lista de modelos.
Sim. Ao chamar modelos Claude via protocolo OpenAI, o gateway automaticamente:
  1. Converte response_format para output_config.format
  2. Remove palavras-chave do Schema não suportadas pela Anthropic (minimum, maxLength etc.)
  3. Se alguma palavra-chave for removida, o cabeçalho de resposta marca schema_keywords_stripped
A conversão reversa (protocolo Claude chamando modelos OpenAI) também é automática.
Sim. O format em output_config (saídas estruturadas) e o effort em reasoning (intensidade de raciocínio) são parâmetros independentes e podem ser definidos simultaneamente:
A maioria das plataformas de agregação de API retorna um erro diretamente quando o modelo não suporta saídas estruturadas. O AIHubMix adota uma estratégia de degradação graciosa: remove automaticamente os parâmetros incompatíveis, retorna a resposta do modelo normalmente e informa o cliente sobre o motivo da degradação através do cabeçalho de resposta X-Structured-Output-Degraded. Sua aplicação não será interrompida por causa disso.