JSON-Modus und Tool-Call-Ausgaben
Verwenden Sie response_format={'type':'json_object'} oder einen einzelnen Tool-Aufruf, um maschinenlesbare Ausgaben zu erzwingen.
JSON-Modus und Tool-Call-Ausgaben ist eine kostenlose AI Agents-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des AI Agents-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.
Die Notwendigkeit strukturierter Ausgaben
Freier Text von LLMs ist für Code ungeeignet. Produktionsagenten benötigen analysierbare Ausgaben: JSON, XML, Funktionsargumente – niemals „die Antwort lautet …“
JSON-Modus (OpenAI)
Sagen Sie dem Modell: „Gib immer JSON zurück“:
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[
{'role': 'system', 'content': 'Return a JSON object with name and age.'},
{'role': 'user', 'content': 'Alice, 30 years old.'}
],
response_format={'type': 'json_object'}
)
import json
data = json.loads(response.choices[0].message.content)Einschränkung des JSON-Modus
Der JSON-Modus garantiert nur gültiges JSON – nicht Ihre STRUKTUR. Das Modell könnte {} oder {"foo": "bar"} zurückgeben. Validieren Sie daher immer auch die Struktur.
Structured Outputs (Strict)
OpenAI Structured Outputs garantiert, dass die Antwort einem JSON Schema entspricht:
schema = {
'name': 'person',
'schema': {
'type': 'object',
'properties': {
'name': {'type': 'string'},
'age': {'type': 'integer'}
},
'required': ['name', 'age'],
'additionalProperties': False
},
'strict': True
}
response = client.chat.completions.create(
model='gpt-4o-2024-08-06',
messages=...,
response_format={'type': 'json_schema', 'json_schema': schema}
)Funktionsweise des Strict-Modus
Der Strict-Modus schränkt den Decoder so ein, dass das Modell buchstäblich kein ungültiges Token erzeugen kann. Die Ausgabe entspricht zu 100 % dem Schema.
Tool-Aufrufe als strukturierte Ausgabe
Sie können einen bestimmten Tool-Aufruf erzwingen, um strukturierte Daten zu extrahieren:
tools = [{'type': 'function', 'function': {
'name': 'submit_person',
'parameters': {
'type': 'object',
'properties': {'name': {'type': 'string'}, 'age': {'type': 'integer'}},
'required': ['name', 'age']
}
}}]
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=...,
tools=tools,
tool_choice={'type': 'function', 'function': {'name': 'submit_person'}}
)
args = json.loads(response.choices[0].message.tool_calls[0].function.arguments)Anthropic-Tool-Nutzung als Ausgabe
Anthropic verwendet dasselbe Muster mit tool_choice="tool":
tool_choice = {'type': 'tool', 'name': 'submit_person'}
print(tool_choice)
JSON durch Vorbefüllen (Anthropic)
Bei Claude ohne Tools füllen Sie den Assistant-Turn mit { vor:
messages = [
{'role': 'user', 'content': 'Give me JSON for Alice, 30.'},
{'role': 'assistant', 'content': '{'}
]
# Output starts with { and likely produces valid JSON.
for m in messages:
print(f"{m['role']}: {m['content']}")
print("Output starts with { and likely produces valid JSON.")
Pydantic + Strict-Modus
Das OpenAI Python SDK bietet eine Abkürzung für Pydantic:
from pydantic import BaseModel
class Person(BaseModel):
name: str
age: int
response = client.beta.chat.completions.parse(
model='gpt-4o-2024-08-06',
messages=...,
response_format=Person
)
person = response.choices[0].message.parsed
# Pydantic instance, type-safeHäufige Fallstricke
- JSON-Modus ohne Strict-Modus – das Modell kann die falsche Struktur zurückgeben
additionalProperties: falseim Strict-Modus vergessen- Erforderliche Felder sind nicht im Array "required" aufgeführt
- Der Strict-Modus ist nur ab gpt-4o-2024-08-06 verfügbar
Kosten strukturierter Ausgaben
Der Strict-Modus verursacht durch die grammatikbeschränkte Dekodierung einen geringfügigen Mehraufwand – im Vergleich zum Qualitätsgewinn ist er vernachlässigbar. Aktivieren Sie ihn immer, wenn die Struktur wichtig ist.
Mit Validierung kombinieren
Auch Strict-Ausgaben sollten anschließend mit Pydantic validiert werden. Mehrschichtige Absicherung – so werden Randfälle wie Ganzzahlen außerhalb des zulässigen Bereichs erkannt.
Garantie des Strict-Modus
Was garantiert OpenAI Structured Outputs (Strict-Modus)?
Zusammenfassung
Der JSON-Modus dient für eine permissive Struktur, Strict Outputs für garantierte Strukturen, Tool-Aufrufe für denselben Effekt und Anthropic-Vorbefüllung für Claude. Validieren Sie danach immer.
Häufig gestellte Fragen
Ist die Lektion „JSON-Modus und Tool-Call-Ausgaben“ kostenlos?
Ja — der vollständige Text von „JSON-Modus und Tool-Call-Ausgaben“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AI Agents-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „JSON-Modus und Tool-Call-Ausgaben“?
Verwenden Sie response_format={'type':'json_object'} oder einen einzelnen Tool-Aufruf, um maschinenlesbare Ausgaben zu erzwingen. Du übst AI Agents mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um AI Agents zu starten?
Keine Vorkenntnisse erforderlich. AI Agents auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „JSON-Modus und Tool-Call-Ausgaben“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser AI Agents-Lektion Code schreiben und ausführen?
Ja. Jede AI Agents-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- JSON-Modus und Tool-Call-Ausgaben
- Pydantic-Schema-Validierung
- Reparaturschleifen für fehlerhafte Ausgaben
- Instructor / Outlines für garantierte Strukturen