Większość poradników o oszczędzaniu tokenów w Claude Code sprowadza się do trzech rad: pisz krótkie sesje, nie wklejaj zbyt wiele i grupuj polecenia. Rady słuszne, tylko że są dopiero piątym lub szóstym najważniejszym czynnikiem. W codziennej pracy z Claude Code największe oszczędności biorą się z zupełnie innych miejsc. I mało kto o nich pisze. Przelećmy je od tych, które dają największy zwrot z czasu.
Token to nie wiadomość, model liczy każdy znak kontekstu
Krótkie przypomnienie, bo bez tego reszta wisi w powietrzu. Claude Code nie liczy ile razy nacisnąłeś enter. Liczy się, ile danych przelatuje przez model przy każdej odpowiedzi. A przelatuje cała historia rozmowy, pliki, które masz załadowane, instrukcje systemowe i definicje narzędzi. Każda kolejna wiadomość niesie ze sobą wszystko, co było wcześniej. Dlatego dwadzieścia krótkich wymian potrafi spalić więcej tokenów niż jeden duży, dobrze przemyślany prompt.
Dobór modelu zanim zaczniesz cokolwiek innego optymalizować
To jest punkt numer jeden i prawie nikt nie umieszcza go na pierwszym miejscu. Sonnet i Opus różnią się ceną tokenu wyjściowego mniej więcej pięciokrotnie. Haiku jest jeszcze tańszy. Jeżeli całe zadanie polega na poprawce literówki w komentarzu albo zmianie koloru w CSS, puszczanie tego przez Opusa jest jak wożenie chleba ze sklepu ciężarówką. W Claude Code w dowolnym momencie sesji zmienisz model komendą /model. Większość prostych edycji spokojnie wykona Sonnet. Do czytania logów i podsumowań często wystarczy Haiku. Opus zostaw na faktycznie trudne projektowanie architektury i debugowanie skomplikowanych błędów. Sam ten jeden nawyk potrafi ściąć rachunek bardziej niż wszystkie pozostałe punkty razem.
Prompt caching pracuje za Ciebie, jeśli mu nie przeszkadzasz
To mechanizm, o którym poradniki milczą, a działa po cichu na każdej sesji. Anthropic cache’uje powtarzający się prefiks kontekstu – definicje narzędzi, plik CLAUDE.md, początek konwersacji. Kolejne wiadomości korzystają z cache’a, jeśli prefiks jest niezmieniony. Rabat jest rzędu dziewięćdziesięciu procent. Konkret: trafienie w cache kosztuje ułamek normalnej stawki.
Co psuje cache? Modyfikowanie CLAUDE.md w środku sesji unieważnia wszystko, co było za nim. Wklejanie na początku promptu zmiennych typu timestamp albo losowych identyfikatorów też. Jeśli musisz zmienić instrukcje projektowe, zrób to na początku nowej sesji. Wbrew pozorom długa sesja przy stabilnym kontekście bywa tańsza niż dwadzieścia świeżych krótkich. W tych krótkich za każdym razem płacisz pełną stawkę za odbudowę bazy.
Plan mode zamiast iteracyjnego „a teraz popraw to”
W Claude Code skrót Shift+Tab przełącza między trybami pracy. Tryb planowania każe modelowi najpierw rozpisać, co zamierza zrobić – bez dotykania plików. Ty czytasz plan i korygujesz go tekstowo. „Nie ruszaj endpointu w X„, „użyj biblioteki Y zamiast Z„, „pomiń testy na razie„. Dopiero wtedy akceptujesz wykonanie. Efekt? Zamiast trzech rund poprawek po nieporozumieniach masz jedną realizację, która trafia w to, o co Ci chodziło. Z perspektywy tokenów to oszczędność dwóch–trzech pełnych cykli odpowiedzi.
Może Cię zainteresować: Najlepsze generatory obrazów AI (2026) – Przegląd narzędzi
Subagenty, czyli oddzielenie pracy brudnej od głównej
Claude Code potrafi delegować zadania do podagenta przez wewnętrzne narzędzie Task. Podagent dostaje konkretne polecenie i działa w swoim własnym oknie kontekstu. Wraca z krótkim podsumowaniem. Główna sesja nie zostaje zaśmiecona setkami linii kodu, które agent przegrzebał. Najlepiej widać to przy przeszukiwaniu dużego repozytorium albo przy długich analizach logów. Bez subagenta cała ta zawartość wchodzi do Twojej historii. I będzie liczona w każdej kolejnej odpowiedzi. Z subagentem dostajesz finalne podsumowanie i lecisz dalej.
`/compact` zamiast `/clear`, gdy szkoda kontekstu
Standardowa rada to po każdym zadaniu robić /clear. Często jednak jesteś w środku większej pracy. Kontekst jest jeszcze potrzebny, ale zaczyna się robić ciężki. Wtedy lepiej użyć /compact. Komenda robi inteligentne podsumowanie dotychczasowej sesji. Zachowuje decyzje, ustalenia i kluczowe fragmenty kodu. Wyrzuca powtórki, próbne wersje i odgałęzienia, które do niczego nie doprowadziły. Po compact masz świeży, lekki kontekst, ale ze świadomością tego, co już zostało zrobione. clear używaj tylko przy zmianie tematu.
`CLAUDE.md` to instrukcja obsługi, a nie podręcznik historii projektu
Plik CLAUDE.md siedzi w prefiksie każdej rozmowy. Jego rozmiar mnoży się przez liczbę interakcji. Powinien zawierać wyłącznie to, co Claude musi wiedzieć. Ścieżki, konwencje nazewnicze, framework, używane biblioteki. Czego pod żadnym pozorem nie ruszać. Nie historia projektu, nie wprowadzenie do dziedziny, nie opisy „dlaczego tak zrobiliśmy„. U mnie sensowny CLAUDE.md ma między pięćdziesiąt a sto pięćdziesiąt linii. Wszystko powyżej zaczyna być wodą. Claude i tak potraktuje ją wybiórczo, a Ty zapłacisz za nią przy każdej wiadomości.
Referencja `@plik` zamiast wklejania zawartości
Częsty błąd początkujących – kopiowanie całego pliku do promptu, żeby Claude „widział, o co chodzi„. Operator @ścieżka/do/pliku.js robi to lepiej. Claude dostaje informację, że plik istnieje, i sięga po niego dopiero wtedy, gdy faktycznie go potrzebuje. Korzysta wtedy z własnego narzędzia do czytania. Często okazuje się, że wystarczy mu rzut oka na fragment, nie cały plik. W ten sposób nigdy nie ładujesz do kontekstu tysiąca linii, z których model wykorzysta dwadzieścia.
`.claudeignore` i kontrola nad tym, co agent w ogóle widzi
W katalogu projektu można zostawić plik .claudeignore o składni zbliżonej do .gitignore. Wykluczasz w nim katalogi i pliki, których Claude nie powinien indeksować. node_modules, dist, build, zrzuty bazy, archiwa, duże pliki binarne, cache narzędzi. Bez tego agent próbuje przejrzeć katalogi z trzydziestoma tysiącami plików. Albo ucina to losowo, albo marnuje tokeny na śmieci. Plik na pięć linii potrafi zmienić zachowanie agenta dramatycznie.
Output style i własne komendy slash
Mniej znana sprawa. W katalogu .claude/commands/ można zdefiniować własne komendy slash. To szablony promptów, które wywołujesz jednym słowem. Można też ustawić tzw. output style – stałe instrukcje co do formy odpowiedzi. Na przykład „odpowiadaj tylko kodem, bez komentarza” albo „minimalne wyjaśnienia”. Jeśli zauważasz, że co rozmowę wpisujesz to samo zdanie wprowadzające – powinno być w komendzie albo w stylu. Każde takie zdanie powtarzane przy każdej sesji to dług tokenowy.
Co z tego wszystkiego naprawdę warto wdrożyć
Jeśli miałbym uszeregować po sile efektu względem włożonego czasu, na pierwszym miejscu jest dobór modelu – pięciokrotna różnica w cenie jest nie do nadrobienia żadnym promptowaniem. Drugi w kolejności jest plan mode, bo oszczędza całe rundy iteracji bez żadnych dodatkowych zabiegów. Trzeci to porządny `.claudeignore` i krótki `CLAUDE.md`, które działają na każdej pojedynczej wiadomości. Cała reszta to dokręcanie śrub. Sama świadomość prompt cachingu zmienia też podejście do tego, jak prowadzisz sesję – okazuje się, że długa, stabilna konwersacja bywa tańsza niż łańcuch krótkich, w których ciągle płacisz za odbudowę kontekstu.
📸 Miniaturka i zdjęcie główne tego artykułu pochodzą z serwisu Unsplash.

