SSD Nodes Learn Hosting plans →
Gidsen Matt ConnorDoor Matt Connor

Claude Code sessie vertraagt: zo verlaagt u de kosten

Voorkom hoge kosten en trage Claude Code sessies door uw context effectief te beheren. Leer hoe u met /context, /compact en /clear de tokenbelasting per beurt minimaliseert.

Hoe u voorkomt dat een lange Claude Code-sessie traag en kostbaar wordt

Een lange Claude Code-sessie wordt traag en kostbaar omdat bij elke beurt de volledige context opnieuw wordt verzonden, terwijl deze context alleen maar groeit. De oplossing is hygiëne in een vaste volgorde. Voer /context uit om te zien wat het venster vult, verwijder de items waarvoor u bij elk verzoek betaalt, en gebruik vervolgens /clear tussen ongerelateerde taken en /compact met een instructie binnen één lange taak. Werk in aaneengesloten periodes, omdat een koude prompt-cache een goedkope leesactie verandert in een volledige herschrijving van alles wat u heeft gezegd.

Waarom de meter überhaupt loopt, wordt beantwoord in de tokenmeter achter een agentsessie.

Lees /context voordat u wijzigingen aanbrengt

Gok niet wat het venster vult. Claude Code zal het u vertellen.

/context [all] geeft het huidige contextgebruik weer als een gekleurd raster, met optimalisatiesuggesties voor tools die veel context verbruiken en bij geheugenproblemen; all vergroot het overzicht per item in de volledigeschermmodus. Lees het resultaat als vijf categorieën.

  • De systeem-prompt. De instructies voor de werking van Claude Code zelf. Vastgelegd voor de sessie.
  • Tooldefinities. Het schema voor elke tool die de agent kan aanroepen, inclusief elke verbonden MCP (Model Context Protocol) server.
  • Geheugenbestanden. CLAUDE.md en automatisch geheugen, geladen bij de start van de sessie.
  • Bestanden en toolresultaten. Elk gelezen bestand en alles wat uw commando's hebben teruggegeven.
  • Berichtgeschiedenis. Uw beurten en de antwoorden daarop.

De eerste drie vormen een vaste belasting die bij elk verzoek gedurende de sessie wordt betaald. De laatste twee groeien. Verlaag de vaste belasting één keer 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 het verzoek wordt geweigerd; de bijbehorende API (application programming interface) foutmelding luidt Prompt is too long. De tweede is een compactievenster, dat onder het werkelijke contextvenster van het model kan liggen bij een model van 1 miljoen tokens. Verzoeken slagen nog steeds na dit punt, dus dat is eerder een waarschuwing dan een weigering.

Bij een betaald abonnement voegt /usage de andere helft toe, waarbij gedrag zoals een lange context of cache-missers wordt gemarkeerd en recent gebruik wordt toegeschreven aan individuele vaardigheden, subagents en MCP-servers. Als het aangeeft dat het quotum al is verbruikt, bepaalt op welk limietvenster u wacht of het inkorten van de context u nu helpt of dat u een andere route terug naar het werk nodig heeft.

CLAUDE.md is een permanente belasting, dus houd het beknopt

Uw CLAUDE.md wordt bij het starten van de sessie in het geheugen geladen en blijft daar aanwezig. Als dit bestand een gedetailleerde implementatieprocedure bevat, verbruiken die tokens ruimte terwijl u bijvoorbeeld een typefout in een testbestand corrigeert. Het advies 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, waardoor een workflow die u twee keer per week uitvoert op de overige dagen geen tokens kost. Skills hebben hun eigen budget na een compressie: de inhoud wordt opnieuw ingevoegd, met een limiet van 5.000 tokens per skill en 25.000 in totaal, waarbij de oudste gegevens als eerste worden verwijderd. Bij inkorting blijft het begin van het bestand behouden, dus plaats de belangrijkste instructies bovenaan in SKILL.md.

Wat overblijft na een compressie bepaalt waar een instructie thuishoort.

  • De systeemprompt en de uitvoerstijl blijven ongewijzigd, omdat deze geen deel uitmaken van de berichtgeschiedenis.
  • Het CLAUDE.md in de projectmap, algemene regels en het automatische geheugen worden opnieuw vanaf de schijf ingeladen.
  • Een regel met paths:-frontmatter gaat verloren totdat een bijbehorend bestand opnieuw wordt gelezen.
  • Een geneste CLAUDE.md in een submap gaat verloren totdat een bestand in die submap opnieuw wordt gelezen.
  • Hooks blijven actief, omdat een hook als code wordt uitgevoerd; alleen de context die een hook eerder heeft toegevoegd, wordt samengevat met de rest van het gesprek.

