Én indstilling skar 17% af min AI-kodeagents tokenforbrug: Her er tallene

Udgivet den Sep 22, 2026 af Štefan Moravík.
AI Agents Token Optimization Claude Code Developer Tools
På denne side 7 min læsning
  1. 1Den korte version
  2. 2Hvorfor et vindue på 1M koster mere, end det ser ud til
  3. 3Hvad jeg ændrede
  4. 4Sådan målte jeg det
  5. 5To sessioner, samme agent
  6. 6De ugentlige tal
  7. 7Hvor pengene gik hen
  8. 8Holdt loftet?
  9. 9Hvad det ville have kostet uden loftet
  10. 10Hvad det koster dig
  11. 11Sådan sætter du det op
  12. 12Hvis du er på en ugentlig grænse
  13. 13Læs næste

Den korte version

  • Jeg kører en AI-kodeagent hele dagen på en model med et kontekstvindue på 1M tokens. Sessioner plejede at vokse, indtil de næsten fyldte det.
  • Jeg tilføjede én linje til dens config, som begrænser en session til 350.000 tokens kontekst, før den opsummerer sig selv og fortsætter.
  • Målt på tværs af 1.117 sessionstranskriptioner: 17% færre tokens for det samme antal prompts, og i de lange sessioner, hvor loftet faktisk bider, 55% færre.

Nedenfor er metoden, hvert eneste diagram og hvad det koster dig til gengæld, så du kan vurdere, om det gælder for dit setup.

Hvorfor et vindue på 1M koster mere, end det ser ud til

En samtale med en model er stateless. Hver request bærer hele historikken: systemprompten, hver værktøjsdefinition, hver fil agenten har læst, hvert værktøjsresultat, hver besked. Ikke et delta. Det hele, hver gang.

Så en session, der er vokset til 900.000 tokens, betaler for 900.000 tokens input ved næste kald og ved kaldet efter det. Tur 400 udfører ikke mere arbejde end tur 4. Den koster bare mange gange mere.

Prompt-caching bløder det op. Tokens, som modellen har set før, faktureres til omkring en tiendedel af den normale inputpris. Rabatten er reel, den er det, der overhovedet gør lange sessioner levedygtige, og den er også grunden til, at ingen ser på problemet. I mine data var 98% af alle input-tokens cache-læsninger. En tiendedel af et meget stort tal var stadig den største post på regningen.

Spørgsmålet er ikke, om din historik er cachet. Det er, hvor stor den får lov at blive, før noget nulstiller den.

FlowHunt Logo

Klar til at vokse din virksomhed?

Start din gratis prøveperiode i dag og se resultater inden for få dage.

Hvad jeg ændrede

Agenten er Claude Code, der kører Opus på 1M-kontekstvinduet. Indstillingen er autoCompactWindow i ~/.claude/settings.json. Når en session når op på så mange tokens, opsummerer agenten samtalen og fortsætter ud fra opsummeringen.

{
  "autoCompactWindow": 350000
}

Jeg havde aldrig sat den, så sessioner kørte, indtil de nærmede sig det fulde vindue. Over fire dage prøvede jeg tre værdier:

DatoIndstilling
14. september250.000
15. september300.000
18. september350.000

Sådan målte jeg det

Claude Code skriver hver session til en JSONL-transskription under ~/.claude/projects/, inklusive tokenforbruget for hvert API-kald. Jeg parsete alle 1.117 af dem, dækkende fem uger fra 19. august til 22. september, dedupliceret efter request-ID, og beholdt kun interaktive sessioner. Kørsler i GitHub Actions bruger samme konto, men kan ikke påvirkes af en indstilling på min laptop, så de er udeladt.

Rå token-totaler er misvisende i sig selv. En travl uge slår en stille uge, uanset hvad du ændrer. Derfor er hvert tal nedenfor cache-vægtet, hvilket er det, måleren faktisk aflæser: frisk input til 1x, cache-skrivninger til 1,25x (5-minutters cache) eller 2x (1-times cache), cache-læsninger til 0,1x. Og hver sammenligning er normaliseret efter udført arbejde, enten de prompts jeg skrev, eller de API-kald agenten lavede.

