SSD Nodes Learn
Anleitungen Matt ConnorVon Matt Connor · Aktualisiert 2026-07-24

Claude Code Sitzungen optimieren

Vermeiden Sie hohe Kosten und langsame Sessions durch gezieltes Kontext-Management. Erfahren Sie, wie Sie /context nutzen und den Prompt-Cache effektiv halten.

So verhindern Sie, dass Claude Code-Sitzungen langsam und teuer werden

Eine lange Claude Code-Sitzung wird langsam und teuer, weil bei jedem Turn der gesamte Kontext erneut gesendet wird und dieser Kontext stetig wächst. Die Lösung ist eine Hygiene nach einer festen Reihenfolge. Führen Sie /context aus, um zu sehen, welche Inhalte das Fenster füllen. Löschen Sie die Elemente, für die Sie bei jeder Anfrage bezahlen. Verwenden Sie /clear zwischen nicht zusammenhängenden Aufgaben und /compact mit einer Anweisung innerhalb einer langen Aufgabe. Arbeiten Sie in kontinuierlichen Abschnitten, da ein leerer Prompt-Cache einen günstigen Read in ein vollständiges Re-Write von allem verwandelt, was Sie geschrieben haben.

Warum die Kosten überhaupt anfallen, wird in dem Token-Meter hinter einer Agent-Session erklärt.

Lesen Sie /context, bevor Sie Änderungen vornehmen

Raten Sie nicht, was das Kontextfenster füllt. Claude Code zeigt dies an.

/context [all] stellt die aktuelle Kontextnutzung als farbiges Raster dar und enthält Optimierungsvorschläge für kontextintensive Tools und Speicherprobleme; all erweitert die detaillierte Aufschlüsselung pro Element im Vollbildmodus. Interpretieren Sie das Ergebnis als fünf Kategorien.

  • Der System Prompt. Die internen Anweisungen von Claude Code. Diese sind für die Sitzung fest vorgegeben.
  • Tool-Definitionen. Das Schema für jedes Tool, das der Agent aufrufen kann, einschließlich aller verbundenen MCP (Model Context Protocol) Server.
  • Memory-Dateien. CLAUDE.md und automatischer Speicher, die zu Sitzungsbeginn geladen werden.
  • Dateien und Tool-Ergebnisse. Jede gelesene Datei und jede Ausgabe Ihrer Befehle.
  • Nachrichtenverlauf. Ihre Eingaben und die Antworten des Modells.

Die ersten drei Punkte sind feste Kosten, die bei jeder Anfrage während der gesamten Sitzung anfallen. Die letzten beiden wachsen an. Reduzieren Sie die festen Kosten einmalig zu Beginn; verwalten Sie den wachsenden Anteil kontinuierlich.

Zwei Zeichen zeigen an, dass das Fenster voll ist:

Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue.
Context is 94k tokens past the 200k-token compaction window — run /compact to reduce usage.

Das erste Zeichen ist ein hartes Limit, bei dem die Anfrage abgelehnt wird; der entsprechende API (Application Programming Interface) Fehler lautet Prompt is too long. Das zweite Zeichen ist ein Kompaktierungsfenster, das bei einem 1-Million-Token-Modell unter dem tatsächlichen Kontextfenster des Modells liegen kann. Anfragen sind über dieses Fenster hinaus weiterhin erfolgreich, daher handelt es sich hierbei um eine Warnung statt einer Ablehnung.

In einem kostenpflichtigen Plan ergänzt /usage die Informationen und kennzeichnet Verhaltensweisen wie langen Kontext oder Cache-Misses, während die aktuelle Nutzung einzelnen Skills, Subagenten und MCP-Servern zugeordnet wird.

CLAUDE.md ist eine permanente Abgabe, halten Sie sie schlank

Ihr CLAUDE.md wird zu Beginn der Sitzung in den Kontext geladen und bleibt dort bestehen. Wenn dieser eine detaillierte Deployment-Prozedur enthält, verbrauchen diese Tokens, während Sie lediglich einen Tippfehler in einer Testdatei korrigieren. Die Empfehlung von Anthropic lautet, nur das Wesentliche aufzunehmen und die Datei unter 200 Zeilen zu halten.

Verschieben Sie Prozeduren in Skills. Ein Skill wird nur bei Aufruf geladen. Ein Workflow, den Sie zweimal pro Woche ausführen, kostet an den anderen Tagen also nichts. Skills haben nach einer Kompaktierung ein eigenes Budget: Inhalte werden neu injiziert, begrenzt auf 5.000 Tokens pro Skill und insgesamt 25.000 Tokens; dabei werden die ältesten Einträge zuerst entfernt. Da die Kürzung den Anfang der Datei beibehält, platzieren Sie die wichtigsten Anweisungen am Anfang von SKILL.md.

