← Strona główna
← Poradniki

Cache promptów w Claude: ile kosztuje i dlaczego przestaje działać

Cache promptów to największa dźwignia kosztowa w większości aplikacji na Claude i najłatwiejsza do zepsucia bez zauważenia. Cache, który przestał pasować, nie zgłasza błędu. Widać go później, na fakturze. Ten poradnik najpierw wyjaśnia mechanizm, potem pieniądze, a na końcu testy, po których poznasz, czy cache działa.

W skrócie

  • Odczyt z cache kosztuje około jednej dziesiątej zwykłej ceny wejścia. Zapis kosztuje 1,25 zwykłej ceny przy 5 minutach albo 2 razy tyle przy 1 godzinie.
  • Cache dopasowuje dokładny prefiks. Jeden zmieniony bajt na początku zapytania sprawia, że wszystko po nim nie trafia w cache.
  • Zepsuty cache nie zgłasza błędu i kosztuje 25% więcej niż brak cache.
  • Czas życia wybieraj według odstępu między zapytaniami: poniżej 5 minut zostaw domyślny, między 5 a 60 minut ustaw 1 godzinę.
  • Blok usage w każdej odpowiedzi mówi, czy cache działa. Sprawdzaj go po każdej zmianie sposobu składania promptów.

Czym jest cache promptów

Claude czyta cały prompt przy każdym zapytaniu: definicje narzędzi, system prompt, dotychczasową rozmowę i nową wiadomość. W większości aplikacji pierwsze trzy części prawie się nie zmieniają, a Ty za każdym razem płacisz za nie pełną cenę.

Cache promptów pozwala Anthropic zachować pracę wykonaną już na początku Twojego promptu. Zaznaczasz, gdzie kończy się część do ponownego użycia. To miejsce nazywa się punktem cache (breakpoint). Następne zapytanie, które zaczyna się dokładnie tą samą treścią, odczytuje ją z cache za ułamek ceny.

Trzy zapytania o tej samej budowie. Pierwsze płaci za zapis do cache, drugie tanio go odczytuje, a trzecie nie trafia, bo zmienił się jeden bajt blisko początku.

Trzeci wiersz pokazuje całe ryzyko na jednym obrazku. Nic się nie zepsuło. Zapytanie się powiodło, odpowiedź była dobra. Tylko część objęta cache kosztowała ponad dwanaście razy więcej niż jedno zapytanie wcześniej.

Ile kosztuje token

Przy włączonym cache token wejścia ma jedną z czterech cen. Wszystkie podaje się jako wielokrotność zwykłej ceny wejścia danego modelu.

Wykres słupkowy czterech cen jednego tokenu wejścia: odczyt z cache 0,1 ceny, zwykłe wejście 1, zapis do cache na 5 minut 1,25, zapis do cache na 1 godzinę 2 razy cena wejścia.
Odczyt z cache jest tani, a zapis kosztuje więcej niż brak cache. Cache oszczędza pieniądze tylko wtedy, gdy po zapisach przychodzą odczyty.
ModelWejścieZapis, 5 minZapis, 1 godz.Odczyt
Claude Fable 5.110 USD12,50 USD20 USD0,25 USD
Claude Opus 5.54 USD5 USD8 USD0,20 USD
Claude Sonnet 5.52 USD2,50 USD4 USD0,20 USD
Claude Haiku 4.51 USD1,25 USD2 USD0,10 USD
Ceny katalogowe API Anthropic w dolarach za milion tokenów, październik 2026. Amazon Bedrock ustala własne ceny.

Jeden szczegół w tej tabeli łatwo przeoczyć. W większości modeli odczyt to jedna dziesiąta ceny wejścia, ale w Claude Opus 5.5 tylko jedna dwudziesta, a w Claude Fable 5.1 jedna czterdziesta. Im droższy model, tym więcej kosztuje pudło w porównaniu z trafieniem.

Kiedy się zwraca

