JSON-Schema zu LLM-Tool-Definition: OpenAI, Claude, Gemini
Du baust eine App, in der der Bot deine Funktion ausführen kann (Wetter prüfen, etwas in einer Datenbank speichern, eine E-Mail senden). Der offizielle Name ist function calling (OpenAI und Google) oder tool use (Anthropic). Um dem Bot zu sagen, was er aufrufen kann, beschreibst du jede Funktion in JSON-Schema, einem Format, das der Bot versteht: *"das ist der Funktionsname, das sind ihre Argumente, das sind die Pflichttypen"*.
Das Problem: jeder Anbieter bleibt bei seinem eigenen Format. OpenAI packt das Schema in `{ type: "function", function: {...} }`. Anthropic nutzt `input_schema` statt `parameters`. Google Gemini stopft alles in ein `functionDeclarations`-Array. Selbes Konzept, drei verschiedene Syntaxen.
Paste dein JSON-Schema einmal, bekomm ready-to-use Definitionen für alle drei Anbieter. Plus ein fertiges TypeScript-Snippet mit dem API-Aufruf (`chat.completions.create`, `messages.create`, `generateContent`), wirf es in deinen Code und du bist fertig.
So nutzt du den Konverter
- Paste das JSON-Schema deiner Funktion. Braucht drei Felder: `name` (der Name), `description` (was sie macht) und `parameters` (welche Argumente sie nimmt).
- Der Validator prüft das Schema beim Tippen. Grünes OK = alles passt, roter Fehler = wir zeigen genau, was falsch ist.
- Wähl den Ziel-Anbieter: OpenAI, Anthropic oder Gemini.
- JSON only / Code-Sample-Schalter: das erste gibt dir das nackte Schema, das zweite ein fertiges TypeScript-Snippet mit dem API-Aufruf.
- Kopier das Ergebnis. Paste es in deinen Code, in curl, in Postman, wo immer du es brauchst.
Wann das nützlich ist
Sechs typische Situationen, in denen dieser Konverter dir einen konkreten Vorsprung gibt:
- Migration von OpenAI zu Claude (oder zu Gemini). Deine App hat 50 Funktionen für GPT-4o definiert, der Kunde will zu Claude wechseln. Statt jedes Schema per Hand umzuschreiben (und Tippfehler zu machen), schickst du sie nacheinander durch den Konverter, fertig.
- App, die mehrere Modelle gleichzeitig nutzt. Ein günstiges für einfache Aufgaben, ein teureres für schwere. Jedes braucht das Schema in seinem eigenen Format. Eine Quelle der Wahrheit (dein JSON-Schema) → drei konsistente Versionen am Ausgang.
- Junior-Dev lernt function calling. Drei Doku-Sätze lesen dauert eine Stunde, die du nicht hast. Hier siehst du sofort: *"so sieht es bei OpenAI aus, so bei Claude, so bei Gemini"*. Fünf Minuten und du verstehst die Unterschiede.
- Schneller Prototyp. Eine Idee für eine Funktion testen. Starte mit OpenAI (günstiger, schneller), funktioniert? Konvertier zu Claude (bessere Qualität bei komplexeren Anfragen). Kein Neuschreiben von Grund auf.
- Eine API für Kunden dokumentieren. Du hast eine öffentliche API und willst, dass Kunden sie in ein LLM einbinden können. Du generierst drei Versionen (OpenAI, Anthropic, Gemini) und legst sie in deine Doku, lass die Kunden wählen, was passt.
- *"Mein Bot ruft meine Funktion nicht auf"*. Klassisches Junior-Problem. Grund Nr. 1: ein Bug im Schema (Tippfehler in `type`, falsche Verschachtelung, fehlendes Feld). Der Validator hier markiert es sofort, bevor du eine Anfrage an die API schickst und für einen kaputten Aufruf bezahlst.