Een regel waar u op vertrouwt, hoort daarom thuis in het CLAUDE.md van de projectmap: Claude Code wist eerst oudere tool-uitvoer en vat daarna samen, waardoor instructies van vroeg in het gesprek verloren kunnen gaan. Bewerk het geheugen met /memory. Claude Code behoudt de kopie die bij de start van de sessie is geladen; een inkorting halverwege de sessie behoudt de prompt-cache en wordt pas toegepast bij de volgende /clear, /compact of herstart. Contextverlies is slechts één reden waarom een regel niet langer wordt opgevolgd. Wanneer de regel duidelijk nog in het venster staat en toch wordt genegeerd, doorloop dan de andere oorzaken voordat u de regel herschrijft.

/clear tussen taken, /compact binnen één taak

Deze twee lijken uitwisselbaar, maar de kosten verschillen aanzienlijk.

/clear [name] start een nieuw gesprek met een lege context. Er wordt geen verzoek verzonden, dus dit kost niets. Geef een naam op om het vorige gesprek in de /resume-kiezer te labelen; /reset en /new zijn aliassen. Gebruik dit commando zodra u overschakelt naar een niet-gerelateerde taak, omdat de oude taak anders bij elk nieuw bericht opnieuw wordt verzonden en gefactureerd.

/compact [instructions] maakt context vrij terwijl hetzelfde gesprek wordt voortgezet: het vat de geschiedenis tot nu toe samen en vervangt deze. Gebruik dit binnen één lange taak waarbij u continuïteit nodig heeft.

Geef /compact altijd een instructie. Een kale /compact vat samen op basis van een standaardprompt die niet weet welk deel van het werk u nog nodig heeft. Een instructie behoudt de relevante context:

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

Als u om dezelfde reden steeds opnieuw comprimeert, plaats dan een vaste instructie in de CLAUDE.md van uw project onder een # Compact instructions-kop. In een nieuwe sessie print /compact de melding Not enough messages to compact., wat betekent dat het gesprek te weinig interacties bevat om samen te vatten; dit kan zelfs gebeuren bij een volledige context, wanneer een enkele grote plakactie deze heeft gevuld.

Twee soorten kosten worden hier vaak verward. Het samenvattingsverzoek deelt uw prefix, waardoor het de bestaande cache leest in plaats van de geschiedenis opnieuw te verwerken, en het grootste deel van de tijd gaat zitten in het genereren van de samenvatting. Het comprimeren van een grote context blijft een groot verzoek, omdat het gesprek dat wordt samengevat de invoer vormt. De interactie na de compressie is niet het trage onderdeel: het herbouwt de cache voor een veel kortere prompt.

Er bestaan twee goedkopere commando's. /rewind rolt code en gesprek terug naar een checkpoint; voor een pad dat u volledig wilt verlaten is dit beter dan comprimeren, omdat het inkort tot 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.

Automatische compressie die herhaaldelijk wordt geactiveerd, geeft de volgende melding:

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

Compressie is geslaagd, maar een bestand of tool-output heeft het venster meerdere keren achter elkaar gevuld, waardoor Claude Code is gestopt met opnieuw proberen. Herstel dit door het te grote bestand in regelbereiken te lezen, /compact uit te voeren met een focus die de grote output weglaat, dat werk te verplaatsen naar een subagent, of /clear te gebruiken als het eerdere gesprek is afgerond.

MCP-servers hebben een vaste overhead

Elke MCP-server waarmee u verbinding maakt, voegt overhead toe aan elk verzoek gedurende de gehele sessie. U betaalt hiervoor, ongeacht of u de server aanroept of niet.

Claude Code verzacht dit effect. MCP-tooldefinities worden standaard uitgesteld; alleen de toolnamen worden in de context geladen totdat Claude een specifieke tool gebruikt. Voer /context uit om te zien wat uw servers daadwerkelijk kosten, en gebruik /mcp disable <name> om een server te verwijderen die u vandaag niet zult gebruiken. Als u uw eigen MCP-servers op een VPS draait, beperkt dezelfde rekensom hoeveel tools één server zou moeten aanbieden.

Doe dit aan het begin van een sessie. Hoewel definities uitgesteld blijven, zorgt het verbinden of verbreken van een server er alleen voor dat er iets aan het gesprek wordt toegevoegd, waardoor de cache behouden blijft. In gevallen waar definities in het voorvoegsel worden geladen, omdat het zoeken naar tools is uitgeschakeld, niet beschikbaar is of onder de drempelwaarde van auto ligt, zorgt dezelfde wijziging ervoor dat elk volgend verzoek alles opnieuw moet inlezen.