Welche Inhalte eine Kompaktierung überleben, bestimmt, wo eine Anweisung platziert werden muss.

  • Der System Prompt und der Output-Stil bleiben unverändert, da sie nicht Teil des Nachrichtenverlaufs sind.
  • Die Projekt-Root CLAUDE.md, unscoped Rules und Auto Memory werden von der Festplatte neu injiziert.
  • Eine Rule mit paths: Frontmatter geht verloren, bis die entsprechende Datei erneut gelesen wird.
  • Eine verschachtelte CLAUDE.md in einem Unterverzeichnis geht verloren, bis eine Datei in diesem Unterverzeichnis erneut gelesen wird.
  • Hooks sind nicht betroffen, da ein Hook als Code ausgeführt wird und niemals in den Kontext gelangt.

Eine Rule, auf die Sie angewiesen sind, gehört in die Projekt-Root CLAUDE.md: Claude Code löscht zuerst ältere Tool-Outputs und fasst diese dann zusammen. Anweisungen aus dem frühen Gesprächsverlauf können daher verloren gehen. Bearbeiten Sie den Memory mit /memory. Claude Code behält die Kopie, die zu Beginn der Sitzung geladen wurde. Ein Kürzen während der Sitzung erhält den Prompt Cache und wird erst beim nächsten /clear, /compact oder Neustart wirksam.

/clear zwischen Aufgaben verwenden, /compact innerhalb einer Aufgabe verwenden

Diese beiden Befehle wirken austauschbar, haben jedoch unterschiedliche Kosten.

/clear [name] startet eine neue Konversation mit leerem Kontext. Es wird keine Anfrage gesendet, daher entstehen keine Kosten. Geben Sie einen Namen an, um die vorherige Konversation im /resume-Picker zu kennzeichnen; /reset und /new sind Aliase. Verwenden Sie diesen Befehl sofort beim Wechsel zu einer nicht verwandten Aufgabe. Andernfalls wird die alte Aufgabe bei jeder Nachricht der neuen Aufgabe erneut gesendet und erneut abgerechnet.

/compact [instructions] gibt Kontext frei, während die Konversation fortgesetzt wird: Es fasst den bisherigen Verlauf zusammen und ersetzt ihn. Verwenden Sie diesen Befehl innerhalb einer langen Aufgabe, bei der weiterhin Kontinuität erforderlich ist.

Geben Sie /compact immer eine Anweisung. Ein nacktes /compact fasst den Verlauf anhand eines Standard-Prompts zusammen, der nicht weiß, welchen Teil der Arbeit Sie noch benötigen. Eine Anweisung bewahrt den Kontext:

/compact focus on the auth bug fix
/compact keep only the plan and the diff

Wenn Sie aus demselben Grund immer komprimieren, hinterlegen Sie eine dauerhafte Anweisung in der CLAUDE.md Ihres Projekts unter einer # Compact instructions-Überschrift. In einer neuen Sitzung gibt /compact Not enough messages to compact. aus, was bedeutet, dass noch kein Verlauf vorhanden ist.

Zwei Kostenfaktoren führen hier zu Verwirrung. Die Zusammenfassungsanfrage nutzt Ihren Präfix, sodass der vorhandene Cache gelesen wird, anstatt den Verlauf neu zu verarbeiten; der Großteil der Zeit entfällt auf die Generierung der Zusammenfassung. Das Komprimieren eines großen Kontextes ist dennoch eine große Anfrage, da die zu zusammenfassende Konversation als Input dient. Der nächste Schritt nach der Komprimierung ist nicht der langsame Teil: Der Cache wird für einen viel kürzeren Prompt neu aufgebaut.

Es existieren zwei günstigere Befehle. /rewind [description] setzt Code und Konversation auf einen Checkpoint zurück; für einen Pfad, den Sie vollständig aufgeben möchten, ist dies effizienter als Komprimierung, da er bis zu einem bereits gecachten Präfix kürzt. /recap fügt eine Zusammenfassung als Befehlsausgabe hinzu, anstatt den Verlauf zu ersetzen, wodurch der gecachte Präfix intakt bleibt.

Wiederholte automatische Komprimierung gibt dies aus:

Autocompact is thrashing: the context refilled to the limit...

