Czym są tokeny w Claude i jak obliczyć koszty sesji?
Dowiedz się, jak przeliczać tokeny w modelach Claude i dlaczego sesje Claude Code generują wysokie rachunki. Wyjaśniamy wpływ tokenizatora oraz kosztów bezczynności na budżet.
Czym są tokeny w Claude?
Token to jednostka tekstu, którą Claude odczytuje i zapisuje: fragment słowa, odpowiadający w przybliżeniu 3,5 znaku w języku angielskim. Wartość ta pochodzi z oficjalnego słownika Anthropic i w praktyce oznacza, że po uwzględnieniu spacji oraz znaków interpunkcyjnych na jedno słowo przypada ponad jeden token, więc tysiąc słów tekstu to bezpiecznie ponad 1300 tokenów. Kod źródłowy jest bardziej kosztowny w przeliczeniu na linię: nawiasy klamrowe, operatory, znaki podkreślenia i wcięcia są dzielone na większą liczbę tokenów na znak niż w przypadku języka naturalnego, dlatego plik źródłowy o długości kilkuset linii zazwyczaj zajmuje kilka tysięcy tokenów. Plik o długości 2000 linii, który agent musi odczytać, to wydatek rzędu pięciocyfrowej liczby tokenów, zanim jeszcze powstanie jakakolwiek nowa linia kodu.
Dwie kwestie dotyczące tokenizatorów często wprowadzają w błąd. Po pierwsze, są one specyficzne dla danego modelu. Według stanu na lipiec 2026 r., Opus 4.7 i nowsze, Sonnet 5 oraz Fable 5 korzystają z nowszego tokenizatora, który generuje o około 30% więcej tokenów dla tego samego tekstu niż wcześniejsze modele Claude (dokładny wzrost zależy od treści). Zmienia to budżetowanie w tokenach, mimo że ceny za token nie wzrosły wraz z tą zmianą. Po drugie, tiktoken, biblioteka przywoływana w większości wpisów na blogach, jest tokenizatorem OpenAI i zaniża wynik dla Claude o około 15–20% w przypadku zwykłego tekstu, a w przypadku kodu różnica jest jeszcze większa. Jedynym wiarygodnym źródłem zliczeń jest punkt końcowy count_tokens, opisany poniżej.
Dlaczego sesja programistyczna generuje określone koszty
Każdy rachunek za Claude, niezależnie od tego, czy dotyczy faktury API, czy limitów subskrypcji, opiera się na jednym wskaźniku: liczbie tokenów wejściowych i wyjściowych. Strona z cennikiem przedstawia to w uproszczony sposób: określona kwota za milion tokenów wejściowych i za milion wyjściowych. Nie informuje jednak, że w sesji programistycznej typu agentic licznik wejściowy rośnie znacznie szybciej, niż wynikałoby to z intuicji. Dzieje się tak, ponieważ cała historia konwersacji jest przesyłana ponownie w każdym kroku. Przez 15 lat zajmowałem się sprzedażą infrastruktury rozliczanej według zużycia i tokeny są pierwszym wskaźnikiem, w przypadku którego większość klientów nie potrafi określić, co generuje największe obciążenie. Poniżej znajduje się lekcja odczytu tego licznika: co stanowi dane wejściowe i wyjściowe w sesji agentic, dlaczego pętla ponownego przesyłania jest kosztowna, w jaki sposób prompt caching zmienia rachunek ekonomiczny oraz które parametry faktycznie wpływają na końcowy koszt.
Wszystko jest danymi wejściowymi: co faktycznie zlicza licznik
Użytkownicy zakładają, że płacą za kod generowany przez Claude. W sesji agentowej jest to tylko niewielka pozycja kosztowa. Tokeny wejściowe, choć tańsze, występują w znacznie większej objętości i obejmują:
- Prompt systemowy. Instrukcje środowiska uruchomieniowego Claude Code oraz Twoje pliki
CLAUDE.mdi pliki pamięci, ładowane przy starcie sesji i obecne w każdym kolejnym żądaniu. - Definicje narzędzi. Każdy schemat narzędzia, które agent może wywołać. Każdy serwer MCP, z którym nawiązujesz połączenie, zwiększa ten stały narzut, choć Claude Code domyślnie odracza pełne definicje narzędzi MCP. W kontekście znajdują się tylko nazwy narzędzi, dopóki nie zostaną użyte po raz pierwszy, co łagodzi, ale nie eliminuje kosztów.
- Każdy plik odczytany przez agenta.
Readpliku źródłowego umieszcza jego pełną treść w kontekście, gdzie pozostaje ona na stałe. - Każdy wynik działania narzędzia. Uruchomienia testów, dane wyjściowe grep, zrzuty terminala, logi budowania – wszystko to wraca jako tokeny wejściowe. Nieudany zestaw testów, który generuje 8000 linii tekstu, oznacza naliczenie opłaty za niewielką książkę.
- Cała dotychczasowa konwersacja, przesyłana ponownie w każdej turze. Ten punkt zasługuje na osobną sekcję.
Koszty ponownego przesyłania danych
API Claude jest bezstanowe. Nie przechowuje sesji pomiędzy żądaniami. W drugiej turze konwersacji klient przesyła treść pierwszej tury, odpowiedź modelu oraz nową wiadomość. W pięćdziesiątej turze klient przesyła ponownie tury od 1 do 49, wszystkie odczytane pliki, wyniki narzędzi, różnice (diffs) oraz treść pięćdziesiątej tury. Model za każdym razem odczytuje cały zapis rozmowy, a każdy z tych ponownie odczytanych tokenów jest rozliczany jako dane wejściowe.
Konsekwencją tego mechanizmu jest fakt, że koszt pojedynczej tury rośnie w przybliżeniu liniowo wraz z długością sesji, a całkowity koszt sesji rośnie kwadratowo. Wiadomość, która w trzeciej turze kosztowała pół centa, w sześćdziesiątej turze może kosztować dwudziestokrotnie więcej przy tym samym, jednozdaniowym pytaniu, ponieważ niesie ze sobą bagaż sześćdziesięciu poprzednich tur. Jest to główny powód większości zgłoszeń dotyczących wysokich rachunków. Nie jest to specyfika Claude; każdy produkt LLM sprawiający wrażenie stanowego jest w rzeczywistości bezstanowym API z pętlą ponownego przesyłania danych w tle.
Dane wyjściowe: co widzisz i proces myślowy, którego nie widzisz
Tokeny wyjściowe są kosztowne; ich cena jest pięciokrotnie wyższa od ceny tokenów wejściowych w aktualnej ofercie (stan na lipiec 2026 r.: 5 USD/25 USD w modelu Opus 4.8, 3 USD/15 USD w modelu Sonnet 5, 1 USD/5 USD w modelu Haiku 4.5). Dane wyjściowe obejmują tekst i kod generowany przez Claude oraz tokeny myślowe: wewnętrzne rozumowanie modelu przed udzieleniem odpowiedzi. W tym kontekście istotne są dwa fakty. Proces myślowy jest rozliczany według stawek wyjściowych i wliczany do limitu max_tokens. Odpowiedź API kończąca się błędem stop_reason: "max_tokens" oraz ucięta treść często oznaczają, że proces myślowy wyczerpał budżet przed wygenerowaniem odpowiedzi. W aktualnych modelach podsumowanie rozumowania może nie być wyświetlane – modele Opus 4.8, Sonnet 5 oraz Fable 5 domyślnie je pomijają, jednak proces myślowy nadal zachodzi i podlega rozliczeniu. To, co niewidoczne, nie jest darmowe.
Claude Code domyślnie włącza rozszerzone myślenie, ponieważ wymiernie poprawia ono jakość pracy wieloetapowej, a domyślny budżet może sięgać dziesiątek tysięcy tokenów na żądanie. W przypadku prostszych zadań można go ograniczyć: zmniejszyć poziom wysiłku za pomocą /effort lub w /model, albo dostosować ustawienia myślenia w /config. Jest to realny sposób na kontrolę kosztów, a nie przesąd.
Prompt caching zmienia rachunek ekonomiczny
Prompt caching sprawia, że pętla ponownego przesyłania danych nie generuje ogromnych kosztów. API może przechowywać w pamięci podręcznej stały prefiks promptu, prompt systemowy, definicje narzędzi oraz historię konwersacji, a przy kolejnym żądaniu obsłużyć je za ułamek ceny. Według stanu na lipiec 2026 mnożniki wynoszą: zapis do pamięci podręcznej kosztuje 1,25× podstawowej stawki wejściowej (2× dla wariantu 1-godzinnego), a odczyt z pamięci podręcznej kosztuje 0,1×. Zapisy są droższe, natomiast odczyty oferują 90% zniżki. Pojedynczy odczyt zwraca koszt premii za zapis 5-minutowy.
Claude Code zarządza pamięcią podręczną automatycznie, dzięki czemu w trakcie aktywnej sesji niemal cała treść przesyłana ponownie jest pobierana z cache. Domyślny czas życia pamięci podręcznej wynosi jednak pięć minut od ostatniego użycia. Jeśli przerwa na kawę się przedłuży, po powrocie i wysłaniu wiadomości cache wygaśnie, a cały zgromadzony prefiks zostanie zapisany ponownie po stawce 1,25× zamiast odczytany za 0,1×. W sesji o rozmiarze 150K tokenów to jedno "zimne" zapytanie kosztuje więcej niż kilkanaście "ciepłych". Jest to kontrintuicyjny wniosek, który warto przyswoić: praca w rytmie przerywanym może kosztować więcej niż praca ciągła, ponieważ każda przerwa przekraczająca TTL zamienia kolejne zapytanie z taniego odczytu w kosztowny ponowny zapis. Pracuj w blokach; nie wysyłaj pojedynczych wiadomości w długich odstępach czasu w ramach jednej dużej sesji.
Jeśli wywołujesz API z poziomu własnej aplikacji na VPS, nie otrzymujesz tego mechanizmu w standardzie. Klasycznym błędem jest umieszczanie znacznika czasu lub ID żądania w prompcie systemowym, co zmienia bajty prefiksu przy każdym wywołaniu i skutecznie wyłącza caching. Wskaźnikiem problemu jest wartość usage.cache_read_input_tokens utrzymująca się na poziomie zero przy identycznie wyglądających żądaniach.
Wzór wraz z przykładem obliczeniowym
Należy ignorować stwierdzenia typu „sesja kosztuje X dolarów”. Koszty sesji różnią się o dwa rzędy wielkości. Obowiązuje następujący wzór:
turn cost = (uncached input x base input price)
+ (cache writes x 1.25 x base input price)
+ (cache reads x 0.10 x base input price)
+ (output incl. thinking x output price)
session cost = sum over all turnsPrzykład obliczeniowy dla modelu Claude Opus 4.8, który w lipcu 2026 roku kosztuje 5 USD za milion tokenów wejściowych i 25 USD za milion tokenów wyjściowych. Średnia tura sesji zawierająca 80 000 tokenów zgromadzonego kontekstu: 75 000 odczytanych z pamięci podręcznej (cache), 3 000 nowo zapisanych, 2 000 nowych danych wejściowych bez cache oraz 1 500 tokenów wyjściowych, wliczając proces myślowy.
- Odczyty z cache: 75 000 × 0,50 USD/M = 0,0375 USD
- Zapisy do cache: 3 000 × 6,25 USD/M = 0,019 USD
- Dane wejściowe bez cache: 2 000 × 5 USD/M = 0,010 USD
- Dane wyjściowe: 1 500 × 25 USD/M = 0,0375 USD
Koszt tury wynosi około 0,10 USD; pięćdziesiąt takich tur to wydatek rzędu 5 USD. Teraz ta sama tura po wygaśnięciu cache: pełne 80 000 tokenów zapisanych ponownie po stawce 6,25 USD/M kosztuje 0,50 USD przed doliczeniem kosztów wyjścia, co stanowi około pięciokrotność kosztu tury z aktywnym cache przy identycznym nakładzie pracy. Ta różnica to istota mechanizmu cache w jednej liczbie. Te cztery linie obliczeń są również jedynym rzetelnym sposobem porównywania dostawców, ponieważ stawki cennikowe całkowicie pomijają odczyty z cache oraz proces myślowy, a ich zastosowanie w trzech rzeczywistych zadaniach pokazuje gdzie rachunek za Claude przewyższa lub jest niższy od rachunku za OpenAI.
Jeśli celem jest zrozumienie samej jednostki rozliczeniowej, a nie pojedynczej tury, ile milion tokenów oznacza w przeliczeniu na strony, pliki i dolary przedstawia te same obliczenia na wyższym poziomie. W celach kalibracji, a nie prognozowania: opublikowane przez Anthropic dane dla wdrożeń enterprise Claude Code, według stanu na lipiec 2026 roku, wynoszą średnio około 13 USD na programistę za aktywny dzień, 150–250 USD miesięcznie, przy czym 90% użytkowników mieści się w kwocie poniżej 30 USD dziennie. Rzeczywiste koszty zależą od wyboru modelu, higieny sesji oraz rozmiaru bazy kodu, co wyjaśnia, dlaczego poniższe parametry mają kluczowe znaczenie.
Podgląd własnego zużycia
W Claude Code polecenie to /usage (/cost również działa, jest to alias). Blok sesji u góry wyświetla statystyki tokenów oraz lokalnie obliczony szacunkowy koszt bieżącej sesji; w planach subskrypcyjnych ten sam ekran pokazuje paski limitów planu oraz zestawienie przypisujące ostatnie zużycie do umiejętności, subagentów, wtyczek, pluginów i poszczególnych serwerów MCP. W przypadku wiążących rozliczeń na kontach API, źródłem prawdy jest strona zużycia w Claude Console, wartość w CLI jest jedynie szacunkiem. /context rysuje kolorową siatkę tego, co zajmuje okno kontekstowe, promptu systemowego, narzędzi, definicji MCP, plików, historii i jest najszybszym sposobem na wykrycie przeładowanego CLAUDE.md lub zbyt rozmownego serwera MCP; przekaż all, aby rozwinąć pełne zestawienie dla każdego elementu.
Z poziomu API każda odpowiedź informuje dokładnie o tym, co się wydarzyło:
response = client.messages.create(model="claude-sonnet-5", max_tokens=2048,
messages=messages)
u = response.usage
total_prompt = u.input_tokens + u.cache_creation_input_tokens + u.cache_read_input_tokens
print(f"uncached={u.input_tokens} written={u.cache_creation_input_tokens} "
f"read={u.cache_read_input_tokens} output={u.output_tokens}")Należy pamiętać, że input_tokens to tylko niezakeszowana reszta, rzeczywisty rozmiar promptu to suma wszystkich trzech pól wejściowych. Agent, który działał przez godzinę, wykazując input_tokens: 4000, nie jest tani; pozostałe 200 000 tokenów zostało dostarczonych z pamięci podręcznej. Aby oszacować koszty przed wysłaniem żądania, użyj endpointu do zliczania tokenów; jest on darmowy, posiada własny limit szybkości i zlicza tokeny przy użyciu tokenizera wybranego modelu (wynik należy traktować jako przybliżenie; rozliczenie odzwierciedla rzeczywiste żądanie):
count = client.messages.count_tokens(model="claude-sonnet-5",
messages=[{"role": "user", "content": big_file}])
print(count.input_tokens)Nigdy nie używaj tiktoken z powodów wymienionych powyżej.
Plany subskrypcyjne a model płatności za faktyczne zużycie
Mechanizmy opisane w tym przewodniku są wszędzie identyczne; różni się jedynie sposób rozliczeń. W przypadku użycia klucza API, Anthropic nalicza opłaty zgodnie z modelem pay-as-you-go, za każdy token, według opublikowanych stawek; każda liczba podana powyżej oznacza realne koszty. Licznik uruchamia się szybciej, niż oczekuje większość użytkowników, ponieważ nie istnieje darmowy poziom usług, na który można przejść. Dostępny jest jedynie niewielki kredyt przy rejestracji oraz kilka punktów końcowych, które nie generują kosztów, co stanowi to, co faktycznie otrzymuje nowe konto API przed podpięciem karty płatniczej. W ramach subskrypcji Claude (Pro, Max, Team, Enterprise), korzystanie z Claude Code jest rozliczane z limitów zawartych w planie: według stanu na lipiec 2026 jest to kroczące okno sesji pięciogodzinnej oraz okno tygodniowe, współdzielone między modelami a czatem claude.ai, a kwota w dolarach /usage ma charakter informacyjny, a nie rozliczeniowy. Po wyczerpaniu okna pojawi się komunikat "You've hit your session limit" lub "You've hit your weekly limit" wraz z czasem resetu, a przełączanie modeli za pomocą /model nie przywróci dostępu, ponieważ okna są współdzielone między modelami. Okna te są przypisane do konta, a nie do klienta, z którego aktualnie korzystasz, co warto wiedzieć, jeśli nadal ustalasz co działa natywnie na Linux i jaki plan obejmuje poszczególne interfejsy. To, które z dwóch okien zostało wyczerpane, decyduje o długości oczekiwania oraz o tym, co warto robić w międzyczasie, dlatego warto znać swoje opcje po osiągnięciu limitu w trakcie zadania. Plany mogą opcjonalnie aktywować kredyty na zużycie, zarządzane za pomocą /usage-credits, umożliwiające zakup dostępu po przekroczeniu limitu. Celowo nie podaję kwot limitów dla planów: są to najbardziej zmienne wartości w całym tym temacie, dlatego należy sprawdzać claude.com/pricing oraz własne paski /usage. Mechanika tokenów pozostaje istotna również w subskrypcji; nieefektywna sesja wyczerpuje okno w taki sam sposób, w jaki wyczerpywałaby środki pieniężne. Informacje dotyczące subskrypcji znajdują się w który plan Claude pasuje do Twojego sposobu użytkowania.
Skuteczne mechanizmy optymalizacji
- Ogranicz zakres odczytu agenta. Polecenie „napraw błąd walidacji w
auth.py” odczytuje jeden plik, natomiast „popraw ten kod” analizuje czterdzieści. UtrzymujCLAUDE.mdw ograniczonej formie, ponieważ jest ładowany do każdej sesji; ogranicz go do niezbędnych informacji, a instrukcje specyficzne dla danego procesu roboczego przenieś do umiejętności ładowanych na żądanie. - Dbaj o przejrzystość i zwięzłość.
/clearmiędzy niepowiązanymi zadaniami powoduje, że nieaktualny kontekst jest ponownie przesyłany i rozliczany przy każdej kolejnej wiadomości. W ramach długiego zadania/compact Focus on the failing tests and the diffpozwala podsumować historię i uniknąć wzrostu kosztów wynikającego z kwadratowej złożoności modelu. - Dobierz odpowiedni model. Sonnet obsługuje większość zadań programistycznych w cenie $2/$10 za milion tokenów w ramach cen promocyjnych na lipiec 2026 (cena katalogowa $3/$15, w porównaniu do Opus za $5/$25), natomiast Haiku za $1/$5 jest odpowiednim narzędziem do mechanicznych zadań podrzędnych, takich jak analiza logów. Fable 5 znajduje się na drugim końcu spektrum z ceną $10/$50, dwukrotnie wyższą niż Opus, dlatego warto wiedzieć, które zadania faktycznie uzasadniają taką stawkę, zanim pozostawi się ten model wybrany do rutynowych prac.
/modelumożliwia zmianę modelu w trakcie sesji. - Wstępnie filtruj rozwlekłe dane wyjściowe. Zastosowanie skryptu, który za pomocą grep ogranicza wyniki testów tylko do błędów przed przekazaniem ich do Claude, redukuje 20 000 tokenów wyniku narzędzia do 300. Oszczędność ta jest uwzględniana przy każdym kolejnym przesyłaniu tej tury.
- Grupuj zadania nieinteraktywne. W przypadku własnych potoków API, klasyfikacji, masowej weryfikacji czy zadań nocnych, Batches API oferuje te same modele z 50% zniżką w zamian za asynchroniczne dostarczenie wyników.
- Szanuj czas pamięci podręcznej. Pracuj w ciągłych blokach. Odłączona sesja Claude Code w tmux na serwerze VPS nie generuje kosztów w stanie bezczynności, ponieważ tokeny są zużywane tylko podczas wykonywania tury. Należy jednak pamiętać, że czas bezczynności powoduje utratę rozgrzanej pamięci podręcznej, a kolejna tura wymusza ponowne jej zapisanie.
FAQ
Ile tokenów zużywa sesja programistyczna w Claude Code?
Nie ma stałej liczby. Pojedyncza tura w trakcie sesji często obejmuje dziesiątki tysięcy tokenów promptu, gdy pliki i historia ulegają akumulacji, a sesja robocza może osiągnąć miliony. Większość z nich jest serwowana z pamięci podręcznej przy jednej dziesiątej stawki podstawowej. Dla celów kalibracji, opublikowane przez Anthropic dane dla przedsiębiorstw na lipiec 2026 wskazują średni koszt około 13 USD na programistę dziennie, przy czym 90% użytkowników mieści się w kwocie 30 USD. Uruchom /usage w swojej sesji; pięć minut obserwacji daje lepszy obraz niż jakakolwiek opublikowana średnia.
Czy tokeny myślowe kosztują, nawet jeśli ich nie widzę?
Tak. Tokeny myślowe są rozliczane jako tokeny wyjściowe według wyższej stawki i wliczają się do max_tokens. Obecne modele naliczają je nawet wtedy, gdy interfejs pomija podsumowanie rozumowania w wyświetlanym tekście. Jeśli odpowiedź zostaje ucięta z komunikatem stop_reason: "max_tokens" przed zakończeniem widocznej treści, prawdopodobnie to proces myślowy wyczerpał budżet. W Claude Code należy obniżyć poziom wysiłku za pomocą /effort w przypadku zadań, które nie wymagają głębokiego rozumowania.
Dlaczego długa sesja w Claude Code staje się droższa z każdą wiadomością?
Ponieważ API jest bezstanowe: każda tura przesyła ponownie całą konwersję, każdy odczytany plik, wynik narzędzia i poprzednią wymianę zdań jako płatny wkład (input). W związku z tym tura 50 zawiera tury od 1 do 49 jako obciążenie. Prompt caching obsługuje powtarzający się prefiks za około jedną dziesiątą podstawowej ceny wejściowej, ale sam prefiks stale rośnie, a każda przerwa w aktywności przekraczająca czas TTL pamięci podręcznej powoduje, że kolejna tura jest rozliczana jako pełnopłatny zapis. /compact skraca historię; /clear resetuje ją.
Jak sprawdzić zużycie tokenów i koszty w Claude Code?
W Claude Code polecenie /usage wyświetla statystyki tokenów sesji, lokalne oszacowanie kosztów oraz paski limitów planu w subskrypcjach (/cost jest aliasem); /context pokazuje, co aktualnie wypełnia okno kontekstowe. W celu uzyskania wiarygodnych danych rozliczeniowych API należy skorzystać ze strony użycia w Claude Console. We własnym kodzie należy odczytać response.usage; zsumowanie input_tokens, cache_creation_input_tokens oraz cache_read_input_tokens daje rzeczywisty rozmiar promptu. Szacowanie należy przeprowadzać z wyprzedzeniem za pomocą punktu końcowego count_tokens, nigdy za pomocą tiktoken.