Filter uitgebreide tool-output voordat deze in de context terechtkomt

Een tool-resultaat is input, en input wordt bij elke volgende beurt opnieuw verzonden. Een testrun die 20.000 tokens aan output dumpt, is geen eenmalige kostenpost: u betaalt er bij elke beurt opnieuw voor totdat deze uit het venster verdwijnt.

Filter bij de bron. Een hook die een testrun reduceert tot alleen de foutmeldingen voordat Claude deze ziet, verandert die muur van output in een paar honderd tokens, zowel bij deze beurt als bij elke volgende keer dat deze opnieuw wordt verzonden:

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

Hooks komen zelf nooit in de context terecht, omdat ze als code worden uitgevoerd. Doe dit voor elke tool waarvan de output langer is dan één scherm. Dezelfde logica geldt voor een bestand van 3.000 regels: vraag om het bereik van regels dat u nodig heeft, omdat het volledige bestand in het venster blijft staan zodra het is binnengekomen.

Bepaal wat de agent leest en delegeer taken die veel ruis veroorzaken

Een prompt die het bestand en het symptoom benoemt, leest dat specifieke bestand. Een algemeen verzoek om het project op te schonen leest alles wat de agent relevant acht, en elk van die leesacties blijft in het venster staan.

Delegeer uitgebreid werk aan een subagent. Testruns en logverwerking verbruiken beide daadwerkelijke context; een subagent houdt die uitvoer in zijn eigen venster en retourneert alleen een samenvatting. De afweging: een subagent bouwt zijn eigen cache op zonder hits bij de eerste aanroep, en gebruikt de cache-levensduur van vijf minuten, zelfs bij een abonnement. Delegatie beschermt uw hoofdcontext op betrouwbare wijze. Het verlaagt niet altijd het totale aantal tokens.

De cache-klok: werk in blokken

Prompt-caching maakt het opnieuw verzenden betaalbaar. Het schrijven van het voorvoegsel kost 1,25x het basistarief voor invoer, of 2x bij een levensduur van een uur. Het teruglezen kost 0,1x op Haiku 5.5, 0,05x op Opus 5.5 en Sonnet 5.5 ($0,20 en $0,10 per miljoen tokens), en 0,025x op Fable 5.1 ($0,25 per miljoen). Elk gebruik ververst het item zonder extra kosten, dus de klok loopt vanaf het laatste gebruik. Deze vermenigvuldigers geven de verhouding van de rekening aan, maar niet de omvang. Combineer ze daarom met wat een miljoen tokens daadwerkelijk kost om een volledig contextvenster om te rekenen naar een bedrag in dollars.

Welke levensduur u krijgt, hangt af van hoe u zich authenticeert. Daarom is de algemene aanname "uw cache verloopt na vijf minuten" onjuist.

  • Bij een Claude-abonnement vraagt Claude Code automatisch de levensduur van een uur aan.
  • Zodra u de limiet van uw abonnement overschrijdt en gebruikmaakt van verbruikstegoeden, wordt dit in rekening gebracht en valt de levensduur terug naar vijf minuten.
  • Bij een API-sleutel of een cloudprovider blijft de levensduur vijf minuten. Door promptCacheTtl in te stellen op 1h of ENABLE_PROMPT_CACHING_1H=1, kiest u voor de levensduur van een uur, en FORCE_PROMPT_CACHING_5M=1 dwingt de kortere duur af.

Het advies voor uw werkritme is in beide gevallen hetzelfde: werk in aangesloten blokken. Een inactieve periode die langer duurt dan de levensduur zorgt er namelijk voor dat uw volgende verzoek het volledige opgebouwde voorvoegsel opnieuw moet schrijven. Een losgekoppelde Claude Code-sessie in tmux kost niets terwijl deze inactief is, maar de warme cache gaat verloren door de inactiviteit.