To sessioner, samme agent

Dette er mekanismen i ét billede. Til venstre en rigtig session fra 3. september, før loftet. Til højre en rigtig session fra 15. september, efter.

Kontekst båret af hvert API-kald i to rigtige sessioner: før loftet klatrer konteksten til 996k tokens, komprimeres én gang og klatrer tilbage til 880k. Efter loftet svinger den mellem 24k og 270k og komprimeres femten gange.

Sessionen til venstre kørte i 781 kald. Den klatrede til 996.000 tokens kontekst, ramte væggen i 1M-vinduet, komprimerede én gang og klatrede derefter lige tilbage til 880.000. I den anden halvdel af den session genlæste hvert eneste kald mere end en halv million tokens.

Sessionen til højre kørte i 1.642 kald, mere end dobbelt så længe, og bar aldrig mere end 270.000. Den komprimerede femten gange. Hver komprimering er en prik.

De ugentlige tal

Kun interaktive sessioner. Søjlerne er cache-vægtede input-tokens pr. API-kald, hvilket er det faireste enkelttal, fordi det ikke afhænger af, hvor meget jeg arbejdede i en given uge.

Cache-vægtede input-tokens pr. API-kald pr. uge. De fire uger før loftet ligger mellem 27,9k og 36,1k. Ugen, hvor loftet blev sat, falder til 27,3k, og den følgende delvise uge til 22,4k.

Den reneste sammenligning i datasættet er ugen fra 7. september mod ugen fra 14. september, fordi jeg ikke valgte dem. De landede bare på hver sin side af ændringen, og jeg skrev næsten præcis det samme antal prompts i hver.

Uge fraPromptsAPI-kaldCache-vægtet inputPr. kald
7. sep97111.364348,1M30,6k
14. sep96810.555288,5M27,3k

971 prompts mod 968. Effektiv input ned fra 348,1M til 288,5M. Det er 17% mindre for den samme mængde prompting. De to dage i den følgende uge landede på 22,4k pr. kald, endnu lavere.

Hvor pengene gik hen

Opdel hvert API-kald efter, hvor meget kontekst det bar, og mekanismen bliver direkte synlig.

Andel af hele det cache-vægtede inputforbrug efter kaldets kontekststørrelse. Før loftet gik 24% af forbruget til kald, der bar 350k til 500k kontekst, og 15% til kald over 500k. Efter loftet er andelene 8% og 5%.

Før loftet gik 39% af alt, hvad jeg brugte, til kald, der slæbte mere end 350.000 tokens historik med sig. De kald udførte ikke mere arbejde end de andre. Det var det samme arbejde med mere bagage. Efter loftet er den andel 12%.

Holdt loftet?

Én prik pr. session, placeret ved den største kontekst, den pågældende session nogensinde bar.

Største opnåede kontekst pr. session, én prik hver. Før loftet spredte 260 sessioner sig fra 100k til 996k. Efter loftet klumper 59 sessioner sig under 320k, med to undtagelser på 434k og 561k fra de første to dage.

To sessioner i de første to dage kørte stadig forbi loftet, til 434.000 og 561.000, og jeg fandt aldrig ud af hvorfor. Siden indstillingen på 350.000 blev sat ind den 18. september, har ingen session overskredet den. Halen af sessioner, der levede mellem 500k og 1M, hvor det meste af spildet var, er væk.

Hvad det ville have kostet uden loftet

For at sætte et samlet tal på det afspillede jeg hver session, der startede efter ændringen, som om den droppede kontekst aldrig var blevet opsummeret og stadig blev genlæst ved hvert senere kald, begrænset til 1M-vinduet.

Cache-vægtet input
Faktisk, 73 sessioner, 9.675 kald, 55 komprimeringer216,8M
Samme sessioner uden loftet479,2M
Undgået262,5M, eller 55%

Sessionen til højre i det første diagram står alene for 118,5M af det. En lang refaktorering, der ellers ville have brugt sine sidste flere hundrede kald på at genlæse næsten en million tokens hver.