Die Komprimierung war erfolgreich, aber die Ausgabe einer Datei oder eines Tools hat das Fenster mehrmals hintereinander wieder gefüllt, sodass Claude Code die Wiederholungsversuche eingestellt hat. Beheben Sie dies, indem Sie die zu große Datei in Zeilenbereichen lesen, /compact mit einem Fokus ausführen, der die große Ausgabe verwirft, die Arbeit an einen Subagenten auslagern oder /clear verwenden, falls die vorherige Konversation abgeschlossen ist.

MCP-Server verursachen festen Overhead

Jeder verbundene MCP-Server erhöht den Aufwand für jede Anfrage während der gesamten Sitzung. Die Kosten fallen an, unabhängig davon, ob der Server aufgerufen wird.

Claude Code reduziert diesen Aufwand. MCP-Tool-Definitionen werden standardmäßig verzögert geladen. Daher gelangen nur Tool-Namen in den Kontext, bis Claude ein spezifisches Tool verwendet. Führen Sie /context aus, um die tatsächlichen Kosten Ihrer Server zu sehen, und /mcp disable <name>, um einen Server zu entfernen, den Sie heute nicht benötigen. Wenn Sie eigene MCP-Server auf einem VPS betreiben, gilt dieselbe Logik für die Anzahl der Tools, die ein Server bereitstellen sollte.

Führen Sie dies zu Beginn einer Sitzung aus. Solange Definitionen verzögert geladen werden, fügen das Verbinden oder Trennen eines Servers der Konversation lediglich etwas hinzu; der Cache bleibt erhalten. Werden Definitionen jedoch in den Prefix geladen (weil die Tool-Suche deaktiviert ist oder ein Server von der Verzögerung ausgenommen ist), führt dieselbe Änderung dazu, dass bei der nächsten Anfrage alles erneut gelesen werden muss.

Filtern Sie ausführliche Tool-Ausgaben vor der Übergabe an den Kontext

Ein Tool-Ergebnis dient als Input, und dieser Input wird bei jedem weiteren Turn erneut gesendet. Ein Testlauf, der 20.000 Tokens an Output erzeugt, verursacht keine einmaligen Kosten: Sie bezahlen bei jedem Turn erneut dafür, bis der Output das Kontextfenster verlässt.

Filtern Sie direkt an der Quelle. Ein Hook, der einen Testlauf vor der Verarbeitung durch Claude auf die Fehlermeldungen reduziert, wandelt diese große Menge an Output in wenige hundert Tokens um – für diesen Turn und für jedes erneute Senden:

npm test 2>&1 | grep -E "FAIL|Error:" | head -40

Hooks selbst gelangen nie in den Kontext, da sie als Code ausgeführt werden. Wenden Sie dieses Verfahren bei jedem Tool an, dessen Output die Bildschirmgröße überschreitet. Dieselbe Logik gilt für Dateien mit 3.000 Zeilen: Fordern Sie nur den benötigten Zeilenbereich an, da die gesamte Datei im Kontext verbleibt, sobald sie geladen wurde.

Definieren Sie den Umfang der Agenten-Lesezugriffe und delegieren Sie arbeitsintensive Aufgaben

Ein Prompt, der eine Datei und ein Symptom nennt, liest diese Datei. Eine offene Anfrage zur Projektbereinigung lässt den Agenten entscheiden, welche Inhalte relevant sind; jeder dieser Lesezugriffe belegt den Kontext-Fenster-Speicher.

Delegieren Sie umfangreiche Aufgaben an einen Subagenten. Testläufe und die Verarbeitung von Logs verbrauchen beide signifikanten Kontext; ein Subagent speichert diese Ausgaben in seinem eigenen Fenster und gibt nur eine Zusammenfassung zurück. Der Kompromiss: Ein Subagent baut einen eigenen Cache auf, der beim ersten Aufruf keine Treffer erzielt, und nutzt eine Cache-Lebensdauer von fünf Minuten, selbst bei einem Abonnement. Die Delegation schützt zuverlässig Ihren Hauptkontext. Sie reduziert nicht immer die Gesamtzahl der Tokens.

Der Cache-Takt: Arbeiten in Intervallen

Das Prompt-Caching macht das erneute Senden kostengünstig: 0,1x der Basis-Inputrate zum Lesen des Präfix, gegenüber 1,25x zum Schreiben oder 2x beim Schreiben bei einer Lebensdauer von einer Stunde. Jede Nutzung aktualisiert den Eintrag ohne zusätzliche Kosten, sodass der Takt ab der letzten Nutzung läuft.