Sommige acties gooien de cache weg terwijl u nog aan het werk bent: wisselen van model, het wijzigen van het inspanningsniveau bij oudere modellen, het inschakelen van de snelle modus, het verbinden of verbreken van een MCP-server, het weigeren van een volledige tool wanneer tooldefinities vooraf worden geladen, het in- of uitschakelen van een plug-in die tools toevoegt, het comprimeren van gegevens, het verwijderen van oude afbeeldingen zodra een gesprek te uitgebreid wordt, en het upgraden van Claude Code. Op Opus 5.5, Sonnet 5.5, Haiku 5.5 en Fable 5.1 met een API-sleutel of abonnement blijft de cache nu behouden bij een wijziging van het inspanningsniveau. /model is meestal de verrassing, omdat elk model een eigen cache heeft. Het volgende verzoek leest daarom de volledige geschiedenis zonder cache-hits, ook al is de inhoud identiek. Dat opnieuw inlezen wordt gefactureerd tegen de tarieven van het doelmodel als een nieuwe cache-schrijfactie. Een overstap naar Fable halverwege een sessie brengt dus uw volledige opgebouwde geschiedenis in rekening tegen de gepubliceerde cache-schrijftarieven van Fable: $12,50 per miljoen tokens bij een levensduur van vijf minuten of $20 bij een uur; dit is gelijk voor Fable 5 en Fable 5.1.

Het bewerken van bestanden, het bewerken van CLAUDE.md, het aanroepen van vaardigheden en commando's, het uitvoeren van /recap, terugspoelen en het starten van een subagent laten de cache intact. De scope is beperkt tot één machine en één map, waardoor twee sessies in verschillende mappen elkaars cache niet gebruiken. Die scope volgt de CLI in plaats van uw account, dus niets wordt overgedragen naar de Claude desktop-app, die op Linux een afzonderlijke bèta-installatie naast de CLI is.

Om te zien of caching werkt, leest u current_usage. cache_creation_input_tokens werd geschreven tegen het cache-schrijftarief; cache_read_input_tokens werd geserveerd tegen het cache-leestarief van het model, tussen 2,5% en 10% van het standaard invoertarief, afhankelijk van het model. Een hoge verhouding tussen lezen en aanmaken is gezond. Als het aanmaken hoog blijft na elke beurt, verandert er iets in uw voorvoegsel.

Lost een groter contextvenster dit op?

Gedeeltelijk. Elk huidig model (Fable 5.1, Opus 5.5, Sonnet 5.5 en Haiku 5.5) draait met een contextvenster van 1 miljoen tokens, en compressie werkt op dezelfde manier bij de grotere limiet. De economische aspecten veranderen niet, omdat de volledige prompt bij elke beurt opnieuw wordt verzonden en in rekening wordt gebracht. Een groter venster bepaalt wanneer u gedwongen wordt actie te ondernemen; hygiëne bepaalt de kosten. Als de factuur het probleem is in plaats van de limiet, bepaalt welk Claude-abonnement past bij uw manier van werken of u dollars uitgeeft of uw abonnementslimiet verbruikt.

Context-editing en compressie in de API zijn verschillende zaken

Als u uw eigen agent bouwt op de Messages API, bestaan er geen slash-commando's en implementeert u dit zelf. Houd vanaf het begin rekening met deze werkzaamheden, want de gratis API-tegoeden dekken uw tokens niet. Nieuwe gebruikers ontvangen een klein bedrag aan gratis credits om de API te testen. De standaardtoelage die Anthropic vermeldt (50 gratis uren per dag per organisatie op de prijspagina, 1.550 per maand in de documentatie) dekt de tijd van de code-executiecontainer, die apart van tokens wordt gefactureerd. Elke beurt verstuurt de volledige, niet-ingekorte geschiedenis opnieuw en brengt deze volledig in rekening: tegen het tarief voor cache-lezen wanneer het voorvoegsel in de cache staat, en tegen het volledige invoertarief of een cache-schrijfpremie wanneer dit niet het geval is. De provider waarop u bouwt, bepaalt deze berekening nog voordat er enige inkorting plaatsvindt. Als de keuze nog openstaat, bereken dan de kosten voor dezelfde werklast op beide API's in plaats van alleen de headline-tarieven per token te vergelijken. Twee server-side functies voeren dit werk uit, en het zijn niet dezelfde functies.

Context-editing wist selectief specifieke inhoud uit de gespreksgeschiedenis naarmate deze groeit en vervangt elk gewist resultaat door tijdelijke tekst, zodat Claude weet dat er iets is verwijderd. Dit is een bèta: stuur anthropic-beta: context-management-2025-06-27 en configureer strategieën onder context_management.edits. clear_tool_uses_20250919 wist toolresultaten en clear_thinking_20251015 beheert denkblokken. De trigger staat standaard op 100.000 invoertokens, keep op de laatste 3 tool-gebruiken en clear_tool_inputs op false, waardoor invoer behouden blijft en alleen resultaten worden verwijderd.

