Verlässliches JSON aus jeder AI, damit Deine Automation nicht bricht
Warum AI-Antworten Deine Automatisierung crashen und wie Du in zehn Schritten ein JSON-Format erzwingst das jedes Mal parst. Provider-unabhängig, mit fertigen Prompt-Bausteinen.
Sobald Du eine AI in eine Automatisierung steckst, brauchst Du kein schönes Fließtext-Ergebnis mehr, sondern Daten die eine Maschine weiterverarbeiten kann. Meistens ist das JSON. Und genau da fangen die Probleme an. Die AI liefert 90 Prozent der Zeit sauberes JSON und beim zehnten Mal packt sie einen netten Einleitungssatz davor, ein Komma zu viel rein oder erklärt hilfsbereit was sie da gerade gemacht hat. Dein n8n-Flow oder Dein Skript versucht das zu parsen, scheitert, und die ganze Kette steht. Dieses Playbook zeigt Dir zehn Schritte mit denen JSON zuverlässig rauskommt. Kein Zauber, nur Handwerk.
Schritt 1, versteh warum es überhaupt bricht
Ein Sprachmodell erzeugt Text, nicht Datenstrukturen. Es hat kein eingebautes Gefühl dafür dass ein fehlendes Anführungszeichen alles kaputt macht. Für das Modell ist "Klar, hier ist Dein JSON:" ein völlig natürlicher, freundlicher Satz. Für Deinen Parser ist es Gift. Der erste Schritt ist zu akzeptieren dass Du dem Modell das Fließtext-Verhalten aktiv abgewöhnen musst. Von allein macht es das nicht.
Schritt 2, gib das Zielformat als Beispiel vor, nicht als Beschreibung
Beschreib nicht in Worten wie das JSON aussehen soll, zeig es. Das ist Few-Shot Prompting angewandt auf Struktur. Häng ein komplettes Beispiel-Objekt in den Prompt, exakt so wie Du es zurückhaben willst:
Antworte ausschliesslich mit einem JSON-Objekt in genau dieser Form:
{
"anliegen": "kurzer Satz",
"dringlichkeit": 3,
"antwort_noetig": true
}
Das Modell kopiert die Form. Ein gezeigtes Beispiel schlägt drei Absätze Erklärung, jedes Mal.
Schritt 3, sag explizit was NICHT rauskommen soll
Der wirksamste einzelne Satz in Deinem Prompt ist das Verbot der Höflichkeit. Schreib wörtlich rein:
Gib NUR das JSON aus. Kein einleitender Text, keine Erklärung,
keine Code-Fences, kein Wort davor oder danach.
Das klingt hart und genau das soll es. Die meisten kaputten Ausgaben entstehen durch ein "Gerne!" davor oder ein "Ich hoffe das hilft" danach. Wenn Du es verbietest, verschwindet es meistens.
Schritt 4, dreh die Kreativität runter
Wenn Deine AI-Schnittstelle einen Temperatur-Wert kennt, setz ihn auf 0 oder nah dran. Temperatur steuert wie viel das Modell würfelt. Für kreatives Schreiben willst Du Würfeln, für strukturierte Daten willst Du das genaue Gegenteil, nämlich langweilige Vorhersagbarkeit. Bei Temperatur 0 nimmt das Modell immer den wahrscheinlichsten nächsten Baustein, und der wahrscheinlichste ist bei einem klaren Format-Prompt genau Dein JSON.
Schritt 5, nutz den JSON-Modus Deines Anbieters, falls vorhanden
Viele API-Anbieter haben mittlerweile einen dedizierten Modus der garantiert gültiges JSON erzwingt, oft über ein festes Schema. Wie dieser Modus genau heißt, welche Parameter er nimmt und ob Dein Anbieter ihn schon hat, ändert sich laufend, deshalb schau in die aktuelle API-Doku Deines konkreten Anbieters unter dem Stichwort Structured Output oder JSON Mode. Wenn es den Modus gibt, nimm ihn, denn er ist zuverlässiger als jeder Prompt-Trick. Die Prompt-Bausteine aus diesem Playbook bleiben trotzdem sinnvoll, weil sie auch dann greifen wenn Du über die Chat-Oberfläche oder ein Tool ohne diesen Modus arbeitest.
Schritt 6, bau einen Validierungs-Schritt direkt hinter die AI
Vertrau der Ausgabe nie blind. Direkt nachdem die AI geantwortet hat, versuch das Ergebnis zu parsen und gegen Dein erwartetes Schema zu prüfen. In n8n machst Du das mit einem Code-Node, in einem Skript mit einem JSON-Parse in einem try-catch. Die Frage ist simpel: Ist das gültiges JSON und hat es die Felder die ich erwarte. Wenn ja, weiter. Wenn nein, geh zu Schritt 7.
Schritt 7, bau eine Retry-Schleife mit der Fehlermeldung
Das ist der Schritt der aus einem wackligen Setup ein robustes macht. Wenn das Parsen scheitert, schick die kaputte Antwort zusammen mit der Fehlermeldung zurück an die AI:
Deine letzte Antwort war kein gültiges JSON.
Fehler: {parser_fehlermeldung}
Gib die Antwort erneut aus, diesmal als reines gültiges JSON,
ohne jeden weiteren Text.
Modelle sind erstaunlich gut darin ihren eigenen Fehler zu korrigieren wenn man ihnen die konkrete Fehlermeldung zeigt. Begrenz die Schleife auf zwei bis drei Versuche, danach brich ab und leg den Fall zur manuellen Prüfung beiseite. Eine Endlosschleife die Geld verbrennt ist schlimmer als ein Fehlschlag.
Schritt 8, entschärfe die typischen Format-Fallen vorher
Ein paar Klassiker die immer wieder auftauchen. Code-Fences, also die drei Backticks mit json davor, packt das Modell gern um die Ausgabe. Wenn Du sie nicht per Prompt verbieten kannst, schneid sie in Deinem Validierungs-Schritt einfach weg bevor Du parst. Kommentare im JSON sind ungültig, verbiete sie explizit. Und deutsche Umlaute in Feldnamen führen manchmal zu Ärger, halt Deine Schlüssel englisch und klein, die Werte dürfen deutsch sein.
Schritt 9, teste mit den fiesen Fällen, nicht mit den einfachen
Dein Setup läuft bei der Standard-Mail durch, klar. Interessant wird es bei den Ausreißern. Eine leere Eingabe. Eine Eingabe in einer anderen Sprache. Eine Eingabe die keine der erwarteten Kategorien trifft. Bau für jeden dieser Fälle einen Test und schau ob trotzdem gültiges JSON rauskommt. Am besten definierst Du im Prompt was passieren soll wenn das Modell unsicher ist, zum Beispiel ein Feld auf null setzen statt zu raten. Sonst erfindet die AI einen Wert und Deine Automation verarbeitet Müll ohne es zu merken.
Schritt 10, logge die Roh-Ausgaben für die ersten Wochen
Schreib in den ersten zwei bis drei Wochen jede AI-Roh-Antwort mit weg, auch die die durchgelaufen sind. So siehst Du wie oft die Retry-Schleife wirklich greift und welche Eingaben Probleme machen. Wenn Du zum Beispiel merkst dass 8 von 100 Antworten einen zweiten Versuch brauchten, weißt Du dass Dein Prompt noch Luft nach oben hat. Wenn es 40 von 100 sind, stimmt was Grundlegendes nicht und Du gehst zurück zu Schritt 2. Ohne dieses Logging tappst Du im Dunkeln und merkst Probleme erst wenn ein Kunde sich beschwert.
Was als nächstes
Wenn Dein JSON zuverlässig steht, ist der logische nächste Schritt es in eine echte Automatisierung zu hängen. Dafür ist Level 3 da, besonders das Kapitel AI in Deine Automatisierung einbauen. Und wenn Du die Beispiele und Prompt-Bausteine aus diesem Playbook nicht jedes Mal neu tippen willst, bau Dir eine Prompt-Bibliothek, wie im gleichnamigen Playbook beschrieben. Ein verlässlicher JSON-Prompt ist Gold wert, den willst Du nicht zwei Mal erfinden.
Source
Die JSON- und Structured-Output-Modi der einzelnen Anbieter ändern sich häufig. Prüfe die konkreten Parameter immer in der offiziellen Doku Deines Anbieters, bevor Du sie fest verdrahtest:
- Anthropic Claude: https://docs.claude.com/en/docs/build-with-claude/tool-use/overview
- OpenAI: https://platform.openai.com/docs/guides/structured-outputs
Die Prompt-Bausteine in diesem Playbook sind provider-unabhängig und funktionieren auch ohne dedizierten API-Modus, etwa in der normalen Chat-Oberfläche.