Zapis do cache to mały zakład, że ten sam prefiks zostanie użyty jeszcze raz. Przy czasie życia 5 minut zakład zwraca się już przy drugim zapytaniu: jeden zapis i jeden odczyt kosztują 1,35 ceny wejścia, a bez cache 2. Przy czasie życia 1 godziny potrzeba trzech zapytań.

Wykres liniowy kosztu prefiksu dla sześciu zapytań. Bez cache koszt rośnie do 6 razy cena wejścia. Z cache na 1 godzinę dochodzi do 2,5, a z cache na 5 minut do 1,75.
Łączny koszt wspólnego prefiksu dla sześciu zapytań. Po przekroczeniu progu opłacalności różnica rośnie z każdym zapytaniem.

Jest jeszcze jeden warunek. Prefiks musi mieć minimalną długość, żeby w ogóle trafił do cache.

Minimalny prefiksModele
512 tokenówClaude Fable 5.1, Claude Opus 5.5, Claude Opus 5, Claude Sonnet 5.5
1 024 tokenyClaude Sonnet 5, Claude Opus 4.8
4 096 tokenówClaude Haiku 4.5

Zasada prefiksu

Każde zapytanie jest składane w stałej kolejności: definicje narzędzi, potem system prompt, potem wiadomości. Cache dopasowuje treść od pierwszego bajtu do punktu cache. Jeśli cokolwiek przed tym punktem się różni, dopasowanie kończy się w miejscu różnicy.

Wynika z tego jedna reguła projektowa. To, co się nie zmienia, daj na początek, a to, co zmienia się przy każdym zapytaniu, na koniec.

TypeScript
const response = await client.messages.create({
  model: 'claude-sonnet-5-5',
  max_tokens: 1024,
  // Automatyczny cache: punkt cache przesuwa się z końcem rozmowy
  cache_control: { type: 'ephemeral' },
  system: [
    // Stały punkt cache po części, która nigdy się nie zmienia
    { type: 'text', text: SYSTEM_PROMPT, cache_control: { type: 'ephemeral' } },
  ],
  messages,
})

To połączenie najlepiej sprawdza się na produkcji. Punkt cache na system prompcie gwarantuje miejsce odczytu dla dużej, stałej części. Ustawienie na najwyższym poziomie przesuwa drugi punkt do przodu wraz z rozmową, więc każda tura odczytuje wszystko, co było przed nią.

  • Zapytanie może mieć do czterech punktów cache. Automatyczny cache zajmuje jeden z nich.
  • Odczyt może trafić tylko tam, gdzie wcześniejsze zapytanie coś zapisało. Cache sam nie znajduje stałej treści. Znajduje wpisy zapisane w punkcie cache.
  • Od każdego punktu cache system cofa się najwyżej o 20 bloków treści w poszukiwaniu wcześniejszego wpisu. Jedna tura, która dodaje ich więcej, na przykład długa seria wywołań narzędzi, może nie znaleźć poprzedniego wpisu. W długich turach dodaj punkt cache w połowie.
  • Wpis w cache da się odczytać dopiero wtedy, gdy pierwsza odpowiedź zacznie się strumieniować. Dziesięć identycznych zapytań wysłanych w tej samej chwili zapłaci cenę zapisu. Wyślij jedno, poczekaj na pierwszy token i dopiero wtedy wyślij resztę.

Co po cichu psuje cache

Żadna z tych rzeczy nie zgłasza błędu. Każda zamienia odczyty w zapisy.

