Claude Code Kontextverwaltung

Kontextverwaltung ist eine Kernfähigkeit für die effiziente Nutzung von Claude Code.

Die offizielle Dokumentation stellt ausdrücklich fest:"Das Kontextfenster ist die wichtigste Ressource von Claude Code"Wenn sich der Kontext füllt, nimmt die Modellleistung allmählich ab (sogenannter Context Rot) – dies ist ein zentrales Problem, das bei der Verwendung von Claude Code aktiv bekämpft werden muss.

Dieses Kapitel erklärt ausführlich, wie man CLAUDE.md-Anweisungsdateien, das automatische Speichersystem und Befehle zur Optimierung des Kontextfensters verwendet, um Claude in langen Sitzungen und über Sitzungen hinweg effizient zu halten.


Grundlagen des Kontextfensters

1. Was enthält das Kontextfenster

Die Größe des Kontextfensters von Claude Code beträgt1,000,000 tokens (1 million tokens)Es enthält alles, was Claude in der aktuellen Sitzung "sieht":

Inhaltsquelle Ladezeitpunkt Token-Nutzung
System-Prompt (Verhaltensrichtlinien für Claude Code) Wird bei jedem Sitzungsstart geladen Fester Verbrauch
CLAUDE.md-Datei Wird beim Start vollständig geladen Hängt von der Dateigröße ab
Auto-Speicher Wird beim Start geladen (erste 200 Zeilen oder 25KB) Hat eine Obergrenze
Konversationsverlauf Sammelt sich an Nimmt mit der Sitzung kontinuierlich zu
Tool-Ergebnisse (Dateilesevorgänge, Befehlsausgaben usw.) Werden nach jedem Tool-Aufruf angehängt Logs/große Dateien verbrauchen sehr schnell Tokens
MCP-Tool-Namen, Skill-Beschreibungen usw. Werden beim Start geladen Mittel

2. Kontextverfall

Die offizielle Dokumentation stellt ausdrücklich fest: Wenn der Kontext sich füllt,wird die LLM-Leistung nachlassendie Aufmerksamkeit verteilt sich auf mehr Kontext, und alte, irrelevante Inhalte beginnen, die aktuelle Aufgabe zu stören. Typische Symptome sind:

  • Claude wird widersprüchlich und vergisst zuvor vereinbarte Entscheidungen
  • Antworten werden vage und allgemein, mit weniger Details
  • Dieselbe Frage wiederholt stellen, obwohl sie bereits beantwortet wurde
  • Dasselbe Problem mehr als zweimal in derselben Sitzung korrigieren

Wenn die oben genannten Symptome auftreten, bedeutet das, dass der Kontext bereits "verschmutzt" ist. An diesem Punkt sollten Sie proaktiv/compactoder/clearverwenden, um es zu behandeln, anstatt weiter innerhalb derselben Sitzung zu korrigieren.

Verwenden Sie die/contextBefehl, um jederzeit eine detaillierte Nutzungsanalyse des aktuellen Kontexts anzuzeigen:

/context

Es listet die Token-Nutzung nach Kategorie auf (System-Prompt, CLAUDE.md, Speicherdateien, Sitzungsverlauf usw.) und bietet Optimierungsvorschläge. Es wird empfohlen, einmal zu prüfen, bevor Sie wichtige Aufgaben starten.


CLAUDE.md-Anweisungsdatei

CLAUDE.md ist die Kerndatei in Claude Code, die statische Anweisungen und Projektkonventionen aufzeichnet. Zu Beginn jeder Sitzung lädt Claude sie automatisch in das Kontextfenster.

1. Speicherort und Geltungsbereich

CLAUDE.md unterstützt mehrere Speicherorte,spezifischere Speicherorte haben eine höhere Priorität:

