Przejdź do głównej zawartości

Optymalizacja wydajności w Claude Code

Twój rachunek za Claude Code po cichu urósł i nie potrafisz powiedzieć dlaczego. Jedna sesja przeskanowała całe repo, inna utrzymywała przy życiu przestarzały kontekst 80 plików przez tuzin niepowiązanych pytań, a szybkie „napraw lint” zamieniło się w odczyt całego drzewa. Lekarstwem nie jest używanie Claude rzadziej — jest karmienie go mniejszą porcją. Mniejszy, ostrzejszy kontekst jest tańszy i daje lepsze odpowiedzi, bo model nie rozprasza uwagi na plikach, które nie mają znaczenia.

  • Model myślowy tego, co naprawdę napędza koszt tokenów (i dlaczego modele z kontekstem 1M nie czynią go darmowym)
  • Prawdziwe dźwignie do kurczenia kontekstu: /context, /clear, /compact, --add-dir i CLI zamiast MCP
  • Jak automatyczne cache’owanie promptów oszczędza Ci pieniądze — i jak przestać przypadkiem je psuć
  • Praktyczną regułę doboru modelu z właściwą zmienną środowiskową i aliasami
  • Gotowy do wklejenia zestaw oszczędnych tokenowo promptów i prawdziwy sposób na śledzenie wydatków

Koszt skaluje się z rozmiarem kontekstu: im więcej Claude czyta w każdej turze, tym więcej płacisz. Dwie rzeczy działają na Twoją korzyść automatycznie, a jedno powszechne założenie nie jest już prawdą.

Kontekst napędza koszt

Każdy plik, prompt i poprzednia tura są wysyłane ponownie przy każdej wiadomości. Rozdęty kontekst obciąża każdą turę, nie tylko pierwszą.

Cache'owanie jest automatyczne

Claude Code cache’uje stabilną treść (prompt systemowy, powtarzający się kontekst) i nalicza za nią z dużą zniżką. Nie włączasz tego — ale możesz to zepsuć.

Kompaktowanie jest automatyczne

Gdy zbliżasz się do limitu kontekstu, Claude Code podsumowuje za Ciebie starszą historię. Możesz tym sterować przez /compact.

Kontekst 1M nie jest darmowy

Fable 5, Opus 4.8 i Sonnet 4.6 mają okna 1M tokenów (Haiku 4.5 ma 200K). Większe okno usuwa twardy sufit, ale wciąż płacisz za token — dyscyplina nadal ma znaczenie.

Nie zoptymalizujesz tego, czego nie widzisz. Pierwszy ruch w każdej sesji, która wydaje się droga, to spojrzeć na to, co faktycznie jest załadowane.

  • Uruchom /context wewnątrz REPL claude, aby zwizualizować, co zjada okno — pliki, definicje narzędzi MCP, historię rozmowy.
  • Uruchom /cost, aby zobaczyć zużycie tokenów i wydatki bieżącej sesji.
  • Skonfiguruj swój status line, aby pokazywał zużycie kontekstu na bieżąco, dzięki czemu zauważysz rozdęcie, zanim się skumuluje.

Jeśli /context pokazuje, że serwery MCP zjadają dużą część, zanim cokolwiek zrobiłeś, to szybka wygrana — zobacz sekcję o modelu i MCP poniżej.

Największe oszczędności biorą się z nieładowania tego, czego nie potrzebujesz. Claude Code przyjmuje Twój prompt pozycyjnie; nie przyjmuje ścieżek plików ani katalogów jako argumentów pozycyjnych. Aby poszerzyć jego zasięg, użyj --add-dir; aby utrzymać go wąskim, po prostu powiedz w promptcie, które pliki mają znaczenie, a resztę zrobi agentic search.

Okno terminala
# Źle: ścieżki nie są argumentami pozycyjnymi
# claude "refactor auth" auth/ middleware/ utils/
# Dobrze: nazwij punkt wejścia w promptcie; Claude eksploruje od niego
claude "Analyze the auth flow starting from src/auth/core.ts and tell me where
session validation happens."
# Dobrze: świadomie poszerz dostęp dla monorepo
claude --add-dir ../apps ../lib "Update the shared logger and every app that uses it."

Następnie zarządzaj kontekstem przez całą sesję:

  1. Czyść między niepowiązanymi zadaniami. /clear porzuca przestarzały kontekst, więc nie płacisz za ponowne wysyłanie plików poprzedniego zadania przy każdej nowej wiadomości.

  2. Kompaktuj ze skupieniem, gdy musisz iść dalej. /compact Focus on the files we changed and the API contract podsumowuje historię, zachowując to, co istotne.

  3. Sprawdź ponownie przez /context po dużych fazach, aby potwierdzić, że okno jest naprawdę szczupłe.

Automatyczne cache’owanie promptów pomaga tylko wtedy, gdy zacache’owany prefiks pozostaje stabilny. Najszybszy sposób na wyrzucenie zniżki to zmiana wczesnego, stabilnego kontekstu — przestawianie kolejności plików, podmiana promptu systemowego albo edycja pliku siedzącego blisko początku kontekstu — co unieważnia wszystko zacache’owane po nim.