PrzyczynaCo się dziejeJak naprawić
Znacznik czasu, data albo identyfikator zapytania w system prompcieKażde zapytanie ma nowy prefiksPrzenieś to do ostatniej wiadomości użytkownika
JSON zapisywany z kluczami w zmiennej kolejnościBajty się różnią, choć dane są te sameSerializuj z posortowanymi kluczami
Narzędzia dodane, usunięte albo w innej kolejnościNarzędzia są na początku, więc całe zapytanie nie trafiaTrzymaj jedną stałą, posortowaną listę narzędzi
Zmiana modelu w trakcie rozmowyKażdy model ma osobny cacheProwadź rozmowę na jednym modelu
Zmiana ustawień thinking albo effort między zapytaniamiCache rozmowy zostaje unieważnionyUstal te ustawienia na stałe dla danej ścieżki
Punkt cache ustawiony za unikalną częścią promptuKażde zapytanie zapisuje wpis, którego nikt nie odczytaUstaw punkt cache na końcu części wspólnej
Prefiks krótszy niż minimum modeluNic nie trafia do cacheSprawdzaj minimum przy zmianie modelu i skracaniu promptów
Ten sam prompt wysyłany z kilku workspace’ówW API Anthropic każdy workspace ma własny cacheWysyłaj wspólny ruch z jednego workspace’u

Niektóre zmiany są bezpieczniejsze, niż wyglądają. Zmiana tool_choice między zapytaniami zostawia narzędzia i system prompt w cache. Dodanie wiadomości nigdy nie wpływa na to, co było przed nią.

5 minut czy 1 godzina

Wpis w cache żyje domyślnie 5 minut albo 1 godzinę, jeśli o to poprosisz. Każdy odczyt zeruje zegar bez opłaty. Dlatego pytanie nie brzmi, jak długo trwają Twoje sesje, tylko jak długie są przerwy między zapytaniami ze wspólnym prefiksem.

Tabela decyzji. Odstęp poniżej 5 minut: cache na 5 minut. Odstęp od 5 do 60 minut: cache na 1 godzinę. Odstęp ponad godzinę: żaden nie pomaga, więc rozgrzewaj cache według harmonogramu albo zaakceptuj jedno zimne zapytanie.
Czas życia wybieraj według odstępu między zapytaniami, a nie długości sesji.
  • Zegar liczy się od początku zapytania, a nie od końca. Jeśli odpowiedź generuje się cztery minuty, następne zapytanie ma około minuty na start, zanim wpis 5-minutowy wygaśnie.
  • W jednym zapytaniu można mieszać czasy życia, z jednym ograniczeniem: punkt cache na 1 godzinę musi być przed każdym punktem 5-minutowym.
  • O 1 godzinę prosi się zapisem cache_control: { type: "ephemeral", ttl: "1h" }.
  • Zapytanie z max_tokens: 0 zapisuje albo odświeża cache bez generowania odpowiedzi. Przydaje się przy starcie aplikacji, gdy pierwszy prawdziwy użytkownik nie powinien czekać na zimny start.

Jak sprawdzić, że działa

Każda odpowiedź zawiera blok usage. To jedyny wiarygodny dowód, że cache działa.

JSON
"usage": {
  "cache_read_input_tokens": 14000,     // odczytane z cache, tanio
  "cache_creation_input_tokens": 600,   // zapisane do cache, w cenie zapisu
  "input_tokens": 45,                   // po ostatnim punkcie cache, pełna cena
  "output_tokens": 380
}

Trzy pola wejścia sumują się do rozmiaru Twojego promptu. Jeśli input_tokens wygląda na zaskakująco małe, reszta przyszła z cache.

Dwa wykresy słupkowe dla czterech tur rozmowy. W zdrowym odczyty z cache rosną z każdą turą, a zapisy są małe, co daje koszt o 55% niższy niż bez cache. W zepsutym każda tura to pełny zapis i żadnego odczytu, co daje koszt o 25% wyższy niż bez cache.
W zdrowej rozmowie zielona część rośnie, a pomarańczowa zostaje cienka. Jeśli każdy słupek jest pomarańczowy, coś przepisuje prefiks.
  • Zdrowy: cache_read_input_tokens obejmuje prawie całą wcześniejszą rozmowę i rośnie z każdą turą. cache_creation_input_tokens ma mniej więcej rozmiar ostatniej tury.
  • Zepsuty: cache_creation_input_tokens jest bliskie pełnemu promptowi przy każdym zapytaniu, a odczyty są bliskie zera.
  • Brak cache: oba pola cache mają zero. Prefiks jest zapewne krótszy niż minimum albo nie ma punktu cache.

