Kontextfenster-Management: Was mich 50 Sitzungen über KI-Entwicklung gelehrt haben
Ich habe den Token-Verbrauch über 50 Claude Code-Entwicklungssitzungen hinweg gemessen. Das Muster war konsistent: Die Ausgabequalität verschlechtert sich bei etwa 60 % Kontextauslastung — lange bevor das harte Limit die Komprimierung auslöst.1
TL;DR
Kontextfenster-Erschöpfung verschlechtert die Qualität der KI-gestützten Programmierung schleichend. Nach der Auswertung von 50 Sitzungen beim Aufbau meiner Claude Code-Infrastruktur und meines Blog-Qualitätssystems habe ich drei Muster identifiziert, die die Ausgabequalität über mehrstündige Sitzungen hinweg aufrechterhalten: proaktive Komprimierung nach jeder Teilaufgabe, dateisystembasierter Speicher, der über Kontextgrenzen hinweg persistiert, und Subagenten-Delegation, die den Hauptkontext schlank hält. Die entscheidende Erkenntnis: Behandeln Sie das Kontextfenster als knappe Ressource, nicht als bodenlosen Gesprächsfaden.
Wie sich die Verschlechterung tatsächlich zeigt
Jedes Lesen einer Datei, jede Tool-Ausgabe und jeder Gesprächsschritt verbraucht Token. Ein einzelnes Lesen einer großen Datei (2.000 Zeilen) kann 15.000–20.000 Token verbrauchen. Nach dem Lesen von 10 Dateien und der Ausführung mehrerer Befehle enthält das Kontextfenster mehr Tool-Ausgaben als tatsächliche Anweisungen.2
Die Verschlechterung ist subtil. Claude kündigt nicht an: „Mein Kontext ist zu 80 % voll.” Stattdessen beginnt das Modell: - Frühere Anweisungen zu vergessen, die vor 20 Minuten festgelegt wurden - Vorschläge zu wiederholen, die bereits drei Schritte zuvor abgelehnt wurden - Muster zu übersehen, die früher in der Konversation etabliert wurden - Weniger kohärente Änderungen über mehrere Dateien hinweg zu erzeugen
Ich bemerkte dieses Muster beim Aufbau meines Deliberation-Systems. Eine Sitzung, die mit präzisen Änderungen über 8 Python-Module hinweg begann, degradierte nach der 90-Minuten-Marke zu einem Tunnelblick auf einzelne Dateien. Der Agent hörte auf, die Architektur zu referenzieren, die er zuvor gelesen hatte, weil dieser Kontext komprimiert worden war.
Strategie 1: Proaktive Komprimierung
Der /compact-Befehl von Claude Code fasst die Konversation zusammen und gibt Kontextkapazität frei. Das System bewahrt wichtige Entscheidungen, Dateiinhalte und den Aufgabenstatus, während es ausführliche Tool-Ausgaben verwirft.3
Wann komprimieren: - Nach Abschluss einer abgrenzbaren Teilaufgabe (Funktion implementiert, Fehler behoben) - Vor dem Wechsel in einen neuen Bereich der Codebasis - Wenn Claude beginnt, sich zu wiederholen oder früheren Kontext zu vergessen
Ich komprimiere während intensiver Sitzungen ungefähr alle 25–30 Minuten. Während des Aufbaus der Deliberation-Infrastruktur (9 PRDs, 3.455 Zeilen Python) komprimierte ich nach Abschluss jedes PRDs. Jede Komprimierung bewahrte die Architekturentscheidungen und gab gleichzeitig Kontext für die nächste Implementierungsphase frei.
Strategie 2: Das Dateisystem als Gedächtnis
Das zuverlässigste Gedächtnis über Kontextgrenzen hinweg lebt im Dateisystem. Claude Code liest CLAUDE.md und Speicherdateien zu Beginn jeder Sitzung und nach jeder Komprimierung.4
Mein .claude/-Verzeichnis dient als strukturierter Gedächtnispalast:
~/.claude/
├── configs/ # 14 JSON configs (thresholds, rules, budgets)
│ ├── deliberation-config.json
│ ├── recursion-limits.json
│ └── consensus-profiles.json
├── hooks/ # 95 lifecycle event handlers
├── skills/ # 44 reusable knowledge modules
├── state/ # Runtime state (recursion depth, agent lineage)
├── handoffs/ # 49 multi-session context documents
├── docs/ # 40+ system documentation files
└── projects/ # Per-project memory directories
└── {project}/memory/
└── MEMORY.md # Always loaded into context
Die MEMORY.md-Datei erfasst Fehler, Entscheidungen und Muster über Sitzungen hinweg. Derzeit enthält sie 54 dokumentierte Fehlschläge mit domänenübergreifenden Lernmustern. Wenn ich entdecke, dass ((VAR++)) mit set -e in Bash fehlschlägt, wenn VAR den Wert 0 hat, halte ich das fest. Drei Sitzungen später, wenn ich auf einen ähnlichen Ganzzahl-Grenzfall in Python stoße, bringt der MEMORY.md-Eintrag das Muster zutage.5
Der domänenübergreifende Zinseszinseffekt: Ein Bash-Escaping-Fehler aus der Hook-Entwicklung führte zu einer Regex-Verbesserung in meinem Python-Blog-Linter. Eine CSS-Token-Lücke (--spacing-2xs existiert nicht) löste ein systematisches Audit aller Custom-Property-Referenzen aus. Jeder Eintrag verbindet Domänen, die sonst innerhalb einzelner Sitzungskontexte isoliert bleiben würden.
Strategie 3: Sitzungsübergabe
Für Aufgaben, die sich über mehrere Sitzungen erstrecken, erstelle ich Übergabedokumente, die den vollständigen Zustand erfassen:
## Handoff: Deliberation Infrastructure PRD-7
**Status:** Hook wiring complete, 81 Python unit tests passing
**Files changed:** hooks/post-deliberation.sh, hooks/deliberation-pride-check.sh
**Decision:** Placed post-deliberation in PostToolUse:Task, pride-check in Stop
**Blocked:** Spawn budget model needs inheritance instead of depth increment
**Next:** PRD-8 integration tests in tests/test_deliberation_lib.py
Mein ~/.claude/handoffs/-Verzeichnis enthält 49 Übergabedokumente aus Aufgaben über mehrere Sitzungen hinweg. Eine neue Sitzung mit claude -c (Fortsetzen) zu starten oder das Übergabedokument zu lesen, gibt der Nachfolgesitzung den vollständigen Kontext bei minimalem Token-Aufwand.6
Das Übergabemuster hat mich beim Deliberation-Aufbau gerettet. PRD-4 (Rekursionsschutz-Erweiterungen) erforderte das Verständnis von Entscheidungen aus PRD 1–3. Ohne die Übergabe hätte die neue Sitzung alle geänderten Dateien erneut lesen müssen. Mit der Übergabe startete die Sitzung mit dem Architekturkontext und ging direkt zur Implementierung über.
Strategie 4: Subagenten-Delegation
Subagenten laufen in unabhängigen Kontextfenstern. Die Delegation von Recherche- oder Review-Aufgaben an Subagenten bewahrt den Kontext der Hauptsitzung für die Implementierungsarbeit.7
Mein Rekursionsschutz-System verwaltet dies automatisch:
# From recursion-guard.sh - spawn budget enforcement
MAX_DEPTH=2
MAX_CHILDREN=5
DELIB_SPAWN_BUDGET=2
DELIB_MAX_AGENTS=12
Jeder Subagent gibt eine Zusammenfassung statt Rohdaten zurück, wodurch der Hauptkontext schlank bleibt. Während Blog-Überarbeitungen delegiere ich Erkundungsaufgaben (CSS-Daten sammeln, Hook-Code lesen, Verzeichnisstrukturen erfassen) an Subagenten. Der Hauptkontext bleibt auf das Schreiben fokussiert, während die Subagenten die Recherche übernehmen.
Das Spawn-Budget wurde auf die harte Tour gelernt: Eine frühe Sitzung ohne Limits erzeugte rekursive Subagenten, die jeweils weitere Subagenten erzeugten. Der Rekursionsschutz-Hook erzwingt nun Tiefenlimits mit sicherer Ganzzahl-Validierung und konfigurationsgesteuerten Budgets.8
Die Anti-Muster, aus denen ich gelernt habe
Ganze Dateien lesen, wenn Sie nur 10 Zeilen brauchen. Zu Beginn meiner Claude Code-Nutzung las ich ganze 2.000-Zeilen-Dateien für eine einzelne Funktion. Verwenden Sie Zeilen-Offsets: Read file.py offset=100 limit=20 spart über 15.000 Token pro Lesevorgang.
Ausführliche Fehlerausgaben im Kontext belassen. Nach dem Debugging des Spawn-Budget-Problems enthielt mein Kontext über 40 Stack-Traces aus fehlgeschlagenen Iterationen. Ein einzelnes /compact nach der Fehlerbehebung befreite diesen Ballast.
Jede Sitzung damit beginnen, jede Datei zu lesen. Meine ersten Sitzungen luden 8–10 Dateien „für den Kontext” vor. Jetzt lasse ich die Glob- und Grep-Tools von Claude Code relevante Dateien bei Bedarf finden, was über 100.000 Token unnötiger Vorladung einspart.
Zentrale Erkenntnisse
Für einzelne Entwickler: - Komprimieren Sie nach jeder abgeschlossenen Teilaufgabe, nicht erst wenn Claude die Komprimierung erzwingt; proaktive Komprimierung in 25–30-Minuten-Intervallen erhält die Ausgabequalität - Schreiben Sie wichtige Entscheidungen in Dateisystem-Speicherdateien, während die Sitzung fortschreitet; meine MEMORY.md enthält 54 Einträge, die über Hunderte von Sitzungen hinweg persistieren - Nutzen Sie Subagenten für Rechercheaufgaben, die den Hauptkontext verunreinigen würden; eine 5-Dateien-Recherche kostet über 75.000 Token im Hauptkontext, aber nur eine 500-Token-Zusammenfassung per Subagent
Für Teams: - Standardisieren Sie das Format von Übergabedokumenten für Aufgaben über mehrere Sitzungen hinweg; meine 49 Übergaben folgen jeweils der gleichen Status/Dateien/Entscheidung/Blockiert/Nächste-Struktur - Konfigurieren Sie projektweite CLAUDE.md-Dateien mit Architekturkontext, der automatisch in jede Sitzung geladen wird
Referenzen
-
Eigene Messung des Token-Verbrauchs über 50 Claude Code-Entwicklungssitzungen (2025–2026). Verschlechterung der Ausgabequalität wurde konsistent bei ca. 60 % Kontextauslastung beobachtet. ↩
-
Eigene Messung: Ein durchschnittlicher Dateilesevorgang verbraucht 8.000–20.000 Token je nach Dateigröße. 10 Dateileseoperationen plus Tool-Ausgaben verbrauchen 40–60 % eines 200K-Kontextfensters. ↩
-
Anthropic, „Claude Code Documentation,” 2025. Kontextkomprimierung und der /compact-Befehl. ↩
-
Anthropic, „Claude Code Documentation,” 2025. Speicherdateien und CLAUDE.md-Dokumentation. ↩
-
Eigene
.claude/projects/*/memory/MEMORY.md-Dateien. 54 dokumentierte Fehler mit domänenübergreifenden Lernmustern über Bash, Python, CSS und HTML-Validierung. ↩ -
Eigener Sitzungsmanagement-Workflow. 49 Übergabedokumente in
~/.claude/handoffs/aus mehrsitzungsübergreifenden Infrastruktur-Builds. ↩ -
Anthropic, „Claude Code Documentation,” 2025. Subagenten-Kontextisolierung. ↩
-
Eigene recursion-guard.sh-Implementierung. Spawn-Budget-Modell mit Tiefenlimits, sicherer Ganzzahl-Validierung und konfigurationsgesteuerten Budgets. ↩