Zużycie tokenów w Claude Code: co piąte zapytanie to status agenta
Zużycie tokenów w Claude Code rośnie przez ukryte podsumowania agentów: wg pomiarów użytkowników to 16–22% kosztów sesji. Sprawdzam, skąd się biorą.
Ten artykuł w innych językach:العربيةDeutschEnglishEspañolFrançaisItaliano日本語简体中文
W tym artykule
Flamerix AI opublikował gist z pomiarami, według których Claude Code wydaje 16,4% kosztów sesji na krótki, 3–5-wyrazowy status w panelu agentów. 29 października wpis trafił na pierwszą stronę Hacker News i w godzinę zebrał ponad 130 punktów. To dotyczy każdego, kogo martwi zużycie tokenów w Claude Code, a zwłaszcza osób, które uruchamiają wielu agentów w tle.
Skąd bierze się zużycie tokenów w Claude Code?
Chodzi o mechanizm o nazwie agent_summary. Według autora gista działa tak:
- Co około 30 sekund, osobno dla każdego agenta w tle, Claude Code wysyła do modelu cały transkrypt tego agenta.
- Prosi model o opis ostatniej akcji „w 3–5 słowach” (cytując „describe your most recent action in 3-5 words”).
- Wynik trafia tylko do panelu agentów, czyli do krótkiej linijki statusu.
Mechanizm jest domyślnie włączony od wersji 2.1.232 (sierpień 2026) i nie ma oficjalnego ustawienia, które by go wyłączało.
Ile to kosztuje?
Liczby z gista pochodzą z eksportu OpenTelemetry, z tygodnia przed wyłączeniem podsumowań:
- 16,4% szacowanego kosztu szło na
agent_summary, więcej niż na główną rozmowę (15,7%), - 19,7% wszystkich zapytań do API, czyli mniej więcej co piąte,
- 96% tego kosztu przypadało na Opusa,
- stosunek tokenów wejściowych do wyjściowych wynosił ok. 9000 do 1.
Co ciekawe, około 98% tych wywołań trafia w cache promptu, więc są tanie. Problem robią pozostałe ok. 2%: bez cache odpowiadają za ponad jedną trzecią kosztu podsumowań.
Koszty to szacunki samego Claude Code (pole cost_usd), a nie faktura, więc traktujmy je z dystansem.
Czy to nowość?
Problem jest znany od sierpnia. 15 sierpnia użytkownik @rflcrz założył zgłoszenie #86879 w repozytorium Claude Code. W 4-godzinnej sesji z 27 subagentami (1496 zapytań) wywołania agent_summary stanowiły 22,7% zapytań i 18% ważonych tokenów, a każde dawało średnio ok. 65 tokenów odpowiedzi.
W komentarzach kolejni użytkownicy podają podobne wyniki: 15–22% przy sesjach z ponad 20 subagentami i 26% tokenów czytanych z cache w wersji 2.1.276. Jeden z nich zauważył, że zmienna CLAUDE_CODE_ENABLE_NARRATION=0 wyłączała podsumowania w wersji 2.1.241, ale w 2.1.245 już nie działała.
Zgłoszenie ma etykietę area:cost i jest otwarte. Na dzień 29 października nie ma pod nim odpowiedzi nikogo z Anthropic.
Jak to sprawdzić u siebie?
Claude Code ma wbudowany eksport telemetrii przez OpenTelemetry. Włączamy go zmienną CLAUDE_CODE_ENABLE_TELEMETRY=1 i konfigurujemy eksporter logów. Każde zapytanie do API trafia wtedy jako zdarzenie claude_code.api_request z atrybutem query_source, który mówi, który podsystem je wysłał. Wystarczy zgrupować zdarzenia po query_source i zsumować cost_usd – dokładnie tak autor gista znalazł problem.
Czy da się to wyłączyć?
Oficjalnie nie. Autor gista udostępnił obejście: skrypt no-agent-summary.js ładowany przez Bun (BUN_OPTIONS="--preload …"), który podmienia timer podsumowań na nieaktywny, bez modyfikacji pliku binarnego. U niego udział agent_summary w kosztach spadł z 16,4% do zera.
Zanim go użyjemy, warto znać ograniczenia:
- Skrypt był testowany tylko na Linuksie, macOS i Windows nie.
- Działa przez dopasowanie do kodu źródłowego, więc każda aktualizacja Claude Code może go po cichu wyłączyć (sprawdź działanie po każdym update).
- Panel agentów przestaje pokazywać status.
- To projekt społeczności na licencji MIT, bez związku z Anthropic.
Jeśli nie chcemy niczego wstrzykiwać do Claude Code, prostszy sposób to po prostu mniej agentów w tle naraz, bo koszt podsumowań rośnie z ich liczbą. Więcej o pracy z Claude Code piszę w poradniku Claude Code, a o tym, jak szybko można spalić budżet na Opusie, w tekście o fast mode.
FAQ
Dlaczego Claude Code zużywa tak dużo tokenów?
Głównie dlatego, że każde zapytanie wysyła do modelu kontekst rozmowy. Pomiary użytkowników pokazują, że przy wielu agentach w tle sporą część (16–22% kosztu) zjadają też ukryte podsumowania agent_summary, które co ok. 30 sekund wysyłają cały transkrypt agenta.
Czy mogę wyłączyć agent_summary w ustawieniach?
Na dzień 29 października nie ma oficjalnego przełącznika. Zgłoszenie #86879 prosi o dedykowaną flagę, objęcie podsumowań zmienną CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC albo konfigurowalny interwał.
Czy to dotyczy mnie, jeśli nie używam agentów w tle?
Podsumowania są generowane dla agentów w tle, więc problem rośnie z ich liczbą. Najprościej sprawdzić to w telemetrii, grupując zapytania po query_source.