Strona główna / Rozdział 3 · Jak model pisze i ile to kosztuje
Ostatnia zmiana · 5 min czytania
Prompt caching
Prompt caching to KV cache zachowany u dostawcy między requestami. Request, który zaczyna się identycznie jak niedawny, pomija prefill tej części: płaci ułamek ceny wejścia i szybciej dostaje pierwszy token.
Po ludzkuKelner, który zna stałych gości, nie pyta od nowa o alergie i ulubiony stolik. Ale wystarczy przedstawić się innym imieniem i zaczyna od zera. I pamięta gościa tylko kilka minut od ostatniej wizyty.
Wybierz układ promptu. Zobacz, jaka część drugiego requestu trafia w cache i ile to kosztuje
Request 1
Request 2, chwilę później
Przykładowe stawki: 3 USD za milion tokenów wejściowych, odczyt z cache’u 10% tej ceny, zapis 125%. Tak liczą Anthropic przy 5-minutowym wpisie i OpenAI od GPT-5.6 (wrzesień 2026). U starszych modeli i innych dostawców zapis bywa bez dopłaty.
Jak działa prompt caching
- Po requeście dostawca zachowuje KV cache promptu w blokach i indeksuje je hashem prefiksu, czyli wszystkiego od początku promptu do końca bloku (temat „Pętla generowania i KV cache”). Request z tym samym początkiem wczytuje te bloki zamiast liczyć je od nowa.
- Trafia tylko identyczny prefiks. K i V każdego tokena zależą od wszystkich tokenów przed nim, a dzięki masce przyczynowej od niczego za nim. Dopisany koniec zostawia więc cache ważny, a pierwszy zmieniony token unieważnia wszystko za nim, nawet gdy dalsza część jest identyczna.
- Zysk jest podwójny: tańsze wejście i krótszy czas do pierwszego tokena, bo prefill pomija trafioną część. Generowania odpowiedzi to nie przyspiesza. Model widzi dokładnie ten sam tekst, więc cache nie zmienia jakości.
Warunki u dostawców
- Anthropic (wrzesień 2026): odczyt 0,1 ceny wejścia (w najnowszych modelach jeszcze mniej), zapis 1,25 przy wpisie 5-minutowym i 2 przy godzinnym. Punkty cięcia (breakpointy) wskazujesz sam (do 4 znaczników
cache_control) albo jednym polem w trybie automatycznym. Minimalny prefiks to od 512 do 4096 tokenów zależnie od modelu. Krótszy po cichu się nie zapisze. - OpenAI cache’uje prefiksy automatycznie. Od GPT-5.6 minimum to 1024 tokeny, zapis kosztuje 1,25, odczyt 0,1, a wpis żyje co najmniej 30 minut. Starsze modele nie mają dopłaty za zapis i domyślnie trzymają wpis ok. 30 minut, najwyżej 24 godziny; przy Zero Data Retention albo w modelach bez retencji 24-godzinnej domyślnie 5–10 minut bezczynności, najwyżej godzinę. Gemini od 2.5 ma cache automatyczny, bez gwarancji trafienia, i jawny, płatny za godzinę przechowywania.
- Każde trafienie odnawia czas życia wpisu. U Anthropic liczy się on od startu requestu, więc generowanie trwające 4 minuty zjada większość 5-minutowego wpisu. Użytkownik, który przy takim wpisie odpisze po kwadransie, zaczyna od zapisu.
Jak układać prompt pod cache
- Najpierw to, co stałe: definicje narzędzi, system prompt, duże dokumenty, przykłady. Potem historia, na końcu nowa wiadomość. U Anthropic hierarchia to
tools→system→messages, więc zmiana narzędzi unieważnia wszystko. - Historię tylko dopisuj. Agent w każdej turze wysyła ją całą (temat „Okno kontekstowe i agent”), a tylko dopisywana historia pozwala każdej turze przeczytać z cache’u wszystko poza najnowszą częścią. Edycja starej wiadomości, kompakcja, wycięcie starego wyniku narzędzia albo przestawienie narzędzi unieważnia cache od tego miejsca. Oszczędzanie okna (temat „Context engineering i pamięć”) trzeba więc zestawić z kosztem chybienia.
- Typowi zabójcy prefiksu: data i godzina albo identyfikator sesji na początku, niedeterministyczna kolejność kluczy JSON albo narzędzi, zmiana modelu, poziomu myślenia albo schematu odpowiedzi w trakcie rozmowy.
- Mierz trafienia w
usage:cache_read_input_tokensw Anthropic,cached_tokensw OpenAI. Hit rate to tokeny z cache’u przez wszystkie tokeny wejściowe. W Anthropicinput_tokensliczy tylko to, co stoi za ostatnim breakpointem, więc całe wejście toinput_tokens+cache_creation_input_tokens+cache_read_input_tokens; w OpenAIinput_tokensjuż zawieracached_tokens. Zero trafień przy powtarzalnym prefiksie znaczy, że coś go zmienia. - Opłacalność: przy zapisie 1,25 i odczycie 0,1 wpis zwraca się już przy jednym trafieniu (1,35 zamiast 2 cen wejścia). Godzinny wpis za 2 potrzebuje dwóch trafień. Prefiks, który się nie powtarza, tylko dopłaca za zapis.
Sprawdź się
Jak działa prompt caching i jak układać pod niego prompt?
To KV cache zachowany u dostawcy między requestami. Działa tylko przy identycznym prefiksie, bo K i V tokena zależą od wszystkiego przed nim: pierwszy zmieniony token unieważnia resztę. Dlatego stałe części, czyli narzędzia, system prompt i duże dokumenty, idą na początek, historię się tylko dopisuje, a zmienne dane trafiają na koniec. Odczyt kosztuje zwykle 10% ceny wejścia, zapis bywa droższy od zwykłego wejścia, a wpis żyje minuty. Zysk to tańsze wejście i krótszy czas do pierwszego tokena. Hit rate odczytuje się z pól usage.
In English
It is the KV cache kept by the provider across requests. It only matches an identical prefix, because a token’s keys and values depend on everything before it: the first changed token invalidates the rest. So stable parts such as tools, the system prompt and large documents go first, history is append-only, and volatile data goes last. Reads usually cost 10% of the input price, writes can cost more than plain input, and entries live for minutes. The payoff is cheaper input and faster time to first token. The hit rate comes from the usage fields.
Pytania pogłębiające (4)
- Rachunek za agenta jest wysoki, a hit rate niski. Co sprawdzasz?
- Porównaj kolejne requesty token po tokenie i szukaj pierwszej różnicy: data lub identyfikator na początku, niedeterministyczna serializacja narzędzi i JSON-a, edycja historii, zmiana modelu albo poziomu myślenia. Potem sprawdź, czy przerwy między turami nie są dłuższe niż czas życia wpisu i czy prefiks przekracza minimalną długość.
- Czym prompt caching różni się od cache’u semantycznego?
- Prompt caching przechowuje obliczenia dla identycznego prefiksu, a model i tak generuje nową odpowiedź, więc jakość się nie zmienia. Cache semantyczny zwraca starą odpowiedź na podobne pytanie: oszczędza całe wywołanie, ale może zwrócić odpowiedź na inne pytanie.
- Kiedy caching się nie opłaca?
- Gdy prefiks rzadko się powtarza w czasie życia wpisu. Przy dopłacie za zapis każdy wpis bez trafienia kosztuje więcej niż request bez cache’u.
- Czy cache może zdradzić dane innego użytkownika?
- Duzi dostawcy nie dzielą cache’u między organizacjami, ale w twojej aplikacji użytkownicy z tym samym prefiksem trafiają w ten sam wpis. Trafienie widać po krótszym czasie odpowiedzi, więc ktoś może sprawdzić, czy inny użytkownik niedawno wysłał dany tekst. Audyt z 2025 roku wykrył cache współdzielony globalnie, między organizacjami, u 7 z 17 dostawców API, a co najmniej pięciu zmieniło to dopiero po zgłoszeniu. Rozdziel cache per klient (w Anthropic osobny workspace, w OpenAI od GPT-5.6 osobny prompt_cache_key; w starszych modelach klucz wpływa tylko na routing) albo trzymaj wrażliwe dane poza wspólnym prefiksem.