Startseite / Artikel / Begrenzte Kontextfenster bei KI-Agenten: 7 praktische Strategien

Begrenzte Kontextfenster bei KI-Agenten: 7 praktische Strategien

Sieben bewährte Wege, lang laufende KI-Agenten in ihrem Kontextfenster zu halten: Kompression, Ausdünnen, Auslagern an Tools, System-Prompts, Handles, verdichtete Ausgaben und gleitende Fenster.

1219 Wörter

Wer einen Agenten gebaut hat, der mehr als eine Handvoll Schritte läuft, kennt den Moment. Eine Fehlermeldung sagt, das Kontextfenster sei überschritten, oder das Modell tut plötzlich so, als hätte es das Gespräch von vor zwanzig Nachrichten nie gegeben. Tool-Aufrufe, lange Denkketten und sperrige JSON-Antworten fressen Tokens in alarmierendem Tempo.

Das Problem wächst mit der Komplexität des Agenten. Je länger er arbeitet, desto mehr Zustand muss er mitschleppen, und früher oder später wird das Fenster zum Engpass. Sieben Techniken helfen dabei. Du brauchst nicht alle, oft verändern schon zwei oder drei Kosten, Geschwindigkeit und Zuverlässigkeit spürbar. Ziel ist, im selben Fenster mehr zu schaffen.

1. Den Verlauf komprimieren

Das ist die verbreitetste Technik in echten Systemen. Statt das ganze Gespräch erneut einzuspielen, führst du eine laufende Zusammenfassung des Wesentlichen:

  • getroffene Entscheidungen
  • Überlegungen, die es wert sind, behalten zu werden
  • Endergebnisse von Tools
  • Nutzerpräferenzen und aktueller Zustand

Ältere Züge werden eingedampft, nur die neuesten bleiben vollständig erhalten. Wirf Beispiele und Smalltalk raus und halte Entscheidungen und Ergebnisse fest.

Nach zwanzig Nachrichten etwa könnte der gesamte Rückstand zu einer Notiz schrumpfen wie: Der Nutzer will eine Python-Kommandozeilen-App, Click wurde gewählt, drei Befehle existieren, Tests und Doku stehen noch aus. Das Modell braucht nicht jede frühere Nachricht. Es braucht das, was seinen nächsten Schritt beeinflusst.

Kompression lässt sich auch staffeln: eine Zusammenfassung pro Schritt, eine pro Aufgabe und darüber ein globales Projektgedächtnis.

2. Nachrichten ausdünnen und nach Relevanz filtern

Nicht jede Nachricht verdient es, für immer zu bleiben. Während ein Agent arbeitet, füllt sich sein Kontext mit Material, das nicht mehr nützlich ist. Du kannst:

  • alte Tool-Logs verwerfen, sobald ihre Ergebnisse verarbeitet sind
  • riesige JSON-Payloads löschen, nachdem die wichtigen Felder herausgezogen wurden
  • Endantworten behalten und das Zwischengeplänkel streichen

Stell dir eine Websuche vor, die eine HTML-Seite mit 20.000 Tokens zurückgibt. Die Rohseite im Kontext zu behalten, ergibt keinen Sinn. Parse sie einmal, zieh heraus, was gebraucht wird, und wirf das Markup weg. Das Modell bekommt trotzdem die nützlichen Fakten, ohne Tausende sinnloser Tokens mitzuschleppen.

3. Schwere Berechnungen an Tools abgeben

Mathematik, Simulationen und Datentransformationen sollte man nicht Token für Token durchdenken lassen. Ein Python-Tool oder ein Backend-Dienst kann diese Arbeit erledigen, und das Modell bekommt nur ein kompaktes Ergebnis, etwa eine Zahl, eine kleine strukturierte Zusammenfassung oder ein paar Kennzahlen.

Angenommen, eine riesige CSV-Datei muss analysiert werden. Füg sie nicht in den Prompt ein. Lass ein Tool die Statistiken berechnen und etwas melden wie „100.000 Zeilen, Durchschnittspreis 23.4, 5 % Nullwerte in Spalte X“. Das ist weit billiger, als den vollständigen Datensatz ins Fenster zu schicken. Das Modell denkt, die Tools rechnen.

4. Feste Regeln in den System-Prompt

