Tool-Schemas definieren (JSON Schema)
Schreiben Sie JSON-Schema-Definitionen für Tool-Parameter mit Typen, Beschreibungen, Enums und Pflichtfeldern.
Tool-Schemas definieren (JSON Schema) ist eine kostenlose AI Agents-Lektion auf CoddyKit. Dies ist Lektion 2 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.
Tool-Schemas sind JSON Schema
OpenAI, Anthropic und die meisten anderen verwenden JSON Schema für Tool-Parameter.
Wenn Sie OpenAPI / Swagger verwendet haben, kennen Sie bereits 90 % davon.
Die drei erforderlichen Felder
Jede Tool-Definition enthält:
name– eindeutiger Bezeichner (snake_case)description– was das Tool tut und wann es verwendet wirdparameters– JSON Schema der Eingaben
Ein minimales Schema
Ein Objekt mit einem erforderlichen Zeichenkettenfeld:
schema = {
'name': 'search_orders',
'description': 'Find orders by customer email',
'parameters': {
'type': 'object',
'properties': {
'email': {
'type': 'string',
'description': 'Customer email address'
}
},
'required': ['email']
}
}
import json
print(json.dumps(schema, indent=2))
JSON-Schema-Typen
string– Textinteger,number– Zahlenboolean– true/falsearray– Liste (benötigt außerdemitems)object– Dictionary (benötigt außerdemproperties)
Enums für geschlossene Mengen
Verwenden Sie enum, wenn genau N zulässige Werte existieren:
unit_param = {
'unit': {
'type': 'string',
'enum': ['C', 'F'],
'description': 'Temperature unit'
}
}
# The model will only ever output C or F
print(unit_param)
print("Allowed values:", unit_param['unit']['enum'])
Array-Parameter
Legen Sie für Listeneingaben items fest:
tags_param = {
'tags': {
'type': 'array',
'items': {'type': 'string'},
'description': 'List of tags to filter by'
}
}
print(tags_param)
Verschachtelte Objekte
Sie können Objekte verschachteln – halten Sie Schemas für eine zuverlässige Verarbeitung durch das Modell jedoch flach (maximal 2–3 Ebenen):
filter_param = {
'filter': {
'type': 'object',
'properties': {
'min_price': {'type': 'number'},
'in_stock': {'type': 'boolean'}
}
}
}
print(filter_param)
Beschreibungsfelder sind entscheidend
Das Modell wählt Tools aus und füllt Argumente anhand von description aus. Behandeln Sie Beschreibungen wie API-Dokumentation:
# Bad
bad = {'description': 'gets data'}
# Good
good = {'description': 'Fetch the most recent 50 orders for the given customer email. Returns order_id, status, total. Use this when the user asks about their order history or order status.'}
print("Bad description:", bad['description'])
print("Good description:", good['description'])
required-Array
Kennzeichnen Sie erforderliche Felder explizit. Das Modell füllt diese immer aus; optionale Felder werden nur ausgefüllt, wenn sie relevant sind:
tool_params = {
'parameters': {
'properties': {
'city': {'type': 'string'},
'unit': {'type': 'string', 'enum': ['C', 'F']}
},
'required': ['city']
}
}
print(tool_params)
print("Required fields:", tool_params['parameters']['required'])
Pydantic -> JSON Schema
Sie können Schemas automatisch aus Pydantic-Modellen generieren:
from pydantic import BaseModel, Field
class SearchArgs(BaseModel):
email: str = Field(description='Customer email')
limit: int = Field(50, description='Max orders to return')
schema = SearchArgs.model_json_schema()Strict Mode (OpenAI Structured Outputs)
Das Hinzufügen von strict: true und additionalProperties: false garantiert, dass die Modellausgabe exakt dem Schema entspricht:
tools = [{
'type': 'function',
'function': {
'name': 'get_weather',
'strict': True,
'parameters': {
'type': 'object',
'properties': {'city': {'type': 'string'}},
'required': ['city'],
'additionalProperties': False
}
}
}]
import json
print(json.dumps(tools, indent=2))
Bedeutung der Beschreibung
Warum ist die description eines Tools so wichtig?
Zusammenfassung
Schemas steuern das Modell. Gute Beschreibungen, Enums für geschlossene Mengen, required-Arrays und der Strict Mode sind Ihre Stellschrauben für Zuverlässigkeit.
Häufig gestellte Fragen
Ist die Lektion „Tool-Schemas definieren (JSON Schema)“ kostenlos?
Ja — der vollständige Text von „Tool-Schemas definieren (JSON Schema)“ 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 „Tool-Schemas definieren (JSON Schema)“?
Schreiben Sie JSON-Schema-Definitionen für Tool-Parameter mit Typen, Beschreibungen, Enums und Pflichtfeldern. 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 2 von 4.
Wie lange dauert die Lektion „Tool-Schemas definieren (JSON Schema)“?
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
- So funktioniert Function Calling
- Tool-Schemas definieren (JSON Schema)
- Tools zur Laufzeit auswählen
- Ergebnisse an das Modell zurückgeben