Home / Inzichten / KV-cachekosten: 82% van de rekening, drie misvattingen
Technisch

KV-cachekosten: 82% van de rekening, drie misvattingen

Een nieuw agentonderzoek berekent KV-cachelezingen op 82,4% van de totale API-kosten, niet de outputtokens.

Vat samen met AI Prompt gekopieerd. Plak hem in de chat

Een deze week verschenen onderzoek zet KV-cachelezingen op 82,4% van de totale API-kosten van een agent, niet de outputtokens. Samen hebben twee onderzoeken inmiddels de drie oplossingen gemeten waar een engineeringteam het eerst naar grijpt. De historie inkorten tot de laatste twaalf toolrondes kostte 1,85 keer de volledige-contextbasislijn. Samenvatten leverde ongeveer 7% op en kostte ruwweg vijf accuratessepunten. Comprimeren kostte 40,1% meer dan niets doen.

De lezer hier is wie de exploitatiekosten aftekent: de IT-manager, informatiemanager, IT-director of security officer in een Nederlandse of Vlaamse organisatie van 250 tot 5.000 medewerkers, met een ICT-partner die er al zit. Crux Digits specificeert en instrumenteert AI naast wie uw omgeving beheert; wij verkopen geen beheer, geen infrastructuur, geen hosting en geen servicedesk. De vraag is smal: als de rekening van een agent verschilt tussen twee runs van dezelfde taak, waar kijkt u dan eerst?

Waar gaat het geld in een agentrun werkelijk heen?

Cache Engineering for Agents, op 20 oktober 2026 op arXiv geplaatst door een groep onder leiding van de Tsinghua-universiteit, rapporteert dat KV-cachelezingen 82,4% van de totale API-kosten vormen in de onderzochte agentworkloads. Lees het met zijn grondslag erbij: het is berekend uit tokenaantallen tegen tarieven van open-weight modellen, niet afgelezen van een factuur van Anthropic of OpenAI, dus de verhouding verschuift op een endpoint waar cachelezingen een tiende van de basisinput of minder kosten. De richting overleeft dat, en die keert de intuïtie om waarop de meeste kostengesprekken rusten. De output van een agent per stap is een paar honderd tokens; de input is het hele traject tot dan toe, bij elke volgende stap opnieuw gelezen. Wat u ronde na ronde koopt is geen generatie. Het is herlezen.

De eigen oplossing van het onderzoek scheelt ongeveer een kwart. Gemiddeld over drie modellen en vier benchmarks verlaagde het AKV-systeem de kosten met 27,7% tegenover Standard, en dat is geen volledige-contextbasislijn maar juist de drempelsamenvatter van hieronder, waarbij het gemiddelde per model licht steeg in plaats van te dalen. Een kwart eraf van een post die vier vijfde van de rekening uitmaakt, is een grotere hefboom dan de meeste modelwissels.

Waarom wordt de rekening hoger als u de context inkort?

Omdat de cache een prefix is, en een prefix alleen herbruikbaar is tot aan de eerste wijziging. Verandert u eerdere trajecttekst, dan is elke gecachte toestand daarna ongeldig en prefilt het model de staart opnieuw. Hoe eerder de wijziging, hoe meer er herberekend moet worden. De historie inkorten is technisch gezien een wijziging vooraan.

Het meetresultaat is ongemakkelijk. Alleen de laatste twaalf toolrondes bewaren kostte 1,85 keer de volledige-contextbasislijn op GPT-OSS-120B over 100 taken. Samenvatten bij 48K tokens verlaagde de kosten met ongeveer 7% en de accuratesse met vijf punten: een slechte ruil in twee richtingen tegelijk.

Compressie was al gemeten en had al verloren. Een PayPal-onderzoek uit juli 2026, Cache-Aware Prompt Compression, vond query-afhankelijke compressie de duurste van alle geteste varianten, 40,1% boven een ongecachte, ongecomprimeerde basislijn op de tau-bench retailbenchmark, en precies om deze reden: een query-afhankelijke compressor maakt voor elke vraag een andere prefix en verslaat dus de cache die hij juist moest ontlasten. De query-onafhankelijke methode van datzelfde onderzoek, die het cachebreekpunt intact laat, was in alle 16 geteste configuraties op LongBench-v2 de goedkoopste. Compressie is niet de schuldige. Query-afhankelijke compressie is dat wel.

Daar zit de valkuil in één regel: het instinct om in te korten heeft gelijk over tokens en ongelijk over geld.

