Prompt Engineering

Kontext als Budget

Vor drei Monaten kamen 30 thematisch verwandte Abschnitte zusätzlich in den Kontext — das könne nur helfen. Heute liegt die Trefferquote 6 Punkte niedriger, ohne Modellwechsel und ohne Prompt-Änderung. Der Anteil des Relevanten fiel von 100 % auf 9 %, und die drei Abschnitte, auf die es ankam, rutschten in die schwächste Position des Fensters.

Lehrtext · 12 Abschnitte · zuletzt geprüft: 2026-09-04

Mehr Kontext ist nicht mehr Verständnis

Wenn ein Modell eine Frage falsch beantwortet, obwohl die Antwort im mitgegebenen Material steht, ist der Reflex, mehr Material mitzugeben. Das ist der Fehler, den dieses Modul behandelt. Ein Kontextfenster ist keine Festplatte, auf der Information einfach liegt — es ist knappe, ungleich wirksame Fläche mit einem Preis pro Aufruf.

EingabeInstruktion + KontextModellWahrscheinlichkeitenAusgabeToken für TokenPrüfenKONTEXT LENKT, ABER GARANTIERT NICHTVerlässlichkeit entsteht aus passendem Kontext, Messung und einer Grenze nach der Ausgabe — nicht aus einer einzelnen Formulierung.
Jedes Token im Kontext kostet bei jedem Aufruf, konkurriert mit jedem anderen um Aufmerksamkeit und wirkt je nach Position unterschiedlich stark.

Drei Eigenschaften machen den Unterschied zur Festplatte, und alle drei sind gemessen statt behauptet: Information wirkt positionsabhängig, die effektiv nutzbare Länge liegt unter der beworbenen, und zusätzliches irrelevantes Material verdünnt das relevante. Wer diese drei kennt, budgetiert Kontext, statt ihn zu füllen.

MerksatzKontext ist ein Budget, kein Speicher. Die Frage ist nie, ob etwas noch hineinpasst, sondern ob dieses Token seinen Platz und seinen Preis bei jedem Aufruf verdient.

Der Positionseffekt ist gemessen

Liu und Kollegen haben 2023 in TACL untersucht, wie Modelle lange Eingaben tatsächlich nutzen — über Mehrdokument-Fragen und Schlüssel-Wert-Abruf. Der Befund ist eine U-Kurve: Die Leistung ist am höchsten, wenn die relevante Information am Anfang oder am Ende des Kontexts steht, und fällt deutlich ab, wenn dieselbe Information in der Mitte liegt.

Der Titel der Arbeit — Lost in the Middle — ist wörtlich zu nehmen: Es geht nicht um Aufmerksamkeit im übertragenen Sinn, sondern um eine messbare Leistungseinbuße für Material an einer bestimmten Stelle. Und der Effekt betrifft ausdrücklich auch Modelle, die für lange Kontexte gebaut wurden.

Position im Kontext
Praktische Konsequenz
Anfang
Gut verwertet — hier gehören Instruktion und die wichtigsten Constraints hin.
Mitte
Schwächste Stelle — hier landet bei langen Kandidatenlisten genau das, was zählt.
Ende
Gut verwertet — hier gehören die aktuelle Frage und der wichtigste Beleg hin.
Was daraus folgtBei einer Liste aus 40 abgerufenen Kandidaten liegt der Treffer statistisch meistens in der Mitte. Die Gegenmaßnahme ist nicht Umsortieren allein, sondern weniger und besser — die Kandidatenzahl senken und die stärksten an die Ränder legen.

Beanspruchte und effektive Länge

Effektives KontextfensterDie Eingabelänge, bis zu der ein Modell eine Aufgabe noch verlässlich löst — im Unterschied zur technisch akzeptierten Länge. Die erste Zahl steht im Datenblatt, die zweite muss man messen.

Hsieh und Kollegen haben mit dem RULER-Benchmark genau diese Lücke vermessen, mit Aufgaben jenseits des simplen Nadel-im-Heuhaufen-Tests — darunter Mehrschritt-Verfolgung und Aggregation. Ergebnis: Fast alle untersuchten Modelle zeigen große Leistungsabfälle, wenn die Kontextlänge steigt. Und obwohl alle eine Kontextgröße von 32K Tokens oder mehr beanspruchen, hielt nur die Hälfte bei 32K noch eine befriedigende Leistung.

