
Was ist Structured Outputs?
Structured Outputs ist eine Technik, die die Antwort eines Sprachmodells zwingt, einem vom Entwickler bereitgestellten Schema zu entsprechen, typischerweise JSON Schema, sodass nachgelagerter Code sie ohne defensives Raten parsen kann. Statt zu hoffen, dass das Modell seine Antwort korrekt formatiert, schränkt die API die Generierung so ein, dass nur schema-valider Output möglich ist.
Die wichtigsten Punkte
- Die Garantie ist syntaktisch, zur Generierungszeit erzwungen. Constrained Decoding maskiert jedes Token, das das Schema verletzen würde, sodass der Output immer parst und immer der deklarierten Form entspricht.
- Valide Struktur bedeutet nicht korrekten Inhalt. Das Modell kann weiterhin einen falschen Wert in ein perfekt typisiertes Feld setzen, sodass Evals und Bedeutungs-Validierung weiterhin Ihre Aufgabe bleiben.
- Structured Outputs ist das, was LLMs mit gewöhnlicher Software komponierbar macht. Pipelines, Datenbanken, und UIs konsumieren Modell-Output als Daten statt Prosa zu parsen.
- Dieselbe Maschinerie treibt zuverlässiges Tool Calling an, da ein Tool-Aufruf selbst ein schema-eingeschränktes Objekt ist.
- Alle großen Anbieter liefern es 2026 aus, meist direkt JSON Schema akzeptierend oder über typisierte Bindings wie Pydantic und Zod in den SDKs.
So funktioniert es
Ein Sprachmodell generiert ein Token nach dem anderen, indem es aus einer Wahrscheinlichkeitsverteilung über sein Vokabular samplet. Constrained Decoding greift in diesen Schritt ein. Der Anbieter kompiliert Ihr Schema zu einer Grammatik, und an jeder Position maskiert die Engine jedes Token, das keine valide Fortsetzung beginnen könnte. Wenn das Schema sagt, das Nächste muss ein Schlüssel namens "severity" sein, dessen Wert einer von drei Enum-Strings ist, sind Tokens, die alles andere produzieren würden, schlicht nicht zum Sampeln verfügbar. Das Modell wählt weiterhin unter dem, was bleibt, sodass das Ergebnis gleichzeitig flüssig und schema-valide ist.
Entwickelnde arbeiten meist eine Ebene darüber. Sie definieren einen Typ in Ihrer Sprache, ein Pydantic-Modell in Python oder ein Zod-Schema in TypeScript, und das SDK konvertiert es zu JSON Schema, sendet es mit der Anfrage, und deserialisiert die garantiert valide Antwort zurück in ein typisiertes Objekt. Das schließt die Schleife, die früher der brüchige Teil des LLM-Engineerings war: keine Regex-Extraktion aus Markdown-Fences, keine Retry-Schleifen für abgeschnittenes JSON, kein try/except um jedes Parsing.
Die praktischen Vorbehalte betreffen Semantik und Ausdrucksstärke. Schema-Konformität sagt nichts über Wahrheit aus, sodass ein Modell einen selbstbewusst falschen Wert im richtigen Feld zurückgeben kann, und ein überengtes Schema kann das sogar begünstigen, indem es eine Antwort erzwingt, wo "unbekannt" ehrlich gewesen wäre. Gute Schemas lassen Raum für Unsicherheit mit optionalen oder nullable Feldern. Anbieter-Support für JSON Schema ist auch partiell: bestimmte Keywords und tief rekursive Formen können abgelehnt oder ignoriert werden, weshalb Schemas am besten flach und explizit gehalten werden.
Beispiel
Ein Team baut eine Triage-Pipeline, die eingehende Bug-Reports liest und Tickets anlegt. Sie definieren ein Schema: title (String, max. 80 Zeichen), severity (Enum: critical, major, minor), component (Enum von zwölf Services), reproduction_steps (Array von Strings), duplicate_of (nullable Ticket-ID). Jeder Report läuft mit diesem angehängten Schema durch das Modell, und der Output fällt direkt in die Ticketing-API, ohne Parsing-Schicht. Vor Structured Outputs brach dieselbe Pipeline wöchentlich an markdown-verpacktem JSON und erfundenen Severity-Labels wie "high-ish". Danach verschwand fehlerhafter Output als Fehlerklasse, und die verbleibenden Fehler waren semantischer Natur, wie falsch eingeschätzte Severity, die sie jetzt mit einer kleinen Eval-Suite fangen.
Häufige Missverständnisse
Der wiederkehrende Fehler ist, "garantiert valide" als "garantiert richtig" zu lesen. Structured Outputs eliminiert Format-Fehler, und Teams hören dann still auf, Inhalt zu prüfen, weil die Pipeline nie mehr abstürzt. Das tauscht laute Fehlschläge gegen stille. Ein halluzinierter Komponentenname ist unmöglich, wenn das Feld ein Enum ist, aber eine falsche Wahl unter validen Enum-Werten ist es nicht, und sie fließt stromabwärts, während sie autoritativ aussieht. Halten Sie semantische Validierung und Evals in Kraft; das Schema handhabt die Form, sonst nichts.
JSON-Modus
JSON-Modus ist der Vorgänger und schwächere Geschwisterteil von Structured Outputs, und viele APIs bieten weiterhin beide. Im JSON-Modus wird das Modell darauf eingeschränkt, syntaktisch valides JSON auszugeben, aber kein Schema wird erzwungen: Schlüssel können fehlen, umbenannt oder überzählig sein, und Typen können zwischen Aufrufen driften. Es löste das Parse-Fehler-Problem, während es das Form-Problem offenließ, was bedeutete, dass Anwendungscode weiterhin alles im Nachhinein validierte. Die Lücke, die es überdeckt, ist real: Eine StructuredRAG-Studie von 2024 maß eine durchschnittliche Erfolgsrate von 82,55 % über 24 Experimente, die JSON-Response-Formatierung testeten, mit Pro-Aufgaben-Leistung, die von 0 % bis 100 % reichte [1]. Structured Outputs subsumiert es, indem es Ihr exaktes Schema während des Decodings erzwingt. 2026 überlebt der JSON-Modus hauptsächlich für schnelle explorative Arbeit, wo ein Schema zu definieren den Aufwand nicht wert ist, und Anbieter-Dokumentation lenkt Produktionsnutzung zu schema-erzwungenen Outputs. Wenn Sie eine JSON-Modus-Antwort gegen ein Schema validieren und bei Fehlschlag erneut versuchen, bauen Sie von Hand, was Structured Outputs bereits tut.
FAQ
Schadet die Nutzung von Structured Outputs der Antwortqualität? Strenge Einschränkungen können mit Reasoning interagieren, da sich das Modell auf eine starre Form festlegen muss, während es denkt. Eine Studie von 2024 zu Format-Einschränkungen fand, dass GPT-3.5-Turbos GSM8K-Genauigkeit von 76,60 % in natürlicher Sprache auf 49,25 % fiel, wenn es in JSON gezwungen wurde, ein Rückgang um 27 Punkte [2]. Eine übliche Abschwächung ist, ein Freitext-Feld für Reasoning vor den Antwort-Feldern einzuschließen, oder das Modell in einem ersten Durchgang reasonen zu lassen und Struktur in einem zweiten zu extrahieren.
Kann ich Structured Outputs für Streaming-Antworten nutzen? Ja. Anbieter streamen schema-eingeschränkte Tokens wie jede anderen, und SDKs können teilweise befüllte Objekte darstellen, während Felder sich vervollständigen. Der konsumierende Code muss nur unvollständige Objekte tolerieren, bis der Stream endet.
Wann sollte ich Tool Calling statt Structured Outputs nutzen? Nutzen Sie Tool Calling, wenn das Modell entscheiden soll, ob und welche Funktion es als Teil einer Agentenschleife aufruft. Nutzen Sie Structured Outputs, wenn Sie immer genau eine Antwort in einer bekannten Form wollen, etwa Extraktion, Klassifikation, oder Berichtsgenerierung.
Quellen
- arXiv. "StructuredRAG: JSON Response Formatting with Large Language Models, Erfolgsraten über 24 Experimente." https://arxiv.org/abs/2408.11061. Abgerufen im August 2026.
- arXiv. "Let Me Speak Freely? A Study on the Impact of Format Restrictions on Performance of Large Language Models, GSM8K-Genauigkeit unter JSON-Formatierung." https://arxiv.org/html/2408.02442v1. Abgerufen im August 2026.
Related terms
Ready to build your product?