Żeby znaleźć przyczynę, zapisz pełną treść dwóch kolejnych zapytań i je porównaj. Pierwsze miejsce, w którym się różnią przed najnowszą wiadomością, to właśnie to, co psuje cache.

Przykład liczbowy

Weź system prompt o długości 14 000 tokenów wysyłany w 100 000 wywołań miesięcznie, na modelu w cenie 2 USD za milion tokenów wejścia. Tabela pokazuje koszt samego prefiksu.

SytuacjaJak jest rozliczanaMiesięcznie
Bez cache1,4 mld tokenów po 2 USD2 800 USD
Działający cache98 000 odczytów po 0,20 USD i 2 000 zimnych zapisów po 2,50 USDokoło 345 USD
Zepsuty cache1,4 mld tokenów zapisanych po 2,50 USD3 500 USD

Działający cache oszczędza na tym jednym prompcie około 2 450 USD miesięcznie. Zepsuty cache kosztuje 700 USD miesięcznie więcej niż brak cache, dlatego kontrola bloku usage jest ważniejsza niż samo wdrożenie.

Cache w Amazon Bedrock

Jeśli używasz Claude przez Amazon Bedrock, żeby korzystać z kredytów AWS, cache też tam działa, z tymi samymi minimalnymi długościami i oboma czasami życia w aktualnych modelach. Kilka rzeczy się różni.

  • Cache jest rozdzielony na poziomie organizacji, a nie workspace’u.
  • AWS zaznacza, że inferencja międzyregionalna może przy dużym obciążeniu zwiększać liczbę zapisów do cache, bo zapytanie może trafić do regionu, który nie widział jeszcze prefiksu.
  • Cache działa tylko przy inferencji na żądanie, nie przy przetwarzaniu wsadowym Bedrock.
  • Claude Opus 4.6 i starsze modele korzystają ze starszych API Bedrock, gdzie pola zużycia nazywają się cacheReadInputTokens i cacheWriteInputTokens i gdzie automatyczny cache nie jest dostępny.
  • Amazon CloudWatch publikuje dla Bedrock runtime liczniki CacheReadInputTokenCount i CacheWriteInputTokenCount. Jeśli Twój endpoint ich nie publikuje, zapisuj blok usage z każdej odpowiedzi samodzielnie.

Częste pytania

Czy cache zmienia odpowiedzi?

Nie. Cache zmienia koszt wejścia i to, jak szybko zaczyna się odpowiedź. Model dostaje ten sam prompt.

Czy inni klienci mogą odczytać moje prompty z cache?

Nie. Cache nigdy nie jest współdzielony między organizacjami. W API Anthropic jest też rozdzielony między workspace’y.

Czy cache przyspiesza odpowiedzi?

Tak, przy długich promptach. Części z cache nie trzeba przetwarzać ponownie, więc pierwszy token przychodzi szybciej.

Co można trzymać w cache?

Definicje narzędzi, system prompty, tekst, obrazy, dokumenty, wywołania narzędzi i ich wyniki. Bloków thinking nie da się oznaczyć bezpośrednio, ale trafiają do cache jako część wcześniejszych tur.

Czy tokeny z cache liczą się do limitów?

W większości modeli odczyty z cache nie są wliczane do limitu tokenów wejścia na minutę, więc działający cache zwiększa też przepustowość.

Czy warto cache’ować prompt, który zmienia się przy każdym zapytaniu?

Nie. Jeśli początek promptu jest za każdym razem inny, nie ma czego użyć ponownie, a Ty płacisz dopłatę za zapis na darmo.

Źródła