Welke cachebrekende wijziging maakt uw team per ongeluk?

Anthropic documenteert de regel helder in de referentie over prompt caching: de hiërarchie loopt via tools, dan system, dan messages, en een wijziging op één niveau maakt dat niveau en elk volgend niveau ongeldig. De vergelijking is exact, tot en met het blok dat de cachemarkering draagt. Er bestaat geen gedeeltelijke score.

Wat dit een verandermanagementprobleem maakt in plaats van een programmeerprobleem, is hoe gewoon de brekende wijzigingen eruitzien. Een gemodelleerde agentlus van 30 rondes, geprijsd in oktober 2026, bespaart bij correcte caching ongeveer 80% op Claude; zet een tijdstempel bovenaan de systeemprompt en dat zakt naar 6%. Zet een variabele waarde in een toolbeschrijving en dezelfde analyse mat 24% méér dan helemaal niet cachen, omdat tooldefinities bovenaan de hiërarchie staan. De documentatie van Anthropic noemt een subtieler geval: Go en Swift zetten sleutels in willekeurige volgorde bij JSON-conversie, waardoor een tool_use-blok de cache kan breken zonder dat er een diff te reviewen valt.

Eén plaatsingsregel hoort in een checklist: een breekpunt op een blok dat per verzoek verandert, schrijft elke keer een nieuwe entry en raakt nooit. Prefixstabiliteit is een eigenschap van uw wijzigingsproces, niet van uw promptstijl.

Ligt de oorzaak bij stille sessies of bij krappe toollussen?

Pull quote from Crux Digits: Drie manieren om de context van een agent te verkleinen zijn nu gemeten. Geen enkele kwam er beter uit.

Hier spreken de bronnen elkaar tegen, en die tegenspraak is het nuttigste eraan. Het leveranciersverhaal gaat over stilstand: een sessie pauzeert, het venster van vijf minuten verloopt, u betaalt opnieuw voor prefill. Anthropic verkoopt de remedie rechtstreeks: een TTL van een uur tegen tweemaal de basisinput bij write, tegenover 1,25 maal bij vijf minuten.

Een simulatie over echte traces vertelt iets anders. Toen 68.266 verzoeken uit 393 Claude Code-sessies door een blokgranulaire prefixcache-simulator werden gehaald, bleek het mediane interval tussen verzoeken 2,1 seconden en overschreed slechts 3,3% van de intervallen 300 seconden. Verzoeken na een interval onder tien seconden waren verantwoordelijk voor 33,1% van alle herberekende tokens; verzoeken na meer dan vijf minuten voor 17,5%. Een TTL-beleid van 300 seconden leverde in elke run exact dezelfde, byte-identieke resultaten als gewone LRU, wat wil zeggen dat de klok van vijf minuten nooit afging. De missers kwamen van capaciteitsdruk binnen krappe toollussen, niet van wachten.

Die auteur is zorgvuldig over de beperking en dat moeten wij ook zijn: die runs zijn capaciteitsgebonden en niet TTL-gebonden, waarmee ze een model zijn van zelfgehoste of dedicated serving, niet van een leveranciers-API. Dat voorbehoud is precies het punt. Hetzelfde symptoom, kosten per run die schommelen tussen identieke taken, heeft een andere oorzaak afhankelijk van waar de agent draait, en de remedie voor de ene oorzaak is dood gewicht tegen de andere. Siddhant Khare trok die scheidslijn als eerste, in een veldgids over agentic inference van 18 oktober die capaciteitsmissers en retentiemissers op dezelfde traces uit elkaar haalt en waarschuwt dat winst op de ene weinig zegt over de andere. Wat zijn twee takken niet dekken is de derde oorzaak, die in uw eigen prompt zit en niet in iemands servinglaag. Eén kanttekening bij het tracewerk zelf: de drie hazard-strategieën die daar van LRU verloren waren eigen varianten van de auteur en geen gepubliceerde systemen, dus lees het als bewijs dat LRU wordt onderschat, niet dat er iets is weerlegd.

Eén waarschuwing over instrumentatie, als indruk uit de praktijk en niet als onderzoek. In een vraaggesprek bij een leverancier van afgelopen juni noemde Doug O'Laughlin van SemiAnalysis waargenomen fysieke hitratio's "rond de 70 procent", bij een nieuwe sessie veel lager, terwijl hetzelfde stuk logische ratio's van 90% of meer noemt als wat multi-agentworkflows halen. Twee uitspraken over twee verschillende dingen, en juist daarom meet u beter uw eigen cijfer.