Welche Lebensdauer Sie erhalten, hängt von Ihrer Authentifizierung ab. Die allgemeine Aussage „Ihr Cache läuft nach fünf Minuten ab“ ist daher falsch.

  • Bei einem Claude-Abonnement fordert Claude Code automatisch die eine Stunde Lebensdauer an.
  • Sobald Sie das Limit Ihres Plans überschritten haben und Usage-Credits nutzen, werden diese Kosten berechnet, wodurch die Lebensdauer auf fünf Minuten sinkt.
  • Bei einem API-Key oder einem Cloud-Anbieter bleibt sie bei fünf Minuten. ENABLE_PROMPT_CACHING_1H=1 aktiviert die eine Stunde Lebensdauer, und FORCE_PROMPT_CACHING_5M=1 erzwingt die Reduzierung.

Die Empfehlung zum Rhythmus ist in jedem Fall gleich: Arbeiten Sie in kontinuierlichen Intervallen. Eine Leerlaufphase, die über die Lebensdauer hinausgeht, führt dazu, dass beim nächsten Durchgang das gesamte akkumulierte Präfix neu geschrieben werden muss. Eine getrennte Claude Code Session in tmux kostet im Leerlauf nichts; der warme Cache ist das, was durch die Leerlaufzeit verloren geht.

Einige Aktionen löschen den Cache, während Sie noch arbeiten: Modellwechsel, Änderung des Effort-Levels, Aktivieren des Fast-Mode, Verbinden oder Trennen eines MCP-Servers, Aktivieren oder Deaktivieren eines Plugins, Verweigern eines gesamten Tools, Komprimieren und Upgraden von Claude Code. /model ist eine häufige Überraschung, da jedes Modell seinen eigenen Cache besitzt. Der nächste Request liest daher die gesamte Historie ohne Cache-Hits, selbst wenn der Inhalt identisch ist.

Das Bearbeiten von Dateien, das Bearbeiten von CLAUDE.md, das Aufrufen von Skills und Commands, das Ausführen von /recap, Rewinding und das Starten eines Subagents behalten den Cache bei. Der Cache ist auf eine Maschine und ein Verzeichnis beschränkt. Zwei Sessions in unterschiedlichen Verzeichnissen können nicht auf den Cache des jeweils anderen zugreifen.

Um zu prüfen, ob das Caching funktioniert, lesen Sie current_usage. cache_creation_input_tokens wurde mit der Cache-Schreibrate erstellt; cache_read_input_tokens wurde mit etwa einem Zehntel der Standard-Inputrate ausgeliefert. Ein hohes Verhältnis von Reads zu Creations ist ein Zeichen für ein gesundes System. Wenn die Creations konsequent hoch bleiben, ändert sich etwas in Ihrem Präfix ständig.

Löst ein größeres Context Window dieses Problem?

Teilweise. Mehrere aktuelle Modelle unterstützen ein Context Window von 1 Million Token. Die Kompression funktioniert bei diesem höheren Limit auf die gleiche Weise. Die Wirtschaftlichkeit ändert sich nicht, da der vollständige Prompt bei jedem Durchgang erneut gesendet wird und entsprechend abgerechnet wird. Ein größeres Fenster bestimmt lediglich den Zeitpunkt, an dem Sie eingreifen müssen; die Hygiene bestimmt die Kosten. Wenn die Abrechnung das Problem darstellt und nicht das Limit, entscheidet welcher Claude-Plan zu Ihrer Arbeitsweise passt, ob Sie Dollar oder das Plan-Kontingent verbrauchen.

Kontextbearbeitung und Kompaktierung sind in der API unterschiedliche Funktionen

Wenn Sie einen eigenen Agenten über die Messages API erstellen, existieren keine Slash-Commands; diese müssen Sie selbst implementieren. Zwei serverseitige Funktionen erfüllen diese Aufgabe, wobei es sich um unterschiedliche Funktionen handelt.

Kontextbearbeitung (Context editing) löscht selektiv bestimmte Inhalte aus dem Gesprächsverlauf, während dieser wächst. Jeder gelöschte Inhalt wird durch Platzhaltertext ersetzt, damit Claude erkennt, dass Informationen entfernt wurden. Dies ist eine Beta-Funktion: Senden Sie anthropic-beta: context-management-2025-06-27 und konfigurieren Sie die Strategien unter context_management.edits. clear_tool_uses_20250919 löscht Tool-Ergebnisse, und clear_thinking_20251015 verwaltet Thinking-Blocks. Der Standardwert für trigger liegt bei 100.000 Input-Tokens, für keep bei den letzten 3 Tool-Aufrufen und für clear_tool_inputs bei false, sodass Inputs erhalten bleiben und nur Ergebnisse gelöscht werden.