Geltungsbereich Dateipfad Anwendungsfall In git committen?
Organisationsebene macOS: /Library/Application Support/ClaudeCode/CLAUDE.md
Linux/WSL: /etc/claude-code/CLAUDE.md
Coding-Standards des Unternehmens, Compliance-Anforderungen Zentral von der IT verwaltet
Projektebene ./CLAUDE.mdoder./.claude/CLAUDE.md Projektarchitektur, Coding-Standards, Workflows Ja, mit dem Team geteilt
Benutzerebene ~/.claude/CLAUDE.md Persönliche Coding-Präferenzen, gilt für alle Projekte Nein, persönlich privat
Lokal privat ./CLAUDE.local.md(zu .gitignore hinzufügen) Persönliche projektspezifische Konfiguration, nicht in Git committet Nein, zu .gitignore hinzufügen

CLAUDE.local.mdDies ist der offiziell empfohlene Weg für persönliche private Konfiguration: Sandbox-URLs, lokale Testkonten, persönliche Debugging-Gewohnheiten und andere Inhalte, die nicht geteilt werden sollten, sollten hier platziert werden stattCLAUDE.mdin. Run/initWenn die Option "Personal" ausgewählt wird, wird die Datei automatisch hinzugefügt zu.gitignore。

2. CLAUDE.md erstellen

Führen Sie den folgenden Befehl aus, und Claude analysiert das Projekt automatisch und generiert eine erste CLAUDE.md:

/init

Wenn bereits eine CLAUDE.md existiert,/initschlägt es Verbesserungen vor, anstatt sie direkt zu überschreiben. Fügen Sie nach der Generierung manuell Inhalte hinzu, die Claude nicht automatisch entdecken kann (z. B. Dateien, die nicht geändert werden dürfen, besondere Einschränkungen usw.).

Sie können in der Sitzung auch#die Tastenkombination verwenden, um schnell eine Erinnerung an CLAUDE.md anzuhängen:

# 所有 API 错误响应必须使用 { code, message } 格式

Drücken Sie#Nachdem Sie den Inhalt eingegeben und die Eingabetaste gedrückt haben, schreibt Claude ihn in die CLAUDE.md auf der entsprechenden Ebene und speichert ihn als dauerhafte Anweisung.

3. Anforderungen an den Inhalt von CLAUDE.md

Die offizielle Vorgabe ist, dass jede CLAUDE.md-Dateiauf 200 Zeilen begrenzt bleibt. Je größer die Datei, desto mehr Start-Tokens verbraucht sie, und desto niedriger wird Claudes Befolgungsrate. Hier sind Empfehlungen zum Inhalt:

Sollte enthalten:

  • Häufige Befehle für Build, Test und Deployment
  • Code-Stil: Namenskonventionen, Einrückung, verbotene Muster
  • Wichtige Einschränkungen: "immer pnpm verwenden", "das Verzeichnis migrations/ nicht ändern"
  • Beschreibung der Projektarchitektur: der Zweck der wichtigsten Verzeichnisse

Sollte nicht enthalten:

  • Mehrstufige operative Workflows (sollten in der Skills-Datei abgelegt werden)
  • Regeln, die nur für einen bestimmten Teil der Codebasis relevant sind (sollten.claude/rules/pfadbasiertes Scoping verwenden)
  • Informationen, die Claude selbst durch Lesen des Codes entdecken kann

Beispiele

# CLAUDE.md-Beispiel (prägnant und spezifisch, jede Datei auf maximal 200 Zeilen beschränken)

## Häufige Befehle
- Paketverwaltung: immer pnpm verwenden, nicht npm oder yarn verwenden
- Tests ausführen: pnpm test:watch
- Build: pnpm build

## Code-Stil
- TypeScript-Strict-Modus, `any` ist nicht erlaubt
- Komponentendateien verwenden PascalCase-Benennung (z. B. UserProfile.tsx)
- Datenbank-Zeitstempel verwenden konsistent das UTC-Format

## Einschränkungen
- Das direkte Ändern vorhandener Dateien unter dem Verzeichnis prisma/migrations/ ist verboten
- .env.local enthält echte Secrets; das Lesen oder Ausgeben des Dateiinhalts ist verboten
- API-Endpunkte werden einheitlich unter dem Verzeichnis src/api/ verwaltet; stellen Sie Anfragen nicht direkt an anderer Stelle

4. Pfadbasierte bereichsbezogene Regeln (.claude/rules/)