Das ist die nüchterne Version einer Zahl, die im Marketing als Fähigkeit erscheint. Ein beworbenes Fenster ist eine Obergrenze der Annahme, keine Zusage über die Verwertung. Für dich heißt das: Die nutzbare Länge ist eine Eigenschaft deiner Aufgabe und muss an deinen Fällen gemessen werden — sie steht in keinem Datenblatt.

Die eigene effektive Länge zu bestimmen ist unspektakuläre Arbeit: Nimm deine Aufgabe, baue Eingaben in aufsteigenden Längen — etwa 4K, 8K, 16K, 32K Tokens, gezählt mit dem count_tokens-Endpunkt statt geschätzt — und miss die Trefferquote je Stufe an derselben Fallmenge. Der Punkt, an dem die Kurve kippt, ist deine Grenze. Sie liegt bei Aufgaben mit Aggregation oder Mehrschritt-Verfolgung typischerweise deutlich früher als beim reinen Nachschlagen einer Angabe.

MerksatzEin Modell nimmt an, was hineinpasst, und verwertet, was es verwerten kann. Die beiden Zahlen sind verschieden, und nur die zweite entscheidet über die Antwortqualität.

Verdünnung: das Signal-Rausch-Verhältnis

Aus Positionseffekt und effektiver Länge folgt gemeinsam ein Effekt, der in Reviews regelmäßig unterschätzt wird: Zusätzliches irrelevantes Material macht das relevante nicht bloß schwerer zu finden — es verdrängt es an schlechtere Positionen und senkt seinen Anteil am Ganzen.

Ein Beispiel mit Zahlen: Ein Prompt bekommt 3 relevante Absätze. Jemand ergänzt vorsorglich 30 weitere, weil sie thematisch verwandt sind. Der Anteil des Relevanten fällt von 100 % auf 9 %, die drei Absätze rutschen mit hoher Wahrscheinlichkeit in die Mitte, und die Eingabe ist elfmal so teuer. Die Antwortqualität sinkt — nicht, obwohl mehr Kontext da ist, sondern deswegen.

Der Effekt ist deshalb so hartnäckig, weil er sich im Einzelfall nicht zeigt. Wer die 30 Absätze ergänzt und eine Handvoll Anfragen ausprobiert, sieht plausible Antworten — die Verschlechterung ist eine Verschiebung in der Trefferquote über viele Fälle, kein sichtbarer Ausfall. Sie ist nur an einer festen Fallmenge messbar, und genau deshalb wächst der Kontext in Systemen ohne Eval-Set monoton: Jede Ergänzung wirkt harmlos, und niemand hat ein Instrument, das Gegenteil zu zeigen.

MerksatzEtwas vorsorglich mitzugeben ist keine Sicherheitsmaßnahme, sondern eine Verdünnung. Jeder irrelevante Absatz verschlechtert die Position und den Anteil der relevanten.

Relevanz vor Menge

Die praktische Regel ist damit unspektakulär: Relevanz für die aktuelle Anfrage entscheidet, nicht thematische Verwandtschaft und nicht Verfügbarkeit. Der Unterschied ist entscheidend, weil Verfügbarkeit die bequemste Auswahl ist — die Kundenhistorie liegt vor, also wird sie mitgegeben — und weil sie systematisch zu viel liefert.

  • Was braucht die Antwort zwingend? Ohne dieses Material ist die Aufgabe unlösbar. Das kommt hinein.
  • Was verbessert die Antwort messbar? Am Eval prüfen, nicht annehmen. Hinein, wenn es sich zeigt.
  • Was ist thematisch verwandt? Das ist kein Kriterium. Verwandtschaft ist der häufigste Grund für Verdünnung.
  • Was liegt ohnehin vor? Erst recht kein Kriterium — Verfügbarkeit ist eine Eigenschaft deines Systems, nicht der Anfrage.
MerksatzDer Kontext beantwortet diese Anfrage, nicht alle möglichen. Wer für den Fall vorsorgt, dass später etwas gefragt werden könnte, bezahlt bei jedem Aufruf für einen Fall, der meistens nicht eintritt.

Der Kontext ist ein Posten pro Aufruf