Kompaktierung (Compaction) erstellt eine Zusammenfassung und ersetzt den vollständigen Gesprächsverlauf durch diese. Dies ist ebenfalls eine Beta-Funktion: Senden Sie anthropic-beta: compact-2026-01-12 und verwenden Sie den Edit-Typ compact_20260112. Der Trigger ist standardmäßig auf {"type": "input_tokens", "value": 150000} eingestellt; der Wert muss mindestens 50.000 betragen.

Die Kompaktierung enthält eine Übergaberegel, die Agenten fehlerhaft macht. Die Antwort beginnt mit einem compaction Content-Block, der die Zusammenfassung enthält, gefolgt von einem normalen Text-Block. Sie müssen diesen Block bei späteren Anfragen wieder mitübergeben; die API verwirft dann alle Content-Blöcke, die vor diesem Block liegen. In der Praxis bedeutet das: Hängen Sie den gesamten Inhalt von response.content an, nicht nur den Text.

Die Dokumentation von Anthropic bezeichnet die serverseitige Kompaktierung als primäre Strategie zur Kontextverwaltung in langlaufenden Konversationen. Die Kontextbearbeitung ist die Option für eine präzisere Kontrolle darüber, welche Inhalte gelöscht werden. Prüfen Sie zuerst die Modellunterstützung. Die aktuellen Modelle Opus, Sonnet und Fable unterstützen die Kompaktierung; claude-haiku-4-5 unterstützt sie nicht. Die Kompaktierungs-Seite enthält die aktuelle Liste. Keine der Beta-Funktionen steuert die interne /compact von Claude Code; laut Dokumentation handelt es sich dabei um eine einmalige Zusammenfassungsanfrage, die der Client sendet.

FAQ

Warum wird meine Claude Code Session mit zunehmender Laufzeit langsamer und teurer?

Da bei jedem Turn die gesamte Konversation erneut gesendet wird, enthält eine einzeilige Frage in einer den ganzen Tag geöffneten Session den gesamten Verlauf des Tages. Prompt Caching hält die Kosten niedrig, solange der Cache warm ist (0.1x der Basis-Inputrate für einen Read); sobald ein Turn den Cache verfehlt, wird derselbe Präfix mit 1.25x erneut gesendet. Führen Sie /context aus, um zu sehen, was das Fenster füllt, und lesen Sie was eine Claude Code Session berechnet, um den Mechanismus zu verstehen.

Was ist der Unterschied zwischen /clear und /compact in Claude Code?

/clear startet eine neue Konversation mit leerem Kontext. Es wird keine Anfrage gesendet, daher entstehen keine Kosten; dies ist die richtige Wahl bei nicht zusammenhängenden Aufgaben. /compact behält die gleiche Konversation bei und ersetzt den Verlauf durch eine Zusammenfassung; dies ist die richtige Wahl innerhalb einer langen Aufgabe. Geben Sie einen Fokus an, wie in /compact keep only the plan and the diff, da die Anweisung bestimmt, welche Inhalte erhalten bleiben.

Wie sehe ich, was mein Claude Code Kontextfenster verbraucht?

Führen Sie /context aus oder /context all für eine vollständige Aufschlüsselung pro Element. Es zeigt den System Prompt, Tool-Definitionen, MCP-Server, Memory-Dateien und den Verlauf als farbiges Raster an, inklusive Vorschlägen für kontextintensive Tools und Memory-Bloat. Bei einem kostenpflichtigen Plan ordnet /usage die aktuelle Nutzung zudem einzelnen Skills, Subagents und MCP-Servern zu.

Sollte ich ein 1-Million-Token-Kontextfenster anstatt Compaction verwenden?

Ein größeres Fenster verzögert das Problem nur, anstatt es zu lösen. Mehrere aktuelle Modelle unterstützen ein 1-Million-Token-Kontextfenster, darunter Opus 4.8 und Sonnet 5; dort verhält sich Compaction identisch. Jeder Turn sendet den vollständigen Prompt weiterhin erneut und verursacht entsprechende Kosten. Eine 400.000-Token-Konversation ist also teuer, unabhängig davon, ob sie in das Fenster passt oder nicht.

Was ist der Unterschied zwischen Context Editing und Compaction in der Claude API?

Context Editing löscht selektiv alte Inhalte, hauptsächlich Tool-Ergebnisse, und hinterlässt Platzhalter an der jeweiligen Stelle, damit Claude erkennt, dass der Inhalt entfernt wurde. Compaction erstellt eine Zusammenfassung und ersetzt den vollständigen Verlauf durch diese. Die Dokumentation von Anthropic bezeichnet Compaction als die primäre Strategie für langlaufende Konversationen und positioniert Context Editing als die Option für feingranulare Anpassungen. Beide Funktionen befinden sich in der Beta-Phase und sind unabhängig von der /compact von Claude Code.