Für größere Projekte können Sie verwenden.claude/rules/Verzeichnis, um Anweisungen in feingranulare Regeln aufzuteilen, die je nach Dateipfad gelten, damit nicht alle Regeln in der Root-CLAUDE.md angehäuft werden und Startup-Tokens verbrauchen:

.claude/
└── rules/
    ├── api.md         # 只对 src/api/**/*.ts 文件生效
    ├── frontend.md    # 只对 src/components/**/*.tsx 文件生效
    └── testing.md     # 只对 *.test.ts 文件生效

Pfadbezogene Regeln werden nur geladen, wenn Claude Dateien im entsprechenden Verzeichnis liest; sie belegen beim Start nicht den gesamten Kontext.


Auto-Speicher

Auto memory ist ein sitzungsübergreifendes Speichersystem, das in Claude Code v2.1.59 und höher integriert ist.Es ist standardmäßig aktiviertund erfordert keine Konfiguration. Es ermöglicht Claude, Informationen, die während der Arbeit entdeckt werden, autonom aufzuzeichnen, etwa Build-Befehle, Debugging-Erfahrungen und Präferenzen beim Codestil.

1. Funktionsweise

  • Claude schreibt nicht in jeder Sitzung Speicher; es beurteilt, ob die Information es wert ist, behalten zu werden (ob sie in zukünftigen Gesprächen nützlich sein wird).
  • Der Speicher ist nach Git-Repository-Pfad isoliert und wird gespeichert in~/.claude/projects/<项目路径>/memory/
  • Alle Worktrees desselben Repositorys teilen sich einen Auto-Speicher.
  • Beim Schreiben von Speicher zeigt das Terminal „Writing memory“ an; beim späteren Abrufen zeigt es „Recalled memory“ an.

2. Anzeigen und Bearbeiten von Speicher (/memory)

Verwenden Sie die/memoryBefehl zum Anzeigen und Bearbeiten aller Speicherinhalte, einschließlich CLAUDE.md auf verschiedenen Ebenen und Auto-Speicher:

/memory

Im Editor können Sie ungenaue Einträge löschen oder den Schalter „Auto memory“ verwenden, um den Auto-Speicher zu deaktivieren. Sie können ihn auch vorübergehend über Umgebungsvariablen deaktivieren:

CLAUDE_CODE_DISABLE_AUTO_MEMORY=1 claude

3. Claude Inhalte proaktiv merken lassen

In der Konversation kannst du Claude direkt bitten, Speicher zu schreiben:

记住:我们的 API 测试需要本地运行一个 Redis 实例
以后请记住:处理错误时,统一返回 { code, message } 结构

Wenn du es zu einer verbindlichen Regel statt nur zu einem Präferenzspeicher aufwerten möchtest, kannst du sagen: "Schreibe diese Regel in CLAUDE.md", und Claude schreibt sie in die entsprechende CLAUDE.md-Datei.


Befehle zur Optimierung des Kontextfensters

1. Automatische Komprimierung

Claude Code löst automatisch eine Komprimierung aus, wenn derKontext sich dem Limit nähert(bei etwa 75% Auslastung), wobei der Gesprächsverlauf zu einer Zusammenfassung verdichtet und die Arbeit fortgesetzt wird. Die offizielle Empfehlung ist jedoch, nicht auf die automatische Komprimierung zu warten; stattdessensie proaktiv manuell bei 60~70% auszulösen.Dadurch wird vermieden, mitten in kritischen Aufgaben unterbrochen zu werden, und durch manuelle Komprimierung kannst du über Anweisungen steuern, welche Inhalte beibehalten werden.

2. Kontext komprimieren (/compact)

Gesprächsverlauf manuell komprimieren, lange Sitzungen zu einer prägnanten Zusammenfassung verdichten, um die Arbeit fortzusetzen:

/compact

/compactUnterstützt die Übergabe benutzerdefinierter Anweisungen, um zu steuern, welche Inhalte bei der Komprimierung priorisiert werden:

/compact Focus on the API changes
/compact 保留认证流程的架构决策,丢弃调试过程中的无效尝试

