Funktionsueberblick
Strukturierte Ausgaben (Structured Outputs) sorgen dafuer, dass die Antwort des Modells strikt Ihrem definierten JSON Schema folgt. Dadurch kann die Rueckgabe direkt programmatisch geparst werden — ohne regulaere Ausdruecke oder Nachbearbeitung. Im Gegensatz zur Anweisung im Prompt, das Modell solle “bitte JSON zurueckgeben”, basieren Structured Outputs auf Constrained Decoding (eingeschraenkte Dekodierung): Der Upstream-Anbieter kompiliert das JSON Schema in Grammatikregeln und schraenkt die Generierung waehrend der Inferenz Token fuer Token ein. Das Modell kann keine Ausgabe erzeugen, die gegen das Schema verstoesst. Typische Anwendungsfaelle:- Extraktion von Entitaeten und Feldern aus unstrukturiertem Text
- Klassifikation / Tagging / Sentimentanalyse
- Standardisierte Weitergabe von Zwischenergebnissen bei mehrstufiger Schlussfolgerung
- Strenge Typbindung fuer Agent-Tool-Call-Parameter
Parametervergleich nach Protokoll
| Protokoll | Parameter | Unterstuetzte Modelle |
|---|---|---|
OpenAI Chat /v1/chat/completions | response_format.type: "json_schema" | Claude 4.5+, GPT-4o / GPT-5 Serie, Gemini Serie |
Anthropic Messages /v1/messages | output_config.format.type: "json_schema" | Claude 4.5+ (Direktverbindung / Vertex); Bedrock nur 4.5—4.6 |
OpenAI Responses /v1/responses | text.format.type: "json_schema" | Abhaengig von den Faehigkeiten des Upstream-Modells |
AWS Bedrock Einschraenkungen
Auf AWS Bedrock verwenden Claude 4.7 und hoehere Versionen den Mantle-Inferenzpfad, der derzeitoutput_config.format nicht unterstuetzt. Das Gateway entfernt automatisch das format-Feld fuer diese Modelle und markiert die Degradierung im Response-Header (siehe unten Graceful Degradation). Die Anfrage schlaegt dadurch nicht fehl.
Schnellstart
OpenAI-Protokoll (empfohlen)
Geeignet fuer alle Modelle, die Structured Outputs unterstuetzen — anbieteruebergreifend einsetzbar.Andere Modelle verwenden (Beispiel GLM-5.2)
Dieselben OpenAI-Protokoll-Parameter gelten fuer alle Modelle mit Structured-Output-Unterstuetzung — Sie muessen lediglich dasmodel wechseln.
Natives Claude-Protokoll
Direkter Aufruf ueber das Anthropic SDK mit dem Parameteroutput_config.format.
Hinweise zum Schema-Aufbau
Pflichtfelder
Alle Typen vom Typobject muessen explizit additionalProperties: false deklarieren — andernfalls lehnen einige Upstream-Anbieter die Anfrage ab.
Verschachtelte Objekte
Verschachtelteobject-Typen benoetigen ebenfalls additionalProperties: false:
Schema-Unterschiede zwischen Protokollen
| Eigenschaft | OpenAI-Protokoll | Anthropic-Protokoll |
|---|---|---|
name-Feld | Erforderlich | Nicht unterstuetzt (wird bei protokolluebergreifenden Aufrufen vom Gateway automatisch behandelt) |
strict-Feld | Optional, true empfohlen | Nicht unterstuetzt |
Numerische Constraints (minimum, maximum etc.) | Unterstuetzt | Nicht unterstuetzt (vom Gateway automatisch bereinigt, ohne Auswirkung auf die Anfrage) |
String-Constraints (minLength, maxLength) | Unterstuetzt | Nicht unterstuetzt (vom Gateway automatisch bereinigt) |
Automatische Graceful Degradation
Das Gateway aktiviert standardmaessig den automatischen Degradierungsschutz fuer Structured Outputs bei allen Anfragen. Wenn ein Modell oder eine Plattform Structured Outputs nicht unterstuetzt, gibt das Gateway keinen Fehler zurueck, sondern entfernt automatisch die Schema-Einschraenkung und markiert den Degradierungsgrund im Response-Header. Ihre Anfrage erhaelt weiterhin eine normale Modellantwort — nur ohne erzwungene Schema-Bindung. Das bedeutet, dass Sie Structured Outputs bedenkenlos clientseitig einheitlich aktivieren koennen, ohne fuer jedes Modell Kompatibilitaetspruefungen durchfuehren zu muessen:- Sorgloses Wechseln zwischen Modellen: Derselbe Code funktioniert beim Wechsel zwischen Claude, GPT, Gemini und GLM — selbst wenn das Zielmodell Structured Outputs nicht unterstuetzt, schlaegt die Anfrage nicht fehl
- Transparentes Fallback-Routing: Wenn der primaere Kanal nicht verfuegbar ist und das Fallback-Routing auf einen Ersatzkanal umleitet, wird die Anfrage auch dann erfolgreich abgeschlossen, wenn die Modellversion des Ersatzkanals Structured Outputs nicht unterstuetzt
- Vereinfachte Client-Logik: Sie muessen keine Liste pflegen, welche Modelle Structured Outputs unterstuetzen — das Gateway uebernimmt dies automatisch; der Client muss lediglich den Response-Header pruefen, um zu entscheiden, ob zusaetzliches Parsing erforderlich ist
Response-Header
| reason | Bedeutung |
|---|---|
model_unsupported | Das Modell (bzw. das Modell auf der aktuellen Plattform) unterstuetzt keine Structured Outputs |
json_object_unsupported_on_anthropic | Der json_object-Modus kann nicht in das Anthropic-Format konvertiert werden |
json_schema_missing_schema | Der Typ json_schema wurde angegeben, aber das schema-Feld fehlt |
schema_keywords_stripped | Bestimmte Constraint-Schluesselwoerter im Schema wurden bereinigt (z. B. minimum, maxLength) |
Erkennungsbeispiel
Unterschied zum json_object-Modus
json_schema (Structured Outputs) | json_object | |
|---|---|---|
| Ausgabegarantie | Strikte Uebereinstimmung mit dem angegebenen Schema | Nur garantiert gueltiges JSON |
| Feldkontrolle | Feldnamen, Typen und Pflichtangaben sind eingeschraenkt | Keine Einschraenkungen |
| Unterstuetzte Protokolle | OpenAI / Anthropic / Responses | Nur OpenAI-kompatible Protokolle |
| Claude-Unterstuetzung | Ueber output_config.format | Nicht unterstuetzt |
Haeufig gestellte Fragen
Welche Modelle unterstuetzen Structured Outputs?
Welche Modelle unterstuetzen Structured Outputs?
output_config.format der Anthropic API):- Opus / Sonnet / Haiku 4.5 und hoeher
- Fable / Mythos 5 und hoeher
- Bedrock-Plattform nur 4.5—4.6; Vertex AI wie Direktverbindung
response_format):- GPT-4o und hoeher, GPT-5 Serie
responseSchema):- Gemini 2.5 und hoeher
Warum unterstuetzen einige Claude-Modelle auf Bedrock keine Structured Outputs?
Warum unterstuetzen einige Claude-Modelle auf Bedrock keine Structured Outputs?
output_config.format derzeit nicht akzeptiert. Das Gateway behandelt dies automatisch: Es entfernt das format-Feld und liefert die Antwort normal zurueck, wobei gleichzeitig der Degradierungs-Header X-Structured-Output-Degraded: model_unsupported gesetzt wird. Claude 4.5—4.6 wird auf Bedrock vollstaendig unterstuetzt.Wird das JSON Schema bei protokolluebergreifenden Aufrufen modifiziert?
Wird das JSON Schema bei protokolluebergreifenden Aufrufen modifiziert?
- Konvertierung von
response_formatnachoutput_config.format - Entfernung von Anthropic-inkompatiblen Schema-Schluesselwoertern (
minimum,maxLengthetc.) - Falls Schluesselwoerter bereinigt wurden, Markierung im Response-Header mit
schema_keywords_stripped
Koennen Structured Outputs und Extended Thinking gleichzeitig verwendet werden?
Koennen Structured Outputs und Extended Thinking gleichzeitig verwendet werden?
format (Structured Outputs) in output_config und effort (Denkintensitaet) in reasoning sind unabhaengige Parameter und koennen gleichzeitig gesetzt werden:Wie unterscheidet sich der Degradierungsmechanismus im Vergleich zu anderen Aggregationsplattformen wie OpenRouter?
Wie unterscheidet sich der Degradierungsmechanismus im Vergleich zu anderen Aggregationsplattformen wie OpenRouter?
X-Structured-Output-Degraded wird der Client ueber den Degradierungsgrund informiert. Ihre Anwendung wird dadurch nicht unterbrochen.