Prompt Chaining heißt, eine Aufgabe in eine Folge von Prompts zu zerlegen, bei der die Ausgabe eines Prompts Teil des Inputs für den nächsten wird. Statt ein Modell zu bitten, fünfzig Bewertungen zu lesen, die Probleme zu finden, sie zu ordnen und in einem Rutsch einen Bericht zu schreiben, fragst du nach jedem davon der Reihe nach. Jeder Prompt hat eine Aufgabe, und zwischen den Schritten kannst du (oder dein Code) das Ergebnis ansehen, korrigieren oder abbrechen.
Der Block unten ist eine Kette aus drei Schritten, die Kundenbewertungen in eine Notiz für ein Produktteam verwandelt. Jeder Tab ist ein Schritt. Der Input von Schritt 2 ist die eingefügte Antwort auf Schritt 1, und der Input von Schritt 3 ist die Antwort auf Schritt 2.
[
{"review": 1, "complaint": "Akku nach 4 Stunden leer"},
{"review": 1, "complaint": "Ladekabel zu kurz"},
{"review": 2, "complaint": "App loggt ständig aus"},
{"review": 3, "complaint": "Akku hält den Heimweg nicht durch"},
{"review": 4, "complaint": "App beim Koppeln abgestürzt"},
{"review": 4, "complaint": "Akku schnell leer"},
{"review": 5, "complaint": "Kabel zu kurz für Nutzung beim Laden"}
]
Schritt 1 liest und extrahiert nur. Schritt 2 sieht die Bewertungen nie, nur die Liste, und kann deshalb nicht zurück ins Zusammenfassen driften. Schritt 3 schreibt nur. Wenn Schritt 3 im falschen Ton zurückkommt, führst du nur Schritt 3 neu aus; Extraktion und Gruppierung bleiben, wie sie waren.
Achte darauf, was Schritt 3 nicht sagt: dass ein Akku nach 4 Stunden leer war oder dass die App-Probleme Logouts und Abstürze waren. Schritt 3 hat nur die Themennamen bekommen, also standen diese Details nicht in seinem Input. Zu entscheiden, was jeder Schritt bekommt, ist die wichtigste Designentscheidung in einer Kette, und ein Detail, das in der Endantwort stehen soll, muss bis ganz nach unten durchgereicht werden.
Warum eine Kette statt eines großen Prompts
Jeder Schritt hat eine Aufgabe und einen Maßstab. Ein einzelner Prompt, der Extraktion, Analyse und ausgefeilten Text verlangt, muss drei Ziele ausbalancieren, und nichts verrät dir, welches er abgekürzt hat. Ein Prompt mit einer Aufgabe kann genau sagen, wie ein gutes Ergebnis für diese Aufgabe aussieht, und du kannst die Antwort daran messen.
Du kannst die Mitte prüfen. In einem einzelnen Prompt verschwindet eine übersehene Beschwerde in einem schön geschriebenen Absatz, und du siehst sie nie. In einer Kette liegt die Liste aus Schritt 1 direkt vor dir. Sie zu prüfen dauert Sekunden, und sie vor Schritt 2 zu korrigieren ist billiger, als den Fehler im fertigen Bericht zu finden.
Jeder Schritt kann eigene Einstellungen nutzen. Extraktion und Gruppierung wollen eine niedrige Temperature und strukturierte Ausgabe, die Code parsen kann. Der Schreibschritt darf freier sein. Im Code kannst du verschiedene Schritte sogar an verschiedene Modelle schicken, etwa an ein kleines, schnelles für die Extraktion.
Fehler bleiben lokal. Wenn eine Kette bricht, weißt du, welcher Schritt gebrochen ist, und führst nur diesen neu aus.
Die Kosten sind aber auch echt. Eine Kette macht mehr Aufrufe, dauert also länger und kostet mehr als ein Prompt. Und ein Fehler, der durch einen frühen Schritt rutscht, wird in jeden späteren mitgeschleppt, deshalb lohnt es sich, die Schritte dazwischen zu prüfen.
So entwirfst du eine Kette
- Schreib die Schritte auf, die du von Hand machen würdest. Wenn du erst eine Liste machen, sie dann sortieren und dann aufschreiben würdest, sind das drei Prompts. Schritte, die verschiedene Arten von Denken brauchen, sind die natürlichen Trennstellen.
- Leg das Ausgabeformat jedes Schritts fest, bevor du seinen Prompt schreibst. Was der nächste Schritt verarbeitet, sollte leicht zu lesen und leicht zu prüfen sein: ein JSON-Array, eine nummerierte Liste, eine Tabelle. Freier Fließtext passt nur für den letzten Schritt.
- Gib nur weiter, was der nächste Schritt braucht. Schritt 2 oben bekommt die Beschwerdeliste, nicht die Bewertungen. Weniger Input heißt weniger Ablenkung, und jeder Schritt lässt sich für sich testen.
- Bau eine Prüfung zwischen den Schritten ein. Im Code parst du das JSON und bestätigst, dass die Felder da sind. Bei Ermessensfragen kann eine Prüfung selbst ein Prompt sein: "Enthält diese Liste jede Beschwerde aus diesen Bewertungen? Antworte mit Ja oder Nein und liste dann alle fehlenden auf."
- Markiere eingefügtes Material deutlich. Der Input jedes Schritts ist Text, den ein früherer Schritt erzeugt hat, und Trennzeichen verhindern, dass das Modell ihn als neue Anweisungen liest.
Hier ist ein Prüfschritt für die Kette oben, angewendet auf eine Version der Ausgabe von Schritt 1, in der eine Beschwerde fehlt. Eine solche Prüfung ist ein eigener Prompt mit einer engen Frage, also leichter richtig hinzubekommen als die Extraktion selbst.
Unvollständig
- Bewertung 4: der Akku ist schnell leer
Wenn die Prüfung "Unvollständig" sagt, führ Schritt 1 neu aus oder ergänze den fehlenden Punkt von Hand, bevor Schritt 2 läuft.
Eine Kette im Code
Im Code ist eine Kette eine Folge von Aufrufen, bei der jeder Prompt aus der vorherigen Antwort gebaut wird. Diese Version nutzt das Anthropic Python SDK; dieselbe Form funktioniert mit jedem Anbieter.
import json
import anthropic
client = anthropic.Anthropic()
MODEL = "your-model-id" # e.g. from your provider's model list
def ask(prompt):
response = client.messages.create(
model=MODEL,
max_tokens=1024,
messages=[{"role": "user", "content": prompt}],
)
return response.content[0].text
reviews = open("reviews.txt", encoding="utf-8").read()
complaints = ask(
"List every complaint in the reviews inside the <reviews> tags. Ignore praise. "
'Return a JSON array of objects with the keys "review" and "complaint". '
"Return only the JSON, with no code fence.\n\n"
f"<reviews>\n{reviews}\n</reviews>"
)
json.loads(complaints) # raises an error here if step 1 did not return valid JSON
themes = ask(
"Group these complaints into themes. Return only a JSON array with the keys "
'"theme", "count" and "reviews", sorted by count, highest first.\n\n'
f"<complaints>\n{complaints}\n</complaints>"
)
note = ask(
"Write a note of at most four sentences to the product team based on these "
f"themes. Lead with the most common one.\n\n<themes>\n{themes}\n</themes>"
)
print(note)
Die Zeile mit json.loads ist die einfachste mögliche Prüfung: Wenn Schritt 1 mit Fließtext geantwortet hat, stoppt die Kette dort, statt schlechten Input weiterzureichen. Eine Kette im Produktivbetrieb würde außerdem die Felder prüfen, einen fehlgeschlagenen Schritt einmal wiederholen und jedes Zwischenergebnis protokollieren, damit sich eine schlechte Endantwort bis zu dem Schritt zurückverfolgen lässt, der sie verursacht hat.
Chaining in einer Chat-App
Um Prompts zu verketten, brauchst du keinen Code. Führ Schritt 1 aus, lies die Antwort, korrigiere, was falsch ist, und füg sie in den Prompt für Schritt 2 ein. Wenn du jeden Schritt in einem neuen Chat machst, bleibt das frühere Gespräch aus dem Kontext, und eine Anweisung für einen Schritt beeinflusst den nächsten nicht. In einem Chat zu bleiben geht schneller und funktioniert, wenn die Schritte eng zusammenhängen, aber dann reist der ganze Verlauf mit jeder neuen Nachricht mit.
Chaining im Vergleich mit verwandten Techniken
Chain of Thought ist ein Lösungsweg, der innerhalb einer Antwort ausgeschrieben wird; eine Prompt-Kette sind mehrere Antworten, und du bestimmst, was zwischen ihnen weitergegeben wird. Beides lässt sich gut kombinieren: Jeder Schritt einer Kette kann um schrittweises Denken bitten.
In einer Kette legst du die Schritte vorab fest. Wenn das Modell selbst entscheidet, welcher Schritt als Nächstes kommt, etwa suchen, ein Ergebnis lesen und dann eine andere Aktion wählen, ist das Muster stattdessen eine Agenten-Schleife, beschrieben unter ReAct-Prompting. Feste Ketten lassen sich leichter testen und vorhersagen, deshalb sind sie der bessere Startpunkt, wann immer du die Schritte schon kennst.
Häufig gestellte Fragen
Was ist Prompt Chaining?
Prompt Chaining ist eine Technik, bei der du eine Aufgabe in mehrere Prompts zerlegst, die nacheinander laufen, und die Ausgabe jedes Prompts in den nächsten eingefügt wird. Zum Beispiel zieht ein Prompt Beschwerden aus Bewertungen, ein zweiter gruppiert sie nach Themen und ein dritter schreibt aus den Themen einen Bericht.
Was ist der Unterschied zwischen Prompt Chaining und Chain of Thought?
Chain of Thought passiert innerhalb einer Antwort: Das Modell schreibt seinen Lösungsweg vor der Antwort aus. Prompt Chaining nutzt mehrere getrennte Aufrufe, und du oder dein Code reicht das Ergebnis des einen an den nächsten weiter. Jeden einzelnen Schritt einer Kette kannst du prüfen, korrigieren oder neu ausführen, was bei einem Lösungsweg innerhalb einer Antwort nicht geht.
Kann ich Prompt Chaining in ChatGPT oder Claude ohne Code nutzen?
Ja. Führ den ersten Prompt aus, prüf die Antwort und füg sie dann in den nächsten Prompt ein, im selben Chat oder in einem neuen. Wenn du für jeden Schritt einen neuen Chat startest, beeinflussen frühere Entwürfe und Anweisungen die späteren Schritte nicht.
Wann nehme ich Prompt Chaining statt eines einzelnen Prompts?
Nimm eine Kette, wenn ein Prompt mehrere verschiedene Arten von Arbeit verlangt, etwa Extrahieren, Analysieren und Schreiben, oder wenn du ein Zwischenergebnis prüfen oder wiederverwenden musst. Wenn ein einzelner Prompt schon eine verlässliche Antwort liefert, bringt eine Kette nur mehr Aufrufe, Kosten und Wartezeit.