Neben der Qualität hat Kontext eine zweite, sehr direkte Eigenschaft: Er wird bei jedem einzelnen Aufruf bezahlt. Das klingt banal und wird trotzdem übersehen, weil ein Prompt-Block einmal geschrieben und danach millionenfach ausgeliefert wird. Ein fester Anhang wächst einmal um 2.000 Tokens und kostet ab dann in jedem Aufruf 2.000 Tokens.

Die Rechnung lohnt sich explizit. Bei 200.000 Aufrufen pro Tag sind 2.000 zusätzliche Eingabe-Tokens 400 Millionen Tokens täglich — für einen Block, den jemand ergänzt hat, weil er nützlich schien. Diese Zahl ist das Argument, das in Diskussionen über Prompt-Länge fehlt, und sie ist in fünf Minuten ausgerechnet.

  • Feste Blöcke — Instruktion, Beispiele, Schema. Kosten pro Aufruf, dafür stabil und cache-fähig.
  • Variable Blöcke — Dokumente, Verlauf, Nutzerfrage. Kosten pro Aufruf und schwanken mit dem Fall.
  • Ausgabe — meist teurer je Token als Eingabe. Ausgabelänge ist ein eigener Posten, kein Nebeneffekt.

Zwei Größen sind dabei getrennt zu führen. Die Eingabelänge steuerst du über die Auswahl des Kontexts; die Ausgabelänge über die Aufgabe und die Obergrenze max_tokens. Ausgabe-Tokens sind je Token typischerweise deutlich teurer als Eingabe-Tokens — eine Anweisung, die zu ausführlicheren Antworten führt, ist also die teuerste Prompt-Änderung überhaupt, obwohl sie im Prompt kürzer ausfällt als ein zusätzlicher Beispielblock.

MerksatzJedes Token im Prompt ist eine wiederkehrende Ausgabe, kein Einmalaufwand. Ein Block, dessen Nutzen niemand messen kann, ist ein Abonnement ohne Gegenleistung.

Präfix-Stabilität: die Reihenfolge ist eine Kostenentscheidung

Hier wird die Anordnung im Prompt zur Geldfrage. Prompt-Caching arbeitet über einen Präfix-Abgleich: Wiederverwendet wird nur ein Anfangsstück, das byteweise identisch ist. Ändert sich irgendein Byte im Präfix, ist alles dahinter entwertet — nicht nur die geänderte Stelle.

Anthropic dokumentiert dazu die Reihenfolge, in der eine Anfrage zusammengesetzt wird: erst die Werkzeugdefinitionen, dann der System-Prompt, dann die Nachrichten. Daraus folgt die Bauregel: Stabiles nach vorn, Veränderliches nach hinten. Ein Zeitstempel im System-Prompt, eine wechselnde Anfrage-ID oder eine nicht deterministisch sortierte Werkzeugliste entwerten den Cache bei jedem Aufruf — lautlos.

Bauentscheidung
Wirkung auf den Präfix
Instruktion und Schema an den Anfang
Bleiben identisch — der teure Teil wird wiederverwendet.
datetime.now() im System-Prompt
Entwertet den Cache bei jedem Aufruf, ohne Fehlermeldung.
Werkzeugliste in wechselnder Reihenfolge
Dasselbe: der Präfix ändert sich, obwohl inhaltlich nichts anders ist.
Nutzerfrage und Dokument nach hinten
Verändern nur das Ende — der Präfix bleibt gültig.

Ein zweiter Punkt gehört dazu, weil er still fehlschlägt: Ein Präfix wird erst ab einer Mindestlänge überhaupt zwischengespeichert, und diese Grenze hängt vom Modell ab. Ein kurzer System-Prompt kann also korrekt aufgebaut sein und trotzdem nie aus dem Cache gelesen werden — ohne Fehler, ohne Hinweis. Deshalb gehört die Markierung (cache_control) mit einer Messung zusammen und nicht mit einer Annahme.

Prüfbar machenOb der Cache greift, ist keine Glaubensfrage: Die Antwort enthält mit cache_read_input_tokens die Zahl der aus dem Cache gelesenen Eingabe-Tokens. Bleibt sie über wiederholte Aufrufe mit gleichem Präfix bei null, gibt es einen stillen Entwerter — und den findet man, nicht vermutet man.

