Claude Code sessie traag of duur maken?
Voorkom hoge kosten door de volledige context bij elke beurt te verzenden. Gebruik /context om uw venster te beheren en de token meter te verlagen.
Hoe u voorkomt dat een lange Claude Code-sessie traag en duur wordt
Een lange Claude Code-sessie wordt traag en duur omdat bij elke beurt de volledige context opnieuw wordt verzonden. Deze context blijft alleen maar groeien. De oplossing is hygiëne in een vaste volgorde. Gebruik /context om te zien wat het venster vult. Verwijder de items waarvoor u bij elke aanvraag betaalt. Gebruik vervolgens /clear tussen niet-gerelateerde taken en /compact met een instructie binnen één lange taak. Werk in aaneengesloten periodes, omdat een koude prompt cache een goedkope read verandert in een volledige re-write van alles wat u heeft gezegd.
De reden waarom de meter überhaupt oploopt, wordt uitgelegd in de token meter achter een agent session.
Lees /context voordat u iets wijzigt
Gok niet wat het venster vult. Claude Code geeft dit aan.
/context [all] tekent het huidige contextgebruik als een gekleurd raster, met optimalisatiesuggesties voor tools met een zware context en geheugenbelasting; all vergroot de gedetailleerde weergave per item in fullscreen-modus. Lees het resultaat als vijf categorieën.
- The system prompt. De eigen instructies van Claude Code. Vastgesteld voor de sessie.
- Tool definitions. Het schema voor elke tool die de agent kan aanroepen, inclusief elke verbonden MCP (Model Context Protocol) server.
- Memory files.
CLAUDE.mden auto memory, geladen bij de start van de sessie. - Files and tool results. Elk gelezen bestand en alle output van uw commando's.
- Message history. Uw berichten en de antwoorden daarop.
De eerste drie vormen een vaste belasting die bij elke aanvraag wordt ingehouden gedurende de sessie. De laatste twee groeien. Beperk de vaste belasting eenmalig aan het begin; beheer het groeiende deel continu.
Twee strings geven aan dat het venster vol is:
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.De eerste is een harde limiet en de aanvraag wordt geweigerd; de bijbehorende API (application programming interface) foutmelding is Prompt is too long. De tweede is een compaction window, die lager kan liggen dan het werkelijke contextvenster van het model bij een 1 million token model. Aanvragen lukken nog steeds voorbij dit punt, dus dit is een waarschuwing in plaats van een weigering.
Bij een betaald abonnement voegt /usage de andere helft toe, waarbij gedragingen zoals een lange context of cache misses worden gemarkeerd en recent gebruik wordt toegeschreven aan individuele skills, subagents en MCP servers.
CLAUDE.md is een permanente belasting, houd het daarom compact
Uw CLAUDE.md wordt geladen in de context bij de start van de sessie en blijft aanwezig. Als dit bestand een gedetailleerde procedure voor deployment bevat, verbruikt u tokens voor die informatie terwijl u slechts een typefout in een testbestand herstelt. De richtlijn van Anthropic is om alleen essentiële informatie op te nemen en het bestand onder de 200 regels te houden.
Verplaats procedures naar skills. Een skill wordt alleen geladen wanneer deze wordt aangeroepen. Een workflow die u twee keer per week uitvoert, kost op de overige dagen dus niets. Skills hebben een eigen budget na een compaction: de inhoud wordt opnieuw ingeladen, met een limiet van 5.000 tokens per skill en 25.000 in totaal. Hierbij wordt de oudste informatie als eerste verwijderd. Bij inkorting blijft het begin van het bestand behouden. Plaats daarom de belangrijkste instructies bovenaan SKILL.md.
Wat behouden blijft na een compaction bepaalt waar een instructie thuishoort.
- De system prompt en de output style blijven ongewijzigd, omdat deze geen deel uitmaken van de message history.
- De project-root
CLAUDE.md, unscoped rules en auto memory worden opnieuw ingeladen vanaf de schijf. - Een rule met
paths:frontmatter gaat verloren totdat het bijbehorende bestand opnieuw wordt ingelezen. - Een geneste
CLAUDE.mdin een subdirectory gaat verloren totdat een bestand in die subdirectory opnieuw wordt ingelezen. - Hooks worden niet beïnvloed, omdat een hook als code wordt uitgevoerd en nooit in de context komt.
Een rule waar u afhankelijk van bent, hoort dus in de project-root CLAUDE.md: Claude Code verwijdert eerst oudere tool outputs en vat daarna samen. Hierdoor kunnen instructies van het begin van het gesprek verloren gaan. Bewerk het geheugen met /memory. Claude Code houdt de kopie aan die bij de start van de sessie is geladen. Een inkorting tijdens de sessie behoudt de prompt cache en wordt pas toegepast bij de volgende /clear, /compact of een restart.
/clear tussen taken, /compact binnen één taak
Deze twee lijken uitwisselbaar, maar de kosten verschillen sterk.
/clear [name] start een nieuwe conversatie met een lege context. Er wordt geen verzoek verzonden, dus het kost niets. Geef een naam op om de vorige conversatie te labelen in de /resume picker; /reset en /new zijn aliassen. Gebruik dit direct wanneer u naar een niet-gerelateerde taak wisselt. Anders wordt de oude taak opnieuw verzonden en opnieuw in rekening gebracht bij elk bericht in de nieuwe taak.
/compact [instructions] maakt context vrij binnen dezelfde conversatie: het vat de geschiedenis tot nu toe samen en vervangt deze. Gebruik dit tijdens één lange taak waarbij continuïteit vereist is.
Geef /compact altijd een instructie. Een losse /compact vat samen met een standaard prompt die niet weet welk deel van het werk u nog moet uitvoeren. Een instructie houdt de context vast:
/compact focus on the auth bug fix
/compact keep only the plan and the diffAls u om dezelfde reden telkens compacteert, plaats dan een vaste instructie in de CLAUDE.md van uw project onder een # Compact instructions koptekst. In een nieuwe sessie print /compact Not enough messages to compact., wat betekent dat er nog geen geschiedenis is.
Er ontstaat hier verwarring over twee kostenposten. Het samenvattingsverzoek deelt uw prefix, dus het leest de bestaande cache in plaats van de geschiedenis opnieuw te verwerken. De meeste tijd gaat naar het genereren van de samenvatting. Het compacten van een grote context is nog steeds een groot verzoek, omdat de conversatie die wordt samengevat als input dient. De beurt na het compacten is niet het trage deel: het herbouwt de cache voor een veel kortere prompt.
Er bestaan twee goedkopere commando's. /rewind [description] zet code en de conversatie terug naar een checkpoint; voor een pad dat u volledig wilt verlaten is dit beter dan compacten, omdat het teruggaat naar een prefix die al in de cache staat. /recap voegt een samenvatting toe als commando-output in plaats van de geschiedenis te vervangen, waardoor de gecachte prefix intact blijft.
Automatisch compacten dat herhaaldelijk wordt uitgevoerd, print dit:
Autocompact is thrashing: the context refilled to the limit...Compaction is geslaagd, maar de output van een bestand of tool heeft het venster meerdere keren achter elkaar opnieuw gevuld, waardoor Claude Code is gestopt met opnieuw proberen. Herstel door het te grote bestand in regelbereiken te lezen, /compact uit te voeren met een focus die de grote output negeert, de taak te verplaatsen naar een subagent, of /clear te gebruiken als de eerdere conversatie is voltooid.
MCP servers zorgen voor vaste overhead
Elke verbonden MCP server verhoogt de overhead voor elke request gedurende de gehele sessie. U betaalt voor de server, ongeacht of u deze aanroept.
Claude Code vermindert dit effect. MCP tool definitions worden standaard uitgesteld, waardoor alleen tool names in de context staan totdat Claude een specifieke tool gebruikt. Gebruik /context om de werkelijke kosten van uw servers te zien, en /mcp disable <name> om een server te verwijderen die u vandaag niet gebruikt. Indien u eigen MCP servers op een VPS gebruikt, geldt dezelfde logica voor het aantal tools dat een server moet exposen.
Voer deze acties uit aan het begin van een sessie. Zolang definitions uitgesteld blijven, voegt het verbinden of ontkoppelen van een server alleen iets toe aan het gesprek en blijft de cache behouden. Wanneer definitions in de prefix worden geladen (omdat tool search uit staat of een server is vrijgesteld van uitstel), zorgt dezelfde wijziging ervoor dat de volgende request alles opnieuw moet inlezen.
Filter de output van uitgebreide tools voordat deze de context ingaat
Een toolresultaat is input, en input wordt bij elke volgende beurt opnieuw verzonden. Een testrun die 20,000 tokens aan output genereert, is geen eenmalige kostenpost: u betaalt hiervoor opnieuw bij elke beurt totdat de output het venster verlaat.
Filter bij de bron. Een hook die een testrun beperkt tot alleen de fouten voordat Claude deze ziet, reduceert die enorme hoeveelheid output tot enkele honderden tokens, zowel bij deze beurt als bij elke herhalingsbeurt.
npm test 2>&1 | grep -E "FAIL|Error:" | head -40Hooks komen zelf nooit in de context terecht, omdat ze als code worden uitgevoerd. Pas dit toe voor elke tool waarvan de output een scherm overschrijdt. Dezelfde logica geldt voor een bestand van 3,000 regels: vraag alleen het benodigde regelbereik op, omdat het volledige bestand in het venster blijft staan zodra het is ontvangen.
Beperk de scope van de agent en delegeer repetitief werk
Een prompt die een specifiek bestand en een symptoom noemt, leest dat bestand. Een algemeen verzoek om een project op te schonen, leest alles wat de agent relevant acht. Elke leesactie blijft in het contextvenster aanwezig.
Delegeer uitgebreid werk naar een subagent. Testruns en het verwerken van logs verbruiken beide veel context; een subagent houdt die output in een eigen venster en geeft alleen een samenvatting terug. Het nadeel: een subagent bouwt een eigen cache op die bij de eerste aanroep geen hits heeft, en gebruikt een cache-levensduur van vijf minuten, zelfs bij een abonnement. Delegeren beschermt uw hoofdcontext betrouwbaar. Het verlaagt niet altijd het totale aantal tokens.
De cache-klok: werk in blokken
Prompt caching maakt het opnieuw verzenden betaalbaar: 0.1x de basis invoerrate om de prefix te lezen, tegenover 1.25x om deze te schrijven, of 2x om deze te schrijven bij een levensduur van één uur. Elke keer dat u de cache gebruikt, wordt de vermelding zonder extra kosten ververst. De klok begint dus te lopen vanaf het laatste gebruik.
Welke levensduur u krijgt, hangt af van uw authenticatiemethode. Een algemene stelling als "uw cache vervalt na vijf minuten" is daarom onjuist.
- Bij een Claude-abonnement vraagt Claude Code automatisch om een levensduur van één uur.
- Zodra u de limiet van uw abonnement overschrijdt en gebruikmaakt van usage credits, worden deze kosten in rekening gebracht. De levensduur gaat dan terug naar vijf minuten.
- Bij een API-key of een cloudprovider blijft de levensduur op vijf minuten staan.
ENABLE_PROMPT_CACHING_1H=1kiest voor de levensduur van één uur, enFORCE_PROMPT_CACHING_5M=1dwingt de kortere periode af.
Het advies over de werkwijze is in beide gevallen hetzelfde: werk in aaneengesloten blokken. Een stilstand die langer duurt dan de levensduur zorgt ervoor dat de volgende actie de volledige geaccumuleerde prefix opnieuw moet schrijven. Een detached Claude Code session in tmux kost niets tijdens inactiviteit, maar u verliest de warme cache door de stilstand.
Sommige acties verwijderen de cache terwijl u nog aan het werk bent: het wisselen van modellen, het wijzigen van het effort level, het inschakelen van fast mode, het verbinden of loskoppelen van een MCP server, het in- of uitschakelen van een plugin, het weigeren van een volledige tool, compacting, en het upgraden van Claude Code. /model is een veelvoorkomende verrassing, omdat elk model zijn eigen cache heeft. De volgende aanvraag leest de volledige geschiedenis zonder cache hits, zelfs als de inhoud identiek is.
Het bewerken van bestanden, het bewerken van CLAUDE.md, het aanroepen van skills en commands, het uitvoeren van /recap, rewinding, en het starten van een subagent behouden de cache. De cache is beperkt tot één machine en één directory. Twee sessies in verschillende directories kunnen elkaars cache dus niet gebruiken.
Lees current_usage om te controleren of caching werkt. cache_creation_input_tokens werd geschreven tegen het cache-schrijftarief; cache_read_input_tokens werd geleverd tegen ongeveer een tiende van de standaard invoerrate. Een hoge read-to-creation ratio is een positief teken. Als de creation-waarde bij elke beurt hoog blijft, verandert er iets in uw prefix.
Losten een groter context window dit op?
Gedeeltelijk. Verschillende huidige modellen ondersteunen een context window van 1 miljoen tokens. Compaction werkt op deze grotere limiet op dezelfde manier. De economische aspecten veranderen niet, omdat de volledige prompt nog steeds bij elke beurt opnieuw wordt verzonden en gefactureerd. Een groter window bepaalt wanneer u moet ingrijpen; hygiene bepaalt de kosten. Als de factuur het probleem is in plaats van de limiet, dan welk Claude-abonnement bij uw werkwijze past bepaalt of u dollars uitgeeft of uw abonnementlimiet gebruikt.
Context editing en compaction zijn verschillende functies in de API
Als u uw eigen agent bouwt via de Messages API, bestaan er geen slash commands; u moet deze zelf implementeren. Twee server-side functies voeren deze taken uit, maar het zijn verschillende functies.
Context editing verwijdert selectief specifieke inhoud uit de gesprekshistorie naarmate deze groeit. Elk verwijderd resultaat wordt vervangen door placeholder-tekst, zodat Claude weet dat er iets is verwijderd. Dit is een beta-versie: stuur anthropic-beta: context-management-2025-06-27 en configureer strategieën onder context_management.edits. clear_tool_uses_20250919 verwijdert tool-resultaten, en clear_thinking_20251015 beheert thinking blocks. De trigger staat standaard op 100,000 input tokens, keep op de laatste 3 tool-gebruiken, en clear_tool_inputs op false, zodat inputs behouden blijven en alleen resultaten worden verwijderd.
Compaction genereert een samenvatting en vervangt de volledige gesprekshistorie hiermee. Dit is ook een beta-versie: stuur anthropic-beta: compact-2026-01-12 en gebruik het edit type compact_20260112. De trigger staat standaard op {"type": "input_tokens", "value": 150000}, en de waarde moet minimaal 50,000 zijn.
Compaction heeft één handoff-regel die agents onopgemerkt kan verstoren. De respons begint met een compaction content block met de samenvatting, gevolgd door het normale tekstblok. U moet dat blok bij latere verzoeken opnieuw meesturen; de API verwijdert dan elk content block dat daarvoor staat. In de praktijk: voeg de volledige response.content toe, niet alleen de tekst.
De documentatie van Anthropic beschrijft server-side compaction als de primaire strategie voor contextbeheer in langlopende gesprekken. Context editing is de optie voor fijnmazige controle over wat wordt verwijderd. Controleer eerst de modelondersteuning. De huidige Opus, Sonnet en Fable modellen ondersteunen compaction; claude-haiku-4-5 doet dit niet. De compaction-pagina bevat de actuele lijst. Geen van beide beta-functies drijft de eigen /compact van Claude Code; de documentatie beschrijft dit als een eenmalige summarization request die de client verzendt.
FAQ
Waarom wordt mijn Claude Code-sessie trager en duurder naarmate deze langer loopt?
Omdat de volledige conversatie bij elke beurt opnieuw wordt verzonden. Een vraag van één regel in een sessie die de hele dag openstaat, bevat de volledige geschiedenis van die dag. Prompt caching houdt de kosten laag zolang de cache warm is, tegen 0.1x het basis tarief voor een read. Zodra een beurt de cache mist, wordt dezelfde prefix opnieuw geschreven tegen 1.25x. Gebruik /context om te zien wat het venster vult, en lees waar Claude Code u voor belast voor de werking van het mechanisme.
Wat is het verschil tussen /clear en /compact in Claude Code?
/clear start een nieuwe conversatie met een lege context. Er wordt geen verzoek verzonden, dus het kost niets. Dit is de juiste keuze tussen niet-gerelateerde taken. /compact behoudt dezelfde conversatie en vervangt de geschiedenis door een samenvatting. Dit is de juiste keuze binnen één langlopende taak. Geef het een focus, zoals in /compact keep only the plan and the diff, omdat de instructie bepaalt wat behouden blijft.
Hoe zie ik wat mijn Claude Code context window verbruikt?
Voer /context uit, of /context all voor een volledige specificatie per item. Het toont de system prompt, tool definitions, MCP servers, memory files en de geschiedenis in een gekleurd raster, inclusief suggesties voor tools met een zware context en memory bloat. Bij een betaald abonnement wijst /usage recente consumptie ook toe aan individuele skills, subagents en MCP servers.
Moet ik een context window van 1 miljoen tokens gebruiken in plaats van compacting?
Een groter window stelt het probleem uit in plaats van het op te lossen. Verschillende huidige modellen ondersteunen een context window van 1 miljoen tokens, waaronder Opus 4.8 en Sonnet 5, en compaction werkt daar op dezelfde manier. Elke beurt verzendt nog steeds de volledige prompt en wordt hiervoor in rekening gebracht. Een conversatie van 400,000 tokens is dus duur, ongeacht of deze in het venster past.
Wat is het verschil tussen context editing en compaction in de Claude API?
Context editing verwijdert selectief oude inhoud, voornamelijk tool results, en laat placeholder tekst achter op de plek waar de inhoud stond. Zo weet Claude dat de inhoud is verwijderd. Compaction genereert een samenvatting en vervangt de volledige geschiedenis hiermee. De documentatie van Anthropic noemt compaction de primaire strategie voor langlopende conversaties en positioneert context editing als de fijnmazige optie. Beide functies zijn bètaversies met eigen headers, en beide staan los van de /compact van Claude Code.