Techniken

Prompt Chaining und Prompt-Zerlegung

Prompt Chaining teilt eine komplexe Aufgabe in eine Folge einfacher Prompts auf. Wie man eine Aufgabe zerlegt, Daten zwischen Schritten weitergibt und Fehler in der Kette behandelt.

Übersetzt aus dem englischen Original. Code, Prompts und Modellausgaben bleiben auf Englisch.

Prompt Chaining bedeutet, eine Aufgabe mit mehreren Prompts nacheinander zu lösen, wobei die Ausgabe des einen zur Eingabe des nächsten wird. Prompt-Zerlegung ist der vorgelagerte Entwurfsschritt: zu entscheiden, wie die Aufgabe aufgeteilt wird. Zusammen sind sie der verlässlichste Weg, ein Modell etwas Kompliziertes erledigen zu lassen.

Warum ein großer Prompt scheitert

Ein Prompt, der ein Modell bittet, in einem Durchgang zu extrahieren, zu analysieren, zu entscheiden und zu schreiben, hat mehrere Probleme:

  • Anweisungen konkurrieren. Je mehr ein Prompt verlangt, desto wahrscheinlicher wird eine Anforderung vernachlässigt.
  • Man erkennt nicht, welcher Teil versagt hat. Eine falsche Endantwort kann aus jedem Schritt stammen.
  • Man kann die Teile nicht testen. Bis zum Ende gibt es nichts, worauf man prüfen könnte.
  • Jeder Aufruf zahlt für jede Anweisung, auch für solche, die für diese Eingabe irrelevant sind.

Eine Kette gibt jedem Schritt eine Aufgabe, eine klare Eingabe und eine prüfbare Ausgabe.

Wie man eine Aufgabe zerlegt

Fragen Sie, was ein sorgfältiger Mensch der Reihe nach täte und wo er Arbeit an jemand anderen übergäbe. Gute Trennstellen sind dort, wo:

  • sich die Art der Arbeit ändert (lesen, dann urteilen, dann schreiben).
  • ein Zwischenergebnis eine Prüfung wert ist (die extrahierten Fakten, bevor Schlüsse gezogen werden).
  • ein Schritt nur manchmal zutrifft (nur übersetzen, wenn der Text nicht Englisch ist).
  • verschiedene Schritte verschiedene Modelle brauchen (ein kleines Modell zum Klassifizieren, ein größeres zum Schreiben).

Ein durchgespieltes Beispiel

Die Aufgabe: eine Beschwerde-E-Mail eines Kunden beantworten.

Schritt 1: extrahieren. Ein kleines, schnelles Modell macht aus der E-Mail strukturierte Fakten.

Extract from the email in the tags: order_id, product, the problem in
one sentence, and what the customer is asking for. Return JSON only.
Use null for anything not stated.

<email>
{{email}}
</email>

Schritt 2: entscheiden. Code schlägt die Bestellung nach. Ein Prompt wendet die Richtlinie an.

Given the complaint and the order record, choose one action from:
refund, replace, escalate, explain. Give the policy clause that applies.
Return JSON: {"action": string, "clause": string}.

<complaint>{{step1_json}}</complaint>
<order>{{order_record}}</order>
<policy>{{policy}}</policy>

Schritt 3: schreiben. Ein dritter Prompt verfasst die Antwort aus der Entscheidung.

Write a reply to the customer, under 120 words, that states the action
and what happens next. Do not promise anything outside the action.

<action>{{step2_json}}</action>
<customer_name>{{name}}</customer_name>

Jeder Schritt lässt sich einzeln testen. Versprechen die Antworten das Falsche, sehen Sie sich die Ausgabe von Schritt 2 an und wissen sofort, ob die Entscheidung oder die Formulierung schuld ist.

Daten zwischen Schritten weitergeben

Verwenden Sie zwischen den Schritten strukturierte Ausgabe. JSON oder getaggte Felder, keine Prosa. Der nächste Prompt und Ihr Code können sich dann auf die Form verlassen. Siehe Prompts für strukturierte Ausgabe.

Geben Sie nur weiter, was der nächste Schritt braucht. Den gesamten Verlauf weiterzureichen macht spätere Prompts lang und lässt frühe Fehler sich ausbreiten.

Validieren Sie an jeder Grenze. Prüfen Sie die Ausgabe jedes Schritts, bevor Sie sie verwenden. Eine Kette ohne Validierung vervielfacht Fehler: Fünf Schritte, die jeweils zu 95 % richtig sind, sind alle zusammen nur zu etwa 77 % richtig.

Grenzen Sie alles ab, was Sie einfügen. Die Ausgabe eines Modells ist für das nächste eine nicht vertrauenswürdige Eingabe. Eine Beschwerde-E-Mail mit „ignoriere deine Anweisungen“ hat Schritt 1 durchlaufen und steht nun im Prompt von Schritt 2. Umschließen Sie eingefügte Inhalte mit Tags. Siehe Prompt Injection.

Kettenformen

Form Beschreibung Beispiel
Sequenziell A, dann B, dann C Extrahieren, entscheiden, schreiben
Routing Klassifizieren, dann einen Zweig wählen Abrechnungsfragen gehen an einen Prompt, Fehler an einen anderen
Parallel Unabhängige Schritte gleichzeitig, dann zusammenführen 10 Dokumente zusammenfassen, dann kombinieren
Erzeugen und prüfen Ein Prompt erzeugt, ein anderer prüft Entwerfen, dann gegen die Anforderungen kritisieren
Schleife Wiederholen, bis eine Bedingung erfüllt ist Überarbeiten, bis die Validierung besteht, mit Wiederholungsgrenze

Begrenzen Sie Schleifen immer. Eine Kette, die ewig wiederholt, ist ein Ausfall und eine Rechnung.

Chaining im Vergleich zu den Alternativen

Im Vergleich zu Chain-of-Thought. Chain-of-Thought hält das Schlussfolgern in einer einzigen Antwort. Nutzen Sie es, wenn die Schritte vorab nicht bekannt sind. Nutzen Sie eine Kette, wenn sie es sind: Sie gewinnen Testbarkeit und Kontrolle.

Im Vergleich zu Agenten. In einer Kette entscheidet Ihr Code über die Reihenfolge. In einem Agenten entscheidet das Modell. Eine Kette ist günstiger, schneller und vorhersagbar. Wählen Sie einen Agenten nur, wenn der Weg von dem abhängt, was unterwegs entdeckt wird. Siehe ReAct-Prompting und Prompts für KI-Agenten.

Kosten im Blick behalten

Eine Kette macht mehr Aufrufe. Halten Sie sie wirtschaftlich:

  • Verwenden Sie das kleinste Modell, das jeden Schritt bewältigt.
  • Führen Sie unabhängige Schritte parallel aus, um die Latenz zu senken.
  • Überspringen Sie Schritte, die für diese Eingabe nicht zutreffen.
  • Cachen Sie den festen Teil jedes Prompts, wo der Anbieter es unterstützt. Siehe Token-Optimierung.

Halten Sie jedes Glied gesund

Eine Kette hat mehrere Prompts zu pflegen, sodass ein Problem in einem leicht übersehen wird. Speichern Sie jeden als Datei und prüfen Sie bei jeder Änderung alle. Das Prompt-Test-Gate lässt einen Pull Request scheitern, wenn ein Prompt im Repository unter Ihre Qualitätsschwelle fällt oder sein Token-Budget überschreitet, und der Prompt-Analyzer meldet nicht abgegrenzte Variablen, die dort am wichtigsten sind, wo ein Schritt den nächsten speist.