Trunkierung ist eine Entscheidung

Irgendwann passt es nicht mehr. Der Standardfall in Produktionssystemen ist, dass dann irgendetwas wegfällt — meist das Ende der Liste, weil die Schleife dort abbricht. Das ist eine Entscheidung, die niemand getroffen hat und die niemand nachlesen kann.

Eine bewusste Trunkierung hat drei Bestandteile: reservierte Pflichtteile, die nie wegfallen (Instruktion, Schema, aktuelle Frage), eine dokumentierte Priorität für den Rest, und eine Spur darüber, dass gekürzt wurde und wie viel. Der dritte Punkt ist der, der in Vorfällen fehlt: Ohne Spur ist eine Antwort auf gekürztem Material von einer auf vollständigem nicht unterscheidbar.

MerksatzStille Trunkierung erzeugt Antworten, die vollständig aussehen und es nicht sind. Wenn gekürzt wird, muss es im Ergebnis oder mindestens im Protokoll stehen — sonst hat man eine unsichtbare Fehlerquelle eingebaut.

Kompression und ihr Preis

Wenn Kürzen nicht reicht, liegt Verdichten nahe: einen langen Verlauf oder viele Dokumente von einem Modell zusammenfassen lassen und die Zusammenfassung mitgeben. Das funktioniert und hat einen scharfen, vorhersagbaren Preis — Kompression verliert zuerst das, was am wenigsten nach Prosa aussieht: Identifikatoren, Zahlen, Datumsangaben, Eigennamen.

Genau diese Dinge braucht die nachgelagerte Aufgabe aber häufig. Deshalb die Reihenfolge: zuerst verlustfrei aufräumen — Duplikate, Signaturen, Boilerplate, Navigationstexte, wiederholte Zitate —, und erst danach verlustbehaftet verdichten. Und wenn verdichtet wird, mit ausdrücklicher Anweisung, welche Elemente wörtlich zu erhalten sind.

Ein Verlauf, der nicht mehr passt

Szenario

Ein Support-Assistent bekommt den vollständigen Ticketverlauf. Bei Altkunden sind das bis zu 400 Nachrichten; das Fenster reicht nicht. Der Vorschlag: den Verlauf vom Modell auf 500 Wörter zusammenfassen lassen. Der Assistent muss in seiner Antwort auf konkrete Vorgangsnummern und Beträge Bezug nehmen können.

Anforderungen

  • In welcher Reihenfolge gehst du vor?
  • Was verlierst du auch bei sauberem Vorgehen?

Schritte

  1. Verlustfrei aufräumen: Signaturen, Zitat-Blöcke voriger Mails, automatische Eingangsbestätigungen und Duplikate entfernen. Das kostet keine Information und schneidet solche Verläufe oft um die Hälfte.
  2. Relevanz statt Vollständigkeit: nicht der ganze Verlauf, sondern die offenen Vorgänge plus die letzten Nachrichten. Ein abgeschlossener Vorgang von 2019 trägt zur aktuellen Frage nichts.
  3. Erst danach verdichten — mit der ausdrücklichen Anweisung, Vorgangsnummern, Beträge und Datumsangaben wörtlich zu erhalten und Unsicherheit zu benennen statt zu glätten.
  4. Die Pflichtteile reservieren und die Kürzung protokollieren: Wie viele Nachrichten sind eingegangen, wie viele in den Kontext gekommen? Ohne diese Zahl ist der nächste Vorfall nicht analysierbar.

Merksatz: Kompression ist ein verlustbehafteter Schritt und gehört hinter jedes verlustfreie Aufräumen — und was wörtlich erhalten bleiben muss, muss man benennen, weil Verdichtung genau diese Elemente zuerst opfert. + Der Verlauf passt, die zitierfähigen Angaben bleiben, und die Kürzung ist nachvollziehbar. Du hast eine zusätzliche Modellstufe im Pfad: mehr Latenz, mehr Kosten, und eine Fehlerquelle mehr — eine falsche Zusammenfassung ist im Ergebnis nicht mehr von einer falschen Antwort unterscheidbar.

Ein Budget, das man einhalten kann