Praktyczne reguły:

  • Wykonuj niepowiązaną pracę w nowej sesji (/clear) zamiast przetasowywać bieżącą. Czysta karta cache’uje się czysto.
  • Trzymaj stabilny materiał referencyjny (notatki o architekturze, konwencje) w CLAUDE.md, aby był częścią zacache’owanego kontekstu systemowego, a nie był wklejany doraźnie za każdym razem.
  • Grupuj powiązane edycje razem, aby cache był ciepły przez cały przebieg, zamiast przeplatać je niepowiązanymi pytaniami zmieniającymi kształt kontekstu.

Niejasne prompty produkują rozwlekłe, eksploracyjne odpowiedzi; konkretne prompty dostają konkretne odpowiedzi i czytają mniej plików. Bądź zdecydowany co do zakresu i formatu wyjścia.

Refactor the auth middleware from the old-jwt library to new-jwt. Keep the public API
identical. Change only src/middleware/auth.ts and its test. Reply with the diff, no prose.

Dopasuj model do zadania. Sonnet 4.6 obsługuje większość pracy z kodem niższym kosztem; rezerwuj Opus 4.8 do naprawdę trudnego rozumowania; sięgaj po Fable 5, gdy prędkość i jakość ważą więcej niż koszt — złożone refaktoryzacje wieloplikowe, budowanie od zera lub długotrwałe zadania wymagające szczytowej inteligencji; używaj Haiku 4.5 do błahych, masowych edycji. Przełączaj się w trakcie sesji przez /model albo ustaw to z góry.

Zmienna środowiskowa to ANTHROPIC_MODEL (nie CLAUDE_MODEL), a możesz użyć albo aliasu, albo pełnego ID modelu:

Okno terminala
# Aliasy — najprostsze
claude --model sonnet "refactor the authentication system"
claude --model haiku "fix the typo in README.md"
# Pełne ID przez zmienną środowiskową, np. dla najgłębszego przeglądu
ANTHROPIC_MODEL=claude-opus-4-8 claude "Security-audit the auth module for token handling bugs."
# Fable 5 do najtrudniejszych zadań (2× koszt Opus; subagenci nadal automatycznie działają na Opus/Sonnet/Haiku)
claude --model fable "Rebuild the payment flow — design, implement, and test end-to-end."

Prawidłowe aliasy to haiku, sonnet, opus i fable; odpowiadające im pełne ID to claude-haiku-4-5, claude-sonnet-4-6, claude-opus-4-8 i claude-fable-5. Dla subagentów ustaw model: haiku w konfiguracji subagenta, aby tani pomocnicy nie działali na drogim modelu. Zobacz porównanie modeli po pełne zestawienie możliwości i cen.

Serwery MCP dodają definicje narzędzi do Twojego kontekstu w każdej turze, niezależnie od tego, czy ich używasz. Jeśli /context pokazuje, że zajmują miejsce, to darmowe pieniądze:

  • Preferuj narzędzia CLI nad serwerami MCP, gdy istnieją obie opcje. gh, aws, gcloud i sentry-cli nie kosztują trwałego kontekstu — Claude po prostu je uruchamia. Serwer MCP do tego samego zadania siedzi w kontekście bezczynnie.
  • Wyłącz nieużywane serwery. Uruchom /mcp, aby wylistować skonfigurowane serwery, i wyłącz te, których nie używasz w tej sesji.
  • Zrzuć wstępne przetwarzanie na hooki i skille. Hook PreToolUse, który grepuje 10 000-liniowy log w poszukiwaniu ERROR, zanim Claude go zobaczy, może obciąć dziesiątki tysięcy tokenów do setek. Skill „codebase-overview” wręcza Claude Twoją architekturę bezpośrednio, zamiast kazać mu czytać tuzin plików, aby ją wywnioskować.
  • Zainstaluj wtyczki code-intelligence dla języków typowanych, aby „przejdź do definicji” zastąpiło grep-a-potem-czytanie-pięciu-kandydatów.

Do pracy interaktywnej /cost i status line wystarczą. Do uruchomień skryptowych lub CI wyciągnij ustrukturyzowane zużycie z trybu print, zamiast grepować interaktywne wyjście (które nie emituje linii per-token):

Okno terminala
# Ustrukturyzowane zużycie + wynik, czytelne maszynowo
claude -p --output-format json "summarize today's changes" | jq '.usage, .total_cost_usd'
# Twardy sufit budżetu dla zautomatyzowanego uruchomienia — zatrzymuje się, zanim przekroczy
claude -p --max-budget-usd 2.00 "fix all type errors in src/"

--max-budget-usd i --output-format json to flagi trybu print (-p). Dla bieżącej widoczności w całym zespole analityka zużycia Claude Code oraz metryki OpenTelemetry raportują wydatki na tokeny w czasie — podłącz je do swoich dashboardów zamiast ręcznie parsować logi.