Waar kijkt u dan eerst?

Drie oorzaken, drie plekken om te kijken, in deze volgorde. Op een leveranciers-API: verdenk uw eigen prefix. Log per aanroep de tokenaantallen voor cachecreatie en cachelezing, en vergelijk systeemprompt en tooldefinities tussen een goedkope en een dure run voordat u iets anders aanraakt.

Bij zelfgehoste of dedicated serving: verdenk capaciteit in plaats van stilstand. De omvang van de werkset en het evictiebeleid zijn de hefbomen, en een langere TTL koopt niets tegen een mediaan interval van 2,1 seconden. Is de prefix stabiel en de capaciteit ruim, verdenk dan het traject zelf en meet het: zet de kosten per run uit tegen het aantal toolrondes per run. Een lijn die omhoog buigt is de inkortval in uw eigen cijfers, en de remedies zijn de architectuurantwoorden hieronder, nieuw genoeg dat afwachten verdedigbaar is.

Cache-operaties en memory-native modellen: nu invoeren of afwachten?

De architectuurantwoorden kwamen in dezelfde week, en dat is zelf het signaal. AKV stelt twee operaties voor: drop, die geselecteerde cache-entries uitsluit van verdere attention terwijl de trajecttekst onaangeroerd blijft, en repos, die de posities van de resterende keys herschrijft. Beide zijn samen nodig: positie-indices blijven oplopen terwijl een traject groeit, ook nadat de cache kleiner is geworden, zodat een kleine cache alsnog tegen de positielimiet kan lopen. Tegenover de samenvattende basislijn verhoogde tool-responsdrop met repos het slaagpercentage op één benchmark van 56% naar 62% terwijl de kosten daalden van 13,5 naar 10,9 cent. Repos verdient die winst: drop alleen scoorde 55%.

Eén detail is belangrijk voor wie een gateway of proxy beheert: identieke tokenreeksen kunnen verschillende cachetoestanden opleveren afhankelijk van de drophistorie, waardoor gewone prefixvergelijking de verkeerde toestand kan hergebruiken. Cache-identiteit moet de operatiehistorie meenemen, niet alleen de tekst. Dit is een feature van de servingengine en niet van de applicatie: noch de publieke cache van Anthropic noch die van OpenAI biedt iets wat op drop en repos lijkt, dus invoeren op een leveranciers-API kan dit kwartaal niet. Wat overdraagbaar is, is de richting. De gemeten strategie laat juist de oudste toolresponses vallen, houdt de recente vast en herindexeert wat overblijft, het tegenovergestelde van de prompttekstregel hierboven en met opzet: drop verandert de trajecttekst niet en maakt dus geen prefix ongeldig.

De modellaag bewoog ook. MemT-1.0, geplaatst op 19 oktober, bouwt geheugen in de eigen berekening van het model in plaats van keys en values voor elk token te bewaren, en rapporteert ruwweg 66 maal minder persistente opslag dan een volledige-context KV-cache bij een historie van 128K. Lees het als een richting en niet als een vonnis: de samenvatting zegt alleen dat het concurrerend blijft met retrieval-augmented methodes, en er staat geen benchmarktabel bij. Op 20 oktober open-sourcete DeepSeek DeepInfer, het framework achter zijn grootschalige productiediensten, onder Apache 2.0. Lees wel de eigen lijst van wat die release weglaat: het eerste onderdeel dat nodig is voor een complete inferentiedienst en er niet bij zit, is een KV-cachesysteem.

De productlaag leverde zijn eigen antwoord. De release van Notion van 19 oktober tilde het plafond voor één agenttaak naar 24 uur op een herbouwde harness, en meldt los daarvan dat zijn Auto-router Opus 5.5 en Astra evenaart over ruim twintig gangbare taken, tegen ongeveer 90% lagere gemiddelde kosten. Let op welke hefboom Notion voor dat geld aanwijst: elke taak naar een passend goedkoop model routeren, niet cache-economie. Twee van de drie lagen gingen deze week achter de cache aan; de laag met een product ging achter het model aan.

Wat dit verandert voor een Nederlandse IT-organisatie

Drie dingen, waarvoor u geen nieuwe leverancier nodig heeft. Zet kosten per run op het dashboard met een P95 ernaast, in plaats van tokenaantallen. De eenheidsprijs van een agent is niet-deterministisch zoals een licentie per gebruiker dat niet is, en een contract dat in gebruikers is geschreven modelleert dat niet; het agent-observability-argument geldt voor geld even goed als voor traces.

