Naukowcy z Microsoft Research i Uniwersytetu UC Berkeley opublikowali TokenEconomizer, otwartoźródłową wtyczkę służącą do kontroli kosztów agentów programistycznych. Uczy się ona na podstawie poprzednich sesji w tym samym repozytorium kodu, aby ograniczyć marnotrawstwo w kolejnych sesjach. Według opublikowanych wyników obniża średni koszt zadań SWE-Bench o 18,4% do 30,9% w 5 konfiguracjach agent-model.
Agenty programistyczne wykonują zadania rozwojowe autonomicznie, wysyłając do modelu językowego ciągły strumień tekstu podzielony na tokeny (jednostki tekstu podlegające rozliczeniu). Każda tura agenta ponownie rozlicza prompt systemowy, schematy każdego załadowanego narzędzia oraz pełną historię. TokenEconomizer działa na zewnątrz agenta, traktując go jak czarną skrzynkę: nie modyfikuje ani wag modeli, ani kodu agentów. Działa z Claude Code, Codex, GitHub Copilot CLI i Pi, na maszynie z Pythonem 3.10 lub nowszym, bez GPU i własnego klucza API.
Gdzie uciekają pieniądze
Aby zrozumieć straty, naukowcy przeanalizowali 60 zadań SWE-Bench, rozłożonych na 6 repozytoriów, wykonanych za pomocą Claude Code i Opus 4.8. Zidentyfikowali trzy powtarzające się źródła marnotrawstwa. Pierwszym jest powtarzające się odkrywanie: po wykonaniu 5 poprzednich zadań, 30% wywołań narzędzi powtarza już wykonaną akcję. Drugie dotyczy niewykorzystywanych narzędzi: 23 schematy narzędzi są ładowane w każdej turze, z czego 16 nigdy nie jest wywoływanych, a 3 odpowiadają za 98% wywołań. Trzecie wynika z pętli niepowodzeń: 10 nieudanych wykonan stanowiło 17% zadań, ale 32% całkowitych wydatków.
Naukowcy przetestowali także trzy istniejące otwartoźródłowe strategie: RTK, Serenę oraz RepoMap z Aider. Żadna nie była tańsza we wszystkich przypadkach: wszystkie trzy obniżyły koszty w Django, ale zwiększyły je w SymPy.
Trzy mechanizmy
TokenEconomizer przechowuje dla każdego repozytorium stan zbudowany na podstawie śladów ukończonych zadań i ustala trzy polityki przed każdym zadaniem. Pierwsza, mikroumiejętności, polega na podsumowywaniu obserwacji w jednozdaniowe fakty, jak np. polecenie testowe do użycia. Fakt trafia do promptu dopiero po 3 potwierdzeniach na zadaniach niemodyfikujących tych samych plików, a sprzeczność liczy się jako 5, co pozwala szybko usuwać błędne fakty.
Druga polityka, przycinanie narzędzi, zawsze zachowuje narzędzia powłoki, odczytu, zapisu i edycji. Pozostałe są ukrywane po 3 kolejnych zadaniach bez użycia lub gdy sędzia LLM uzna je za nieistotne. Pełny katalog wraca co 5 zadań do ponownej oceny. W Django z Claude Code pierwsze wywołanie zadania 2 spadło z 43 351 do 16 295 tokenów promptu.
Trzecia to interwencja w pętle niepowodzeń. Kontroler definiuje budżet tur równy 1,25 razy 90. percentyl długości udanych wykonań. Proste reguły sygnalizują powtarzające się niepowodzenia, następnie sędzia LLM decyduje, czy agent utknął, z pewnością co najmniej 0,7. Zablokowany agent otrzymuje jedną redirekcję, po czym jest zatrzymywany, jeśli pętla się powtórzy.
Różne wyniki
W SWE-Bench wtyczka obniżyła koszt we wszystkich 30 testowanych komórkach repozytorium-konfiguracja, podczas gdy RTK i RepoMap zwiększyły go odpowiednio w 12 i 15 przypadkach. Najlepszy wynik to spadek o 30,9% z Claude Code i Opus 4.8, który wzrasta do 33,2% w połączeniu z RTK. Wskaźnik Pass@1, mierzący sukces za pierwszym razem, poprawił się w 4 konfiguracjach na 5, ale spadł o 1,0 punktu z Opus 4.8. Oszczędności są najbardziej widoczne w czasie: większość repozytoriów początkowo kosztowała więcej, ale wszystkie były tańsze już od szóstego zadania.
Wtyczka jest publikowana na licencji Apache 2.0. Dane uczące pozostają lokalnie, w folderze ~/.tokeneconomizer, a instalacja w Claude Code odbywa się z repozytorium GitHub projektu. Przycinanie narzędzi i ochrona przed pętlami są domyślnie włączone, podczas gdy mikroumiejętności są wyłączone, ponieważ ich proponujący dodaje wywołania modelu.