Zum Schluss die Bauform, die aus den Befunden folgt: eine explizite Aufteilung des Fensters, bevor der erste Aufruf läuft. Nicht als Dokument für die Ablage, sondern als Zahlen im Code, gegen die geprüft wird.

Posten
Eigenschaft
Instruktion und Schema
Reserviert, fällt nie weg, stabil am Anfang für den Cache.
Beispiele
Reserviert, feste Zahl — nicht so viele, wie gerade hineinpassen.
Abgerufenes Material
Variabel mit Obergrenze und dokumentierter Priorität.
Verlauf
Variabel, verdichtet, mit reserviertem Anteil für die letzten Turns.
Aktuelle Frage
Reserviert, am Ende — die stärkste Position.
Reserve für die Ausgabe
Reserviert. Wer sie vergisst, bekommt abgeschnittene Antworten.

Kurzcheck

Euer Retrieval liefert 40 Kandidaten in den Kontext; der Treffer ist meistens dabei, wird aber oft nicht verwendet. Die Kandidaten sind nach Relevanz sortiert. Was ist die wirksamste Änderung?

  • Die Kandidatenzahl deutlich senken und die stärksten an Anfang und Ende legen
  • Die Kandidatenzahl erhöhen, damit der Treffer sicher enthalten ist
  • Im Prompt betonen, dass alle Kandidaten gleich gründlich zu prüfen sind
  • Die Kandidaten unsortiert übergeben, damit keine Position bevorzugt wird

Treffer. Genau. Beides adressiert den gemessenen Positionseffekt: Bei 40 Kandidaten liegt der Treffer meistens in der schwächsten Zone, und weniger Kandidaten heben zusätzlich den Anteil des Relevanten.

Was dieses Modul nicht behandelt

Zwei Nachbarthemen sind ausdrücklich nicht hier zu Hause, damit die Grenze klar ist. Erstens: Wie man Caching, Latenzbudgets und Zeitüberschreitungen im laufenden Betrieb auslegt, überwacht und ausrollt, gehört zum Track LLM Production Ops — hier ging es nur um die Prompt-Struktur, die Cache-Fähigkeit überhaupt ermöglicht.

Zweitens: Wie man einen Gesprächsverlauf über viele Turns verwaltet — Drift, Verdichtung, Neustart, Zustandsbesitz — behandelt das Modul Mehrturn-Verläufe und Zustand. Die Budget-Regeln von hier gelten dort weiter; die Frage ist dann aber, wer den Zustand besitzt, nicht wie viel hineinpasst.

HaltungEin größeres Fenster löst keine dieser Fragen, es verschiebt sie nur. Positionseffekt, Verdünnung und Kosten pro Aufruf gelten bei 1M Tokens genauso wie bei 8K — nur werden die Rechnungen größer.

Zusammenfassung — gleich im Check

Du kennst jetzt die Größen: den gemessenen Positionseffekt mit seiner U-Kurve, den Unterschied zwischen beanspruchter und effektiver Länge, die Verdünnung durch thematisch verwandtes Material, den Kontext als Posten pro Aufruf, die Präfix-Stabilität als Bauregel, Trunkierung mit Reserve, Priorität und Spur, sowie Kompression hinter verlustfreiem Aufräumen und mit benannten Pflicht-Elementen.

Gleich im CheckIn den nächsten Aufgaben budgetierst du selbst. Achte auf den wiederkehrenden Reflex: Die naheliegende Antwort ist fast immer, mehr mitzugeben, und sie ist fast immer die falsche.

Jetzt anwenden

Diesen Stoff gibt es als Modul mit bewerteten Entscheidungs-Checks — dieselbe Einführung, danach die Übungen.

Zum Modul →
Quellen & Aktualität5 Primärquellen · zuletzt geprüft:
  1. 01Liu et al., Lost in the Middle: How Language Models Use Long Contexts, TACL 2024
  2. 02Hsieh et al., RULER: What's the Real Context Size of Your Long-Context Language Models?, 2024
  3. 03Anthropic — Prompt caching (Präfix-Abgleich, Reihenfolge tools, system, messages, Cache-Kennzahlen)
  4. 04Anthropic — Prompting best practices: Structure prompts with XML tags
  5. 05Maynez et al., On Faithfulness and Factuality in Abstractive Summarization, ACL 2020