Betragt 55% som den optimistiske ende. Uden loftet ville jeg næppe reelt have ladet en session male på 900k i timevis; til sidst ville jeg have ryddet den manuelt, hvilket også nulstiller omkostningen. Den konservative ende er det observerede tal pr. kald, 30,6k ned til 22,4k, altså cirka 20% til 27%. Sandheden ligger et sted mellem de to.

Hvad det koster dig

Det er ikke gratis, og enhver, der anbefaler det, bør sige det.

Ventetid. 67 komprimeringer siden ændringen, med en median på cirka tre minutter hver. Rundt regnet 3,4 timer med at se en opsummering blive skrevet, fordelt over otte dage.

Noget omarbejde. Komprimering dropper en hel del. Ved indstillingen på 350K tog den mediane komprimering en session på 318.000 tokens ned til 24.000. Agenten mister detaljer og genopbygger dem nogle gange: filer genlæst inden for samme session gik fra 11,5% af læsningerne før den første komprimering til 20,5% efter. Stikprøven bag det andet tal er lille, så læs det som en retning snarere end en måling.

Valget af tærskel betyder noget. Ved 250K ramte 36% af mine lange sessioner en komprimering. Ved 350K gjaldt det 12%, mens loftet stadig holdt. Sætter du den for lavt, betaler du de tre minutter og omarbejdet igen og igen for en besparelse, du allerede havde i hus.

Sådan sætter du det op

Claude Code. Tilføj autoCompactWindow til ~/.claude/settings.json. På en model med 1M-kontekst var 350.000 den bedste af de tre værdier, jeg prøvede. På en 200K-model skal du skalere ned og starte omkring 120.000 til 140.000. Nye sessioner tager den til sig; en session, der allerede kører, beholder den gamle værdi.

Andre agenter. Led efter den samme idé under et andet navn: en komprimeringsudløser, en kontekstgrænse, en opsummer-og-fortsæt-tærskel. Findes der ingen, er den manuelle version at rydde sessionen oftere, end det føles naturligt. Instinktet om at holde én lang session i live hele dagen, fordi den “kender projektet”, er det dyre.

Uanset hvad du bruger, gør to vaner mere end nogen indstilling. Hold varig state i filer frem for i samtalen, så agenten billigt kan genlæse én fil i stedet for at bære hvert tidligere svar for evigt. Og skub læsetungt arbejde ud til subagenter med deres egen kortlivede kontekst, så de tyve filer, de læser, slet ikke kommer ind i hovedsessionen.

Hvis du er på en ugentlig grænse

Hvis du betaler et abonnement med en ugentlig brugsgrænse i stedet for en regning pr. token, er dette den løftestang med det bedste forhold mellem indsats og effekt, jeg har fundet. Én linje JSON, ingen ændring af måden, du arbejder på, og den samme grænse rækker målbart længere. I mit tilfælde kostede det samme ugentlige promptvolumen 17% mindre, og de lange sessioner kostede omkring det halve.

Læs næste

Kontekstvinduer sælges som kapacitet. De opfører sig som en løbende måler, der ved hver tur opkræver for alt, hvad du nogensinde har lagt ind. Hvis du vil have mekanikken bag dette frem for bare indstillingen, gennemgår den tilhørende artikel , hvad der faktisk fylder et kontekstvindue, hvorfor en lang session koster langt mere end det arbejde, den udfører, og hvordan caching, rydning og komprimering hver især ændrer regnestykket.

Ofte stillede spørgsmål

Štefan er en AI- og softwareingeniør, der bygger FlowHunt. Ud over selve produktet designer han agentic software-engineering workflows for udviklere, der reducerer udviklingskostnaderne, mens kodekvaliteten forbedres.

Štefan Moravík
Štefan Moravík
AI- og softwareingeniør

Byg AI-agenter, der ikke spilder deres kontekst

FlowHunt lader dig designe agent-workflows, hvor hvert trin kun bærer den kontekst, det har brug for, så du bruger tokens på arbejde i stedet for på at genlæse historik.