Onderzoekers van Microsoft Research en de universiteit UC Berkeley hebben TokenEconomizer gepubliceerd, een open-source plugin om de kosten van programmeeragents te beheersen. Hij leert van eerdere sessies op dezelfde codebase om verspilling in volgende sessies te verminderen. Volgens de gepubliceerde resultaten verlaagt hij de gemiddelde kosten van SWE-Bench-taken met 18,4% tot 30,9% over 5 agent-modelconfiguraties.
Programmeeragents voeren ontwikkeltaken autonoom uit door een continue stroom tekst, verdeeld in tokens (de gefactureerde teksteenheden), naar het taalmodel te sturen. Elke ronde van het agent factureert opnieuw het systeemprompt, de schema’s van elk geladen hulpmiddel en de volledige geschiedenis. TokenEconomizer plaatst zich buiten de agent, die hij als een black box behandelt: hij wijzigt noch de modelgewichten noch de agentcode. Hij werkt met Claude Code, Codex, GitHub Copilot CLI en Pi, op een machine met Python 3.10 of nieuwer, zonder GPU of eigen API-sleutel.
Waar het geld heen gaat
Om de verliezen te begrijpen, analyseerden de onderzoekers 60 SWE-Bench-taken, verdeeld over 6 codebases, uitgevoerd met Claude Code en Opus 4.8. Ze identificeerden drie terugkerende bronnen van verspilling. De eerste is herhaalde ontdekking: nadat 5 eerdere taken waren voltooid, herhaalde 30% van de toolaanroepen een reeds uitgevoerde actie. De tweede betreft ongebruikte tools: 23 toolschema’s worden elke ronde geladen, waarvan er 16 nooit worden aangeroepen, en 3 dekken 98% van de aanroepen. De derde ligt bij foutloops: 10 mislukte uitvoeringen vormden 17% van de taken, maar 32% van de totale uitgaven.
De onderzoekers testten ook drie bestaande open-source strategieën, RTK, Serena en de RepoMap van Aider. Geen enkele was in alle gevallen goedkoper: alle drie verlaagden de kosten op Django, maar verhoogden ze op SymPy.
Drie mechanismen
TokenEconomizer behoudt voor elke codebase een status opgebouwd uit de sporen van voltooide taken en stelt drie beleidsregels vast vóór elke taak. De eerste, de micro-skills, bestaat uit het samenvatten van observaties tot éénregelige feiten, zoals de te gebruiken testopdracht. Een feit komt alleen in de prompt na 3 bevestigingen op taken die niet dezelfde bestanden wijzigen, en een tegenspraak telt voor 5, waardoor onjuiste feiten snel kunnen worden verwijderd.
Het tweede beleid, tool-snoeien, behoudt altijd de shell-, lees-, schrijf- en bewerkingsgereedschappen. Andere worden verborgen na 3 opeenvolgende taken zonder gebruik, of wanneer een LLM-rechter ze niet relevant acht. De volledige catalogus keert elke 5 taken terug om opnieuw te worden geëvalueerd. Op Django met Claude Code daalde de eerste aanroep van taak 2 van 43.351 naar 16.295 prompttokens.
De derde is interventie bij foutloops. De controller definieert een budget van rondes gelijk aan 1,25 keer het 90e percentiel van de lengtes van geslaagde uitvoeringen. Eenvoudige regels signaleren herhaalde mislukkingen, waarna een LLM-rechter beslist of de agent vastzit, met een vertrouwen van minimaal 0,7. Een vastgelopen agent krijgt één enkele heroriëntatie en wordt vervolgens gestopt als de loop zich herhaalt.
Wisselende resultaten
Op SWE-Bench verlaagde de plugin de kosten in de 30 geteste codebase-configuratiecellen, terwijl RTK en RepoMap deze respectievelijk in 12 en 15 gevallen verhoogden. Het beste resultaat is een daling van 30,9% met Claude Code en Opus 4.8, die oploopt tot 33,2% wanneer gecombineerd met RTK. Het Pass@1-tarief, dat het succes bij de eerste poging meet, steeg in 4 van de 5 configuraties, maar daalde met 1,0 punt bij Opus 4.8. De besparingen zijn vooral zichtbaar over de tijd: de meeste codebases waren aanvankelijk duurder, maar alle waren goedkoper vanaf de zesde taak.
De plugin is gepubliceerd onder de Apache 2.0-licentie. De geleerde gegevens blijven lokaal, in de map ~/.tokeneconomizer, en hij wordt geïnstalleerd op Claude Code via het GitHub-repository van het project. Tool-snoeien en bescherming tegen loops zijn standaard ingeschakeld, terwijl micro-skills zijn uitgeschakeld, omdat hun voorsteller extra modelaanroepen toevoegt.





