Zum Hauptinhalt springen
Connic
Zurück zum BlogProdukt im Fokus

LLM-Kontextkomprimierung für lang laufende KI-Agenten

Connic komprimiert ältere Gesprächsverläufe und übergroße Tool-Ergebnisse. Danach wiederholt die Runtime den KI-Modell-Aufruf, damit lange Agentensitzungen das Kontextlimit nicht überschreiten.

20. Juli 20268 Min. LesezeitAutor: Connic Engineering

Ein Agent, der einen einzelnen Prompt beantwortet, erreicht das Kontextfenster selten. Ein Agent, der drei Wochen lang ein Support-Gespräch führt, rund um die Uhr eine Queue verarbeitet oder eine Aufgabe mit vierzig Schritten erledigt, schon. Der Gesprächsverlauf wächst stetig, jedes KI-Modell hat ein festes Token-Limit, und wenn eine Sitzung es überschreitet, lehnt der Provider den Aufruf ab. Der Run scheitert dann mitten in der Aufgabe.

Das harte Limit ist nur die Hälfte des Problems. Die KI-Modell-Qualität sinkt deutlich, bevor das Kontextfenster voll ist. Chromas Context-Rot-Studie (2025) evaluierte 18 führende KI-Modelle und stellte fest, dass die Output-Qualität mit zunehmender Input-Länge selbst bei einfachen Aufgaben abnimmt. Zuvor zeigte Lost in the Middle (Liu et al., 2023), dass KI-Modelle Informationen am zuverlässigsten am Anfang und Ende eines Prompts abrufen; bei Informationen in der Mitte fällt die Genauigkeit deutlich ab. Ein überladener Kontext erhöht das Fehlerrisiko und verschlechtert die Antworten.

Warum lang laufende Agenten das Kontextlimit erreichen

Das Kontextfenster eines Agenten füllt sich durch:

Persistente Sessions
Sitzungsbasierte Agenten übernehmen den Gesprächsverlauf zwischen Runs. Ein über eine Chat-ID identifizierter Support-Agent sammelt jede Nutzernachricht und jede Antwort, solange die Sitzung besteht.
Tool-Ergebnisse
Eine ausführliche API-Antwort kann mehr Platz beanspruchen als fünfzig Chatnachrichten. Eine Datenbankabfrage mit einigen hundert Zeilen landet als mehrere Dutzend Kilobyte JSON im Kontext und bleibt dort für jeden folgenden KI-Modell-Aufruf.
Mehrstufiges Reasoning
Agentenschleifen fügen Gesprächsschritte hinzu. Jeder Tool-Call bedeutet einen weiteren KI-Modell-Request und eine weitere Antwort im Verlauf. So kann eine einzige komplexe Aufgabe Dutzende Nachrichten erzeugen, bevor eine abschließende Antwort entsteht.

Weiterführende Quellen: Chromas Context-Rot-Studie (2025), Lost in the Middle (Liu et al., 2023).

Kürzen, gleitende Fenster und Zusammenfassen

Es gibt drei gängige Wege, einen LLM-Kontext zu begrenzen. Ihre Fehlerbilder unterscheiden sich deutlich:

Kürzen
Löscht die ältesten Nachrichten, sobald der Kontext voll wird. Das Verfahren ist kostenlos und sofort verfügbar, doch der Agent vergisst die zu Beginn definierten Ziele und Vorgaben, also die Informationen, die er zum Abschluss der Aufgabe braucht.
Gleitendes Fenster
Behält nur die letzten N Nachrichten. Die Größe ist vorhersehbar, der Verlust älterer Informationen bleibt. Zudem kann eine starre Grenze einen Tool-Call von seinem Ergebnis trennen, was viele Provider als fehlerhaften Request ablehnen.
LLM-Zusammenfassung
Ersetzt den älteren Verlauf durch eine vom KI-Modell geschriebene Zusammenfassung, die Ziele, Entscheidungen und IDs mit einem Bruchteil der Tokens erhält. Bei der Ausführung kostet das ein oder zwei zusätzliche KI-Modell-Aufrufe, lässt den Agenten seine Aufgabe aber fortsetzen.

