Nachdem du deine Tool-Funktion geschrieben hast, besteht der nächste Schritt darin, ein JSON-Schema zu erstellen, das Claude mitteilt, welche Argumente deine Funktion erwartet und wie sie zu verwenden ist. Dieses Schema dient als Dokumentation, die Claude liest, um zu verstehen, wann und wie deine Tools aufgerufen werden sollen.
JSON Schema verstehen
JSON Schema ist nicht spezifisch für KI oder Tool-Aufrufe - es ist eine weit verbreitete Spezifikation zur Datenvalidierung, die es schon seit Jahren gibt. Die KI-Community hat sie übernommen, weil sie eine praktische Möglichkeit bietet, Funktionsparameter zu beschreiben und Daten zu validieren.

Die vollständige Tool-Spezifikation besteht aus drei Hauptteilen:
- name - Ein klarer, beschreibender Name für dein Tool (wie „get_weather")
- description - Was das Tool macht, wann es verwendet werden soll und was es zurückgibt
- input_schema - Das eigentliche JSON-Schema, das die Argumente der Funktion beschreibt
Effektive Beschreibungen schreiben
Deine Tool-Beschreibung ist entscheidend dafür, dass Claude versteht, wann deine Funktion verwendet werden soll. Zu den Best Practices gehören:
- Strebe 3-4 Sätze an, die erklären, was das Tool macht
- Beschreibe, wann Claude es verwenden sollte
- Erkläre, welche Art von Daten es zurückgibt
- Stelle detaillierte Beschreibungen für jedes Argument bereit

Der einfache Weg, Schemas zu generieren
Anstatt JSON-Schemas von Grund auf zu schreiben, kannst du Claude selbst verwenden, um sie zu generieren. Hier ist der Ablauf:
- Kopiere deinen Tool-Funktionscode
- Gehe zu Claude und bitte es, ein JSON-Schema für Tool-Aufrufe zu schreiben
- Füge die Anthropic-Dokumentation zur Tool-Nutzung als Kontext hinzu
- Lass Claude ein korrekt formatiertes Schema generieren, das den Best Practices folgt
Der Prompt sollte etwa so aussehen: „Schreibe eine gültige JSON-Schema-Spezifikation für Tool-Aufrufe für diese Funktion. Befolge die Best Practices, die in der angehängten Dokumentation aufgeführt sind."

Das Schema im Code implementieren
Sobald Claude dein Schema generiert hat, kopiere es in deine Code-Datei. Hier ist ein gutes Namensmuster, dem du folgen kannst:
def get_current_datetime(date_format="%Y-%m-%d %H:%M:%S"):
if not date_format:
raise ValueError("date_format cannot be empty")
return datetime.now().strftime(date_format)
get_current_datetime_schema = {
"name": "get_current_datetime",
"description": "Returns the current date and time formatted according to the specified format",
"input_schema": {
"type": "object",
"properties": {
"date_format": {
"type": "string",
"description": "A string specifying the format of the returned datetime. Uses Python's strftime format codes.",
"default": "%Y-%m-%d %H:%M:%S"
}
},
"required": []
}
}Verwende das Muster function_name gefolgt von function_name_schema, um deine Schemas organisiert zu halten und sie leicht mit den entsprechenden Funktionen abzugleichen.
Typsicherheit hinzufügen
Für eine bessere Typprüfung importiere und verwende den Typ ToolParam aus der Anthropic-Bibliothek:
from anthropic.types import ToolParam
get_current_datetime_schema = ToolParam({
"name": "get_current_datetime",
"description": "Returns the current date and time formatted according to the specified format",
# ... Rest des Schemas
})Obwohl dies für die Funktionalität nicht unbedingt notwendig ist, verhindert es Typfehler, wenn du das Schema mit Claudes API verwendest, und macht deinen Code robuster.