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 omodel.
Python
Protocolo nativo Claude
Usando o SDK da Anthropic diretamente, com o parâmetrooutput_config.format.
Pontos-chave para escrever o Schema
Campos obrigatórios
Todos os tiposobject devem declarar explicitamente additionalProperties: false, caso contrário alguns provedores upstream rejeitarão a requisição.
Objetos aninhados
Objetosobject aninhados também precisam de additionalProperties: false:
Diferenças de Schema entre protocolos
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
Perguntas frequentes
Quais modelos suportam Structured Outputs?
Quais modelos suportam Structured Outputs?
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
response_format):- GPT-4o e superiores, série GPT-5
responseSchema):- Gemini 2.5 e superiores
O JSON Schema é modificado em chamadas entre protocolos?
O JSON Schema é modificado em chamadas entre protocolos?
Sim. Ao chamar modelos Claude via protocolo OpenAI, o gateway automaticamente:
- Converte
response_formatparaoutput_config.format - Remove palavras-chave do Schema não suportadas pela Anthropic (
minimum,maxLengthetc.) - Se alguma palavra-chave for removida, o cabeçalho de resposta marca
schema_keywords_stripped
Structured Outputs pode ser usado junto com Extended Thinking?
Structured Outputs pode ser usado junto com Extended Thinking?
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:Qual a diferença do mecanismo de degradação em comparação com outras plataformas de agregação como OpenRouter?
Qual a diferença do mecanismo de degradação em comparação com outras plataformas de agregação como OpenRouter?
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.