Komprimierung ist ein verlustbehafteter Vorgang. Während der Komprimierung befindet sich Claude im Zustand des vollsten Kontexts und der schwächsten Leistung. Wenn du keine Anweisungen gibst, kann Claude Inhalte verwerfen, die du als wichtig erachtest.Komprimiere proaktiv sofort nach wichtigen Entscheidungen und verwende Anweisungen, um festzulegen, was beibehalten werden soll.Das funktioniert viel besser, als auf die automatische Komprimierung zu warten.

3. Kontext löschen (/clear)

Löscht den gesamten Gesprächsverlauf, wenn zu einer völlig neuen Aufgabe gewechselt wird:

/clear

Nach dem Löschen bleiben CLAUDE.md und der automatische Speicher unberührt und werden in neuen Sitzungen weiterhin geladen. Offizielle Empfehlung:Wenn Sie dasselbe Problem mehr als zweimal in derselben Sitzung korrigiert haben, verwenden Sie einfach /clear und starten Sie mit einem präziseren Prompt neu, der die gelernten Einschränkungen enthält.—Eine saubere Sitzung mit einem besseren Prompt ist fast immer besser, als in einem verschmutzten Kontext weiter zu korrigieren.

4. Zurückrollen zu einem Kontrollpunkt (/rewind)

Claude Code erstellt automatisch einen Kontrollpunkt vor jeder Dateiänderung. Doppelklicken SieEscoder führen Sie aus/rewindum das Rollback-Menü zu öffnen und den wiederherzustellenden Kontrollpunkt auszuwählen:

/rewind
(或双击 Esc 键)

Im Rollback-Menü können Sie die folgenden Aktionen auswählen:

Aktion Wirkung Anwendungsfall
Konversation + Code wiederherstellen Setzt den Gesprächsverlauf und Dateiänderungen zurück und stellt den Zustand vollständig wieder her. Wenn Claude vom Kurs abgekommen ist und die Änderungen problematisch sind; alles rückgängig machen.
Nur Konversation wiederherstellen Setzt den Konversationsverlauf zurück, behält Dateiänderungen bei. Wenn Sie einen anderen Ansatz erneut versuchen möchten, aber die Codeänderungen beibehalten wollen.
Nur Code wiederherstellen Stellt Dateien auf den Checkpoint-Zustand wieder her, behält die Konversation bei. Wenn der Code defekt ist, aber die Analyse in der Konversation noch wertvoll ist.
Von hier aus zusammenfassen Komprimiert die Konversation nach dem Checkpoint zu einer Zusammenfassung und bewahrt den vollständigen Verlauf davor. Wenn Sie nur die redundante Konversation im hinteren Teil bereinigen möchten, während Sie den vollständigen früheren Kontext behalten.

Checkpoints bleiben über Sitzungen hinweg erhalten – Sie können nach dem Schließen des Terminals weiterhin zu früheren Checkpoints zurückkehren. Dies ist kein Ersatz für git, aber es ist bequemer als manuelles git stash in explorativen Experimenten.

5. Schnelle Fragen ohne den Kontext zu verschmutzen (/btw)

Wenn Sie schnell ein kleines Detail nachschlagen müssen, aber nicht möchten, dass die Frage und Antwort in den Konversationsverlauf gelangen (und Kontext verbrauchen), verwenden Sie/btw:

/btw 这个项目的 TypeScript 版本是多少?

Die Antwort wird in einer schwebenden Ebene angezeigt, und weder die Frage noch die Antwort gelangen in den Konversationsverlauf. Geeignet zum Nachschlagen von Konfigurationen, Versionsnummern und anderen einmaligen Informationen, die nicht beibehalten werden müssen.


Befehle zur Sitzungsverwaltung