Compressie genereert een samenvatting en vervangt de volledige gespreksgeschiedenis hiermee. Dit is beschikbaar in twee bètaversies. Drempelcompressie (threshold compaction) draait binnen uw normale verzoeken: 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. Bij on-demand compressie bepaalt uw code wanneer dit gebeurt: stuur anthropic-beta: compact-2026-09-04 met een "compaction": {"type": "summarize"} op het hoogste niveau; het antwoord is dan enkel het samenvattingsblok. Het overzicht van Anthropic over compressie adviseert om waar mogelijk on-demand compressie te gebruiken.

Drempelcompressie kent één overdrachtsregel die agenten ongemerkt kan laten vastlopen. Het antwoord begint met een compaction-inhoudsblok dat de samenvatting bevat, gevolgd door het normale tekstblok. U moet dat blok bij latere verzoeken terugsturen, waarna de API elk inhoudsblok daarvoor verwijdert. In de praktijk: voeg het geheel van response.content toe, niet alleen de tekst. On-demand compressie werkt andersom: u verwijdert zelf de samengevatte berichten, plaatst het geretourneerde blok als eerste in messages en stuurt het exact zo terug als ontvangen, inclusief handtekening.

De documentatie van Anthropic noemt server-side compressie de primaire strategie voor het beheren van context in langlopende gesprekken, en context-editing de optie voor nauwkeurigere controle over wat er wordt gewist. Controleer eerst de modelondersteuning. Elk huidig model ondersteunt beide vormen van compressie, inclusief Haiku 5.5; de oudere claude-haiku-4-5 doet dit niet, en elke compressiepagina bevat een actuele lijst. Geen van deze bètafuncties stuurt de eigen /compact van Claude Code aan; de documentatie daarvan beschrijft dit als een apart samenvattingsverzoek dat de client met uw geschiedenis meestuurt.

FAQ

Waarom wordt mijn Claude Code-sessie trager en duurder naarmate deze langer draait?

Omdat het volledige gesprek bij elke nieuwe interactie opnieuw wordt verzonden, bevat een vraag van één regel in een sessie die de hele dag openstaat de volledige geschiedenis van die dag. Prompt caching houdt dit goedkoop zolang de cache warm is: een leesactie kost 0.1x het basistarief voor invoer op Haiku 5.5, 0.05x op Opus 5.5 en Sonnet 5.5, en 0.025x op Fable 5.1. Zodra een interactie de cache mist, wordt hetzelfde voorvoegsel opnieuw geschreven tegen 1.25x, of 2x bij een levensduur van één uur. Voer /context uit om te zien wat het venster vult, en lees waarvoor een Claude Code-sessie u factureert voor de werking hiervan.

Wat is het verschil tussen /clear en /compact in Claude Code?

/clear start een nieuw gesprek met een lege context. Er wordt geen verzoek verzonden, dus het kost niets; dit is de juiste keuze tussen ongerelateerde taken. /compact behoudt hetzelfde gesprek en vervangt de geschiedenis door een samenvatting; dit is de juiste keuze binnen één langdurige 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-contextvenster verbruikt?

Voer /context uit, of /context all voor het volledige overzicht per item. Het toont de systeemprompt, tooldefinities, MCP-servers, geheugenbestanden en geschiedenis als een gekleurd raster, met suggesties voor contextintensieve tools en geheugenvervuiling. Bij een betaald abonnement koppelt /usage het recente gebruik ook aan individuele vaardigheden, subagents en MCP-servers.

Moet ik een contextvenster van 1 miljoen tokens gebruiken in plaats van compacteren?

Een groter venster stelt het probleem uit in plaats van het op te lossen. Elk huidig model (Fable 5.1, Opus 5.5, Sonnet 5.5 en Haiku 5.5) draait op een contextvenster van 1 miljoen tokens, en compactie gedraagt zich daar op dezelfde manier. Elke interactie verstuurt nog steeds de volledige prompt en factureert deze ook, dus een gesprek van 400.000 tokens is duur, ongeacht of het past.

Wat is het verschil tussen contextbewerking en compactie in de Claude API?

Contextbewerking verwijdert selectief oude inhoud, meestal toolresultaten, en laat tijdelijke aanduidingen achter zodat Claude weet dat deze zijn verwijderd. Compactie genereert een samenvatting en vervangt de volledige geschiedenis hiermee. De documentatie van Anthropic noemt compactie de primaire strategie voor langdurige gesprekken en positioneert contextbewerking als de fijnmazige optie. Beide zijn bètaversies met hun eigen headers, en beide staan los van /compact in Claude Code.