Voeg prefixstabiliteit toe aan uw wijzigingsproces. Het tijdstempelgeval is het sjabloon: een wijziging die elke reviewer doorlaat, met een gemeten kostengevolg. Het hoort op dezelfde checklist als een schemamigratie, en dat zet het in het gesprek met wie uw omgeving beheert. Roept uw agent tools aan over MCP, bedenk dan dat tooldefinities bovenaan de invalidatiehiërarchie staan, dus een serverteam dat zijn eigen toolbeschrijvingen aanpast, past uw rekening aan.

Beslecht daarna de diagnostische splitsing voordat u een remedie koopt. De langere TTL, de samenvatter en de compressiebibliotheek pakken elk een andere oorzaak aan, en twee van de drie meten slechter wanneer ze op de verkeerde oorzaak worden gericht. Dat is een goedkoop uur analyse tegenover vier vijfde van de rekening. De bredere discipline is context engineering; de metingen van deze week zetten er een prijs op als u het verkeerd doet.

Een agentproject van nul begroten is een andere vraag, en wat een AI-project kost is waar wij die beantwoorden; toegepaste AI voor middelgrote organisaties zet uiteen hoe wij naast een bestaande ICT-partner werken. Wat deze week veranderde zijn de exploitatiekosten, en dat is de post die elke maand terugkomt.

Hier een AI-consultant bij betrekken?

Een consultant zegt waar AI loont; Crux Digits bouwt het ook. Vaste prijs per stap, één vaste expert, vanuit Utrecht.

AI-consultancy in Nederland →

Veelgestelde vragen

Werkt prompt caching dan nog wel?

Ja, en de metingen hierboven zijn juist een argument vóór caching. Een correct gecachte agentlus van 30 rondes leverde in oktober 2026 een besparing van 80 tot 89% op, afhankelijk van de leverancier. De faalmodus is niet caching zelf maar prefixvolatiliteit: één veranderende waarde hoog in de prompt verandert die besparing in een afrondingsverschil, of in een toeslag. Zet caching overal aan en besteed uw inspanning daarna aan het stil houden van de kop van de prompt.

Moeten wij betalen voor de cache-TTL van een uur?

Alleen waar de gaten echt lang zijn. Anthropic rekent voor een write van een uur tweemaal de basisinput tegenover 1,25 maal voor de standaard van vijf minuten, dus het loont wanneer aanroepen werkelijk meer dan vijf minuten uit elkaar liggen: een goedkeuring die op een mens wacht, een nachtelijke batch, een workflow die tussen diensten stilstaat. In een krappe toollus levert het weinig op, want het tracesonderzoek hierboven vond een mediaan gat van 2,1 seconden en een TTL-beleid van 300 seconden dat nooit afging. Meet eerst uw eigen intervalverdeling voordat u het langere venster koopt.

Hoe meten wij onze eigen cache-hitratio?

Log op de Claude-API de tokenaantallen voor cachecreatie en cachelezing die bij elke aanroep terugkomen; zijn ze beide nul, dan is de prompt niet gecacht en kwam er geen foutmelding. Let ook op de minimale prefixlengte, 512 tokens op de huidige Claude-modellen en hoger op diverse oudere, want een korte systeemprompt cacht stil niet, hoe hij ook gemarkeerd is. Vergelijk dat cijfer per aanroep daarna met de kosten per afgeronde run, want een gezond lijkende hitratio op korte aanroepen kan naast een dure lange run staan.

Verandert dit als wij het model zelf hosten?

Het mechanisme blijft, de economie verandert van vorm. Zelf hosten laat de prijzen voor cachewrites en -reads vervallen, waardoor de kosten verschuiven van een factuurregel naar GPU-geheugen en benutting: uw cache concurreert met al het andere op de node om een vaste pool, en missers verschijnen als latency en verloren doorvoer in plaats van als een rekening. Daarmee wordt capaciteitsdruk de dominante oorzaak in plaats van TTL-verloop, en dat is de tweede tak van de diagnose hierboven.
Onze AI-diensten AI-consultancy AI-automatisering AI-agents AI-implementatie Prijzen

Iets hiervan toepassen in uw bedrijf?

Wij maken van deze concepten werkende tools: gegrond, veilig en meetbaar. Begin met een gratis consult.

Gratis consult boeken →