Befehl Funktion Anwendungsfall
/context Detaillierte Token-Nutzungsanalyse für jeden Teil des Kontexts anzeigen Ermitteln, welcher Teil zu viele Tokens verbraucht hat
/compact [指令] Konversationsverlauf zu einer Zusammenfassung komprimieren, mit der Option anzugeben, was beibehalten werden soll Proaktiv komprimieren, wenn der Kontext bei 60~70% liegt
/clear Den gesamten Konversationsverlauf löschen, wobei CLAUDE.md und Speicher beibehalten werden Zu einer neuen Aufgabe wechseln, oder wenn der Kontext stark verunreinigt ist
/rewind(oder Esc doppelt drücken) Das Checkpoint-Menü öffnen, um die Wiederherstellung von Konversation/Code/beidem zu wählen oder von einer bestimmten Zusammenfassung fortzufahren Claude ist vom Kurs abgekommen; ein Rollback und ein erneuter Versuch sind nötig
/memory Inhalte von CLAUDE.md und auto-memory anzeigen und bearbeiten Prüfen, ob der Speicher korrekt ist, veraltete Einträge löschen
/btw Kurze Frage, die Antwort wird nicht im Gesprächsverlauf gespeichert Kleine Details nachschlagen, ohne den Kontext zu verunreinigen
/init Projekt analysieren und CLAUDE.md generieren oder verbessern Erste Verwendung in einem neuen Projekt oder bei größeren Änderungen am Projekt
#(Tastenkürzel) Schnell eine dauerhafte Anweisung zu CLAUDE.md hinzufügen Konventionen oder Vereinbarungen jederzeit festhalten
claude --continue Die letzte Sitzung fortsetzen Nach dem erneuten Öffnen des Terminals weiterarbeiten
claude --resume Eine Sitzung aus der Verlaufsliste zum Fortsetzen auswählen Eine bestimmte Aufgabe von vor einigen Tagen fortsetzen

Häufige Probleme und Lösungen

Problem 1: Claude befolgt die Regeln in CLAUDE.md nicht

  • Prüfe, ob CLAUDE.md zu groß ist (die Befolgungsrate sinkt, wenn sie 200 Zeilen überschreitet)
  • Ändere vage Formulierungen in konkrete Anweisungen: Sag nicht "schreibe sauberen Code", sondern "verwende Einrückung mit 2 Leerzeichen"
  • Verwenden Sie/memoryPrüfe auf widersprüchliche Auto-Memory-Einträge
  • Erwäge die Verwendung von.claude/rules/Teile Regeln nach Dateipfad auf, um die jedes Mal geladene Menge zu reduzieren

Problem 2: Claude beginnt sich selbst zu widersprechen und "vergisst" frühere Entscheidungen

  • Dies ist ein typisches Symptom von Kontextverfall. Korrigiere nicht ständig in derselben Sitzung weiter
  • Führen Sie/compact 保留关键决策, oder direkt/cleardann mit einer Zusammenfassung neu starten
  • Für wichtige Schlussfolgerungen verwenden#Schreibe per Shortcut in CLAUDE.md, um sicherzustellen, dass sie in der nächsten Sitzung wirksam bleibt

Problem 3: Wichtige Informationen gehen nach /compact verloren

  • Beim Komprimieren spezifische Anweisungen angeben:/compact 保留认证流程的架构决策和已确认的 API 格式
  • Schreiben Sie die wichtigsten Schlussfolgerungen vor dem Komprimieren in CLAUDE.md
  • Es lohnt sich nicht, fehlgeschlagene Debugging-Versuche zu behalten; Sie können aggressiver komprimieren oder /clear verwenden

Problem 4: Wie man die Arbeit der letzten Sitzung nach dem Schließen des Terminals fortsetzt

  • Verwenden Sieclaude --continueDie letzte Sitzung fortsetzen
  • Verwenden Sieclaude --resumeWählen Sie eine bestimmte Sitzung aus der Verlaufsliste aus
  • Verwenden Sie/renameGeben Sie wichtigen Sitzungen einen aussagekräftigen Namen (z. B. "oauth-migration"), damit sie später leichter zu finden sind

Problem 5: Eine große Aufgabe erzeugt eine Menge Tool-Ausgabe. Wie man ein Überlaufen des Kontexts vermeidet

  • Verwenden Sie Subagenten für die Delegation: Die Hauptkonversation erhält nur die Zusammenfassung, während die Zwischenausgabe im unabhängigen Kontext des Subagenten bleibt
  • Zum Beispiel:Use sub-agents to analyze all log files, identify performance bottlenecks, and only report the conclusions to me.
Weitere Erweiterungen