Manche Anweisungen ändern sich während eines Gesprächs nie:

  • der Ton des Assistenten
  • die verfügbaren Tools
  • Formatierungsvorgaben
  • Referenzbeispiele

Formuliere sie einmal in der Systemnachricht und hör auf, sie zu wiederholen. Wenn ein Agent immer in einer bestimmten JSON-Form antworten muss, gibt es keinen Grund, das in jedem Nutzerzug neu zu sagen. Je nach Umfang der Anweisung und Häufigkeit der Modellaufrufe kann die Ersparnis über eine lange Sitzung Hunderte oder sogar Tausende Tokens erreichen.

5. Handles statt Datenblöcke übergeben

Stell dir ein Datenbankschema aus Tausenden Zeilen SQL vor, grob 20.000 Tokens. Statt es ins Fenster zu legen, sagst du dem Agenten, dass das Schema unter einem Namen wie schema_v2 liegt und bei Bedarf über ein Tool get_schema abgerufen werden kann.

Das Schema liegt jetzt in einem Tool oder einer separaten Ressource, und der Agent lädt es nur, wenn er es wirklich braucht. Dieser Ansatz passt zu jeder großen Ressource:

  • Datenbankschemas
  • lange Dokumente
  • Konfigurationsdateien
  • API-Dokumentation
  • Wissensdatenbanken

Der Agent hält eine kleine Referenz und holt den echten Inhalt bei Bedarf.

6. Tool-Ausgaben verkleinern, bevor das Modell sie sieht

Rohe, riesige Tool-Ausgaben sollten möglichst nicht direkt ins Modell gehen. Einige typische Verkleinerungen:

  • ein großer Datensatz wird zu Zeilenzahlen plus den relevanten Spalten
  • eine komplette Webseite wird zu Titel, Überschriften und Metadaten
  • ein riesiges JSON-Dokument wird auf die Schlüssel und Felder reduziert, die für die Entscheidung zählen

Angenommen, ein Datenbank-Tool findet Tausende Zeilen, der Agent braucht aber nur die Zeilenzahl und einen Durchschnitt für eine Spalte. Alle Zeilen zurückzuschicken wäre Verschwendung. Das Tool kann stattdessen mit wenigen Zeilen antworten:

100,000 rows
Average price: 23.4
Null values in column X: 5%

Jetzt kann das Modell mit einem winzigen Token-Budget über das Ergebnis nachdenken. Tools funktionieren am besten als Vorverarbeiter, die Massen an Rohdaten in den kleinen Ausschnitt verwandeln, den das Modell tatsächlich braucht, und nicht als bloße Datenleitungen.

7. Ein gleitendes Fenster verwenden

Die letzte Technik behält nur die jüngsten N Nachrichten, zum Beispiel die letzten zehn, zusammen mit einer Zusammenfassung früherer Züge und einem kleinen Speicher wichtiger Fakten. Jede Anfrage trägt ein begrenztes aktuelles Fenster plus das Wesentliche aus der Vergangenheit statt des vollständigen Transkripts.

Der aktuelle Teil könnte so aussehen:

Recent context:
Message 31
Message 32
...
Message 40

und der Teil mit älteren Informationen so:

Earlier summary:
User is building a Python CLI app.
Click was selected.
Three commands have been implemented.Important memory:
Tests and documentation are still pending.

Ein einfacher Ansatz, der sich gut bewährt und zu einer riesigen Bandbreite von Anwendungsfällen passt. Viele Chatbots nutzen eine Variante davon, weil er Kontext, Kosten und Qualität praxistauglich ausbalanciert.

Womit man anfängt

Zusammengefasst sind die sieben Techniken:

  1. Kontextkompression
  2. Ausdünnen von Nachrichten und Relevanzfilterung
  3. Auslagern von Berechnungen an Tools
  4. System-Prompts für feste Regeln
  5. Platzhalter-Handles statt Volltext
  6. verdichtete Tool-Ausgaben
  7. ein gleitendes Fenster

Kompression, Ausdünnen und verdichtete Tool-Ausgaben bilden ein starkes Starttrio und bringen meist schon allein große Gewinne. Die tiefere Lehre: Ein Agent muss nicht alles mitschleppen. Er muss die richtigen Informationen tragen. Sobald Kontext als knappe Ressource gilt statt als unbegrenzter Speicher, wird es viel einfacher, Agenten zu entwerfen, die skalieren.