Unsere Plattform nutzt LLM-Zusammenfassungen mit Aufbewahrungsregeln, die die Fehlerbilder der beiden anderen Ansätze vermeiden.

Veröffentliche Agenten für lange Sitzungen

Kontextkomprimierung, persistente Sitzungen und vollständige Traces sind in jede Connic-Agenten-Runtime integriert.

Kostenlos starten

Wie Connic den Kontext komprimiert

Standardmäßig löst genau der Fehler die Komprimierung aus, an dem der Ablauf sonst scheitern würde: ein Kontextlimit-Fehler des Providers.

KI-Modell-AufrufKontextlimit-FehlerKomprimierenWiederholenAntwort

Wenn ein KI-Modell-Aufruf fehlschlägt, klassifiziert der Runner den Fehler. Er erkennt Fehler am Kontextfenster über mehrere Provider hinweg und ignoriert Rate-Limit- und Quota-Fehler ausdrücklich, sodass die Komprimierung nur bei einem tatsächlichen Überlauf ausgelöst wird. Anschließend komprimiert er den Request und wiederholt den Aufruf einmal innerhalb desselben Runs. Der Nutzer sieht keinen fehlgeschlagenen Run, und keine Arbeit geht verloren. Überschreitet auch der wiederholte Aufruf das Kontextfenster, schlägt der Run mit dem ursprünglichen Fehler fehl.

Was erhalten bleibt und was zusammengefasst wird

Die neuesten Nachrichten bleiben unverändert: keep_recent_messages, standardmäßig 8. Die Grenze wird anschließend nach hinten verschoben, damit ein Tool-Ergebnis nie von dem Aufruf getrennt wird, der es erzeugt hat. Eine solche Trennung würde bei vielen Providern zu einem fehlerhaften Request führen.

Alles Ältere wird von einem LLM unter klaren Vorgaben zusammengefasst. Ziele, Einschränkungen, Entscheidungen, Tool-Namen und -Argumente, Tool-Ergebnisse, IDs, Zahlen, Fehler, offene Fragen und nächste Schritte müssen erhalten bleiben; neue Informationen dürfen nicht hinzukommen. Ein für einen Durchlauf zu langer Verlauf wird in Abschnitte mit 12.000 Zeichen geteilt. Anschließend werden die einzelnen Zusammenfassungen zu einer gemeinsamen Zusammenfassung für die weitere Bearbeitung zusammengeführt.

Das Ergebnis wird als einzelne Nachricht eingefügt und erklärt dem KI-Modell den neuen Zustand: Der frühere Verlauf wurde komprimiert, und die erhaltenen neuen Nachrichten sind für den aktuellen Gesprächsschritt maßgeblich. Das KI-Modell setzt die Aufgabe fort, statt einen Neustart zu halluzinieren.

Übergroße Tool-Ergebnisse

Die Komprimierung erfasst auch den größten einzelnen Platzverbraucher. Bei der Ausführung werden übergroße Tool-Antworten direkt innerhalb der beibehaltenen Nachrichten zusammengefasst und durch einen kompakten Datensatz aus Zusammenfassung und Originalgröße ersetzt. Aus einem umfangreichen JSON-Payload wird ein Absatz, während der Agent die daraus extrahierten Fakten behält.

Vor dem Fehler komprimieren: Token-Budgets

Wenn erst der Provider den Überlauf meldet, fällt pro Komprimierung ein fehlgeschlagener Aufruf an. Mit max_prompt_tokens komprimiert der Runner stattdessen vorausschauend: Er zeichnet nach jedem Aufruf die vom KI-Modell gemeldete Anzahl der Prompt-Tokens auf. Erreicht der letzte Aufruf das Budget, komprimiert er vor dem Senden des nächsten. Fehler und unnötige Aufrufe entfallen. Da Connic Bring Your Own Key unterstützt, erscheinen kleinere Prompts direkt als geringere Input-Kosten auf der Provider-Rechnung.

Ein günstigeres KI-Modell für Zusammenfassungen

Zusammenfassungen benötigen nicht das leistungsfähigste KI-Modell des Agenten. Über context_compression.model lassen sie sich auf einem kleinen, schnellen KI-Modell ausführen, während der Agent bei seinem konfigurierten KI-Modell bleibt. Ohne diese Angabe verwenden Zusammenfassungen das KI-Modell des Agenten. Der wiederholte Agentenaufruf verwendet in beiden Fällen das ursprünglich für den Agenten konfigurierte KI-Modell.

Konfiguration in YAML

Die Kontextkomprimierung ist für jeden LLM-Agenten Teil der Agenten-YAML. Eine vollständige Konfiguration für einen Session-basierten Chat-Agenten sieht so aus:

agents/support-bot.yaml
version: "1.0"

name: support-bot
type: llm
model: connic/gpt-5.6-terra
description: "A support chatbot that remembers conversation history"
system_prompt: |
  You are a helpful support agent. Use the conversation history
  to provide contextual responses.

# Persistent sessions keyed by chat ID
session:
  key: context.chat_id
  ttl: 86400

# Keep long conversations within the model context window
context_compression:
  enabled: true
  # Optional model for compression summaries; defaults to the agent model
  model: connic/gpt-5.6-luna
  keep_recent_messages: 12
  # Optional early compression based on model-reported prompt usage
  max_prompt_tokens: 100000
  # Optional compaction for stored session history between runs
  session_history:
    interval: 4
    keep_recent_runs: 1

Nur der Block selbst ist erforderlich. Ein context_compression mit enabled: true aktiviert die fehlergesteuerte Komprimierung mit den Standardwerten. Alle weiteren Optionen dienen der Feinabstimmung.

Gespeicherte Sitzungsverläufe komprimieren

Die Komprimierung innerhalb eines Requests bestimmt, was ein einzelner KI-Modell-Aufruf sieht. Sitzungsbasierte Agenten haben ein zweites Wachstumsproblem: den zwischen Runs gespeicherten Verlauf. Der session_history-Block komprimiert ihn. Nach jeweils interval Runs wird der ältere gespeicherte Verlauf durch eine Zusammenfassung ersetzt, während die neuesten keep_recent_runs Runs unverändert bleiben. Eine seit Monaten aktive Sitzung startet jeden neuen Run mit einer kompakten Zusammenfassung und den jüngsten Gesprächsschritten statt mit dem gesamten Verlauf.

Jede Komprimierung ist ein Trace-Span

Die Komprimierung verändert den Kontext des Agenten und muss daher nachvollziehbar bleiben. Jede Komprimierung wird im Run als OpenTelemetry-Trace-Span erfasst:

Auslöser der Komprimierung
Spans zeichnen den Auslöser (Provider-Fehler oder Token-Budget), die Anzahl der Nachrichten davor und danach, eine mögliche Zusammenfassung des Verlaufs sowie die Anzahl komprimierter Tool-Antworten und die jeweils eingesparte Zeichenzahl auf.
Was es gekostet hat
Auch Aufrufe für Zusammenfassungen verbrauchen Tokens. Jeder Span enthält den Token-Verbrauch der Komprimierung. So bleibt der Zusatzaufwand pro Run sichtbar, statt sich in der Provider-Rechnung zu verstecken.

Die Komprimierung innerhalb eines Requests erscheint als context_compression-Span, die Komprimierung des gespeicherten Verlaufs als history_compression. Beide schreiben außerdem Logzeilen in den Run. Die Observability-Dokumentation enthält Details zu Traces; der Leitfaden zur Agenten-Observability bietet einen größeren Überblick.

Tipp: reaktiv starten, dann ein Budget ergänzen
Fehlergesteuerte Komprimierung ist der sichere Standard: Sie verursacht erst Kosten, wenn eine Sitzung tatsächlich überläuft. Sobald Traces zeigen, dass Sitzungen regelmäßig das Kontextfenster erreichen, sollte max_prompt_tokens unterhalb des KI-Modell-Limits gesetzt werden, damit die Komprimierung vor dem fehlgeschlagenen Aufruf statt danach läuft.

Erste Schritte

Die Kontextkomprimierung lässt sich in wenigen Minuten zu einem bestehenden LLM-Agenten hinzufügen:

  • 1.Einen context_compression Block zur YAML-Konfiguration des Agenten hinzufügen
  • 2.Agenten bereitstellen. Die Komprimierung wird beim nächsten Run ohne Codeänderungen aktiv
  • 3.Im Tab Traces die context_compression Spans beobachten, wenn lange Sitzungen das Kontextfenster erreichen
  • 4.keep_recent_messages anpassen, ein Token-Budget ergänzen oder für Zusammenfassungen anhand der Trace-Daten zu einem günstigeren KI-Modell wechseln

Die vollständige Optionsreferenz einschließlich Sessions und Verlaufskomprimierung steht in der Dokumentation zu Runtime-Kontrollen. Für Teams, die Connic erstmals einsetzen, zeigt der Quickstart, wie ein erster Agent mit dauerhaftem Speicher bereitgestellt wird.

Mehr aus dem Blog

Produkt im Fokus

KI-Agenten-Routing: Agenten auslösen und Ergebnisse zurückgeben

Connic leitet externe Events an Agenten weiter und liefert Ergebnisse synchron oder über asynchrone Outbound-Verbindungen an das Zielsystem.

24. August 20269 Min. Lesezeit
Produkt im Fokus

Von Staging zum Produktivbetrieb: So isolieren Connic Environments KI-Agenten

Connic Environments ordnen Git-Branches isolierten Deployments mit eigenen Secrets, Verbindungen, Budgets und Run History zu. So können verschiedene Agenten und Codeversionen unabhängig voneinander bereitgestellt werden.

6. August 20268 Min. Lesezeit
Produkt im Fokus

Connic Tests: Regressionen vor dem Produktivbetrieb erkennen

Ein YAML-basiertes Testframework für KI-Agenten mit schwankenden Ergebnissen: wiederholte Testläufe, flexible Assertions, Mocks und multimodale Fixtures. Fehlgeschlagene Tests blockieren standardmäßig das Deployment.

6. Mai 20268 Min. Lesezeit
Produkt im Fokus

Human-in-the-Loop-KI-Agenten: Approvals im Produktivbetrieb

So pausiert ein KI-Agent vor Erstattungen, Löschvorgängen oder externen Aufrufen, leitet die Entscheidung an einen Menschen weiter und setzt den Run mit vollständigem Audit Trail automatisch fort.

5. April 202610 Min. Lesezeit
Produkt im Fokus

A/B-Tests für KI-Agenten: Prompts sicher verbessern

Ob ein geänderter Prompt wirklich besser ist, zeigt ein kontrolliertes Experiment mit echtem Traffic.

27. März 20269 Min. Lesezeit
Produkt im Fokus

KI-Agenten absichern: Checkliste für den Produktivbetrieb

KI-Agenten ohne Sicherheitskonzept zu veröffentlichen ist riskant. Eine praktische Checkliste zu Prompt Injection, PII-Verarbeitung, Output-Validierung und Guardrails vor dem Go-live.

21. März 202612 Min. Lesezeit
Produkt im Fokus

Guardrails für KI-Agenten: Sicherheit in Echtzeit

Connic Guardrails prüfen Ein- und Ausgaben von Agenten in Echtzeit, blockieren Prompt Injection, maskieren PII und setzen Themenbeschränkungen durch.

3. März 20269 Min. Lesezeit
Produkt im Fokus

Connic Bridge: KI-Agenten für private Infrastruktur

Connic Bridge stellt einen sicheren ausgehenden Tunnel bereit, über den KI-Agenten private Kafka-Cluster, Datenbanken und interne Dienste ohne offene eingehende Ports erreichen.

19. Februar 20267 Min. Lesezeit
Produkt im Fokus

Observability für Agenten: Kosten, Tokens und Runs erfassen

Eigene Dashboards machen LLM-Kosten pro KI-Modell und Fehler sichtbar, bevor Nutzer die Folgen bemerken.

23. Januar 20268 Min. Lesezeit