Letzten Monat habe ich zweimal dieselbe Extraktionsaufgabe gegen Claude Sonnet 3.5 ausgeführt. Erster Versuch: unstrukturierter Prompt, 67 % Genauigkeit. Zweiter Versuch: strukturiertes Ausgabeformat mit Schema-Validierung, 94 % Genauigkeit. Dasselbe Modell, dieselben Daten, null Feinabstimmung. Der einzige Unterschied war, wie ich gefragt habe.
Strukturiertes Prompting ist kein neues Konzept. Aber die meisten Leute nutzen es falsch – oder gar nicht. Sie bitten ein Modell, „JSON zurückzugeben“, und wundern sich, warum die Ausgabe fehlerhaft ankommt. Sie definieren ein Schema, vergessen aber, die Felder einzuschränken. Sie fügen dem Prompt Struktur hinzu, ohne dies in den Ausgabeanforderungen abzugleichen.
Dieser Artikel behandelt das Framework, das AlgoVesta von ständigen Ausgabeparsing-Fehlern zu Produktionssystemen überführt hat, die wochenlang unbeaufsichtigt laufen. Es ist keine Magie. Es ist ingenieurtechnische Disziplin, angewendet auf die Art und Weise, wie Sie mit LLMs sprechen.
Was strukturiertes Prompting wirklich ist (und nicht ist)
Strukturiertes Prompting ist eine Technik, bei der Sie das exakte Format, die Felder, Einschränkungen und Validierungsregeln definieren, denen Ihre Ausgabe folgen muss – und diese Regeln dann in den Prompt selbst einbetten.
Dies unterscheidet sich von:
- JSON anfordern: „Gib JSON zurück“ ohne Schemadetails. Modelle werden es versuchen, aber inkonsistent.
- Funktionsaufrufe verwenden: Funktionsaufrufe sind ein Werkzeug zur Erzwingung der Ausgabe-Struktur auf API-Ebene. Strukturiertes Prompting ist eine Prompt-Technik, die mit oder ohne Funktionsaufrufe funktioniert.
- Prompt-Templating: Einfüllen von Variablen in eine statische Vorlage. Das ist Dateneinfügung, keine Struktur.
Strukturiertes Prompting funktioniert, weil Modelle besser logisch schlussfolgern, wenn Einschränkungen explizit sind. Sie haben Tausende von Beispielen gesehen, bei denen ein bestimmtes Format zu bestimmten Ausgaben führte. Wenn Sie dieses Format angeben, aktivieren Sie erlernte Muster.
Echtes Beispiel aus der Produktion: Eine Finanzextraktionspipeline musste Handelsdaten aus Transkripten von Earnings Calls extrahieren. Ohne Struktur gab Claude 4–7 zusätzliche Felder zurück, die ich nicht angefordert hatte, Datumsformate fehlten und die Dezimalpräzision war inkonsistent. Mit einem im Prompt eingebetteten Schema gab es jedes Mal genau das zurück, was ich spezifiziert hatte.
Das Kern-Framework: Vier Ebenen der Struktur
Dies ist das Muster, das tatsächlich skaliert:
- Schema-Definition – Definieren Sie, welche Felder existieren und ihre Typen
- Einschränkungsspezifikation – Definieren Sie gültige Werte, Bereiche, Formate
- Ausgabe-Vorlage – Zeigen Sie die erwartete exakte Struktur
- Validierungsregeln – Machen Sie dem Modell bewusst, was die Ausgabe ungültig macht
Jede Ebene verstärkt die anderen. Eine fehlt, und das Modell driftet ab.
Ebene 1: Schema-Definition
Beginnen Sie damit, die benötigten Daten zu definieren. Seien Sie spezifisch bei den Typen:
# Schlechte Schema-Definition
Gib Informationen über das Unternehmen zurück.
# Bessere Schema-Definition
Extrahiere die folgenden Felder:
- company_name (string, erforderlich)
- founded_year (integer, 4 Ziffern)
- headquarters_location (string, Stadt und Land)
- revenue_usd (number, in Millionen)
Die zweite Version gibt dem Modell etwas Konkretes. Es kennt die Typen, die es produzieren soll.
Ebene 2: Einschränkungsspezifikation
Typen allein reichen nicht aus. Fügen Sie Regeln hinzu, welche Werte akzeptabel sind:
# Schema mit Einschränkungen
- company_name (string, erforderlich, max. 100 Zeichen)
- founded_year (integer, muss zwischen 1800 und 2025 liegen)
- headquarters_location (string, Format: nur „Stadt, Land“)
- revenue_usd (number, muss positiv sein, null wenn unbekannt)
Diese Einschränkungen reduzieren Halluzinationen. Das Modell weiß jetzt, was eine gültige Ausgabe ungültig macht. In Tests sank die Einhaltung von Einschränkungsverstößen bei Claude Sonnet 3.5 von ca. 12 % auf ca. 2 % mit expliziten Regeln.
Ebene 3: Ausgabe-Vorlage
Zeigen, nicht nur sagen. Geben Sie ein Beispiel dafür, wie eine gültige Ausgabe aussieht:
AUSGABEFORMAT (dies ist die exakte Struktur, der Sie folgen müssen):
{