Prompt Caching pre LLM 2026: Ako znížiť náklady o 90% s Claude a OpenAI
Praktický sprievodca prompt cachingom v LLM API pre rok 2026: Claude cache_control breakpointy, OpenAI automatický cache a Gemini Context Caching. Cenové porovnanie, produkčné vzory pre RAG a multi-turn agentov, plus anti-patterny, ktoré ničia cache hit rate.
Prompt caching je technika, ktorá umožňuje LLM API znovu použiť už vypočítané časti promptu (KV cache), typicky znižuje vstupné náklady o 50 až 90 % a latenciu time-to-first-token až o 80 %. V tomto sprievodcovi prejdeme implementáciou prompt cachingu pre Claude API (s explicitnými cache_control breakpointmi), OpenAI API (automatický cache) a Gemini API (kontextový cache), porovnáme cenové modely v roku 2026 a ukážeme produkčné vzory pre RAG, agentov a viacobratové konverzácie.
Honestly, toto je jedna z mála optimalizácií, ktorú som v poslednom projekte nasadil za hodinu a hneď zrazila účet o 78 %. Tak poďme na to.
Claude účtuje zápis do cache 1.25× základnej ceny pre 5-minútový TTL a 2× pre 1-hodinový TTL; čítanie z cache stojí len 0.1×, takže návratnosť máte po jedinom hite.
OpenAI prompt caching funguje úplne automaticky pre prompty ≥ 1 024 tokenov a poskytuje 50 až 75 % zľavu bez akejkoľvek zmeny kódu.
Minimálny cachovateľný prefix v Claude API je 1 024 tokenov pre Sonnet 4.6 a 4 096 pre Opus 4.7; pod tento prah sa cache nepoužije bez chybového hlásenia.
Najčastejšie anti-patterny: dynamický timestamp v systémovom prompte, používateľsky špecifický obsah v prefixe a menenie poradia tool definícií.
Pre Gemini sa cache vytvára explicitne cez Context Caching API a fakturuje sa za množstvo tokenov uložených v čase (token-hodiny).
Správna implementácia v multi-turn agentovi alebo RAG pipeline znižuje mesačný účet z $50 až $100 na $10 až $19 pri rovnakom objeme requestov.
Čo je prompt caching a ako funguje?
Keď LLM spracováva prompt, vypočíta vnútornú reprezentáciu tokenov, takzvanú KV cache (key-value cache attention vrstiev). Pri ďalšom requeste s rovnakým prefixom musí model bez prompt cachingu prepočítať všetko od začiatku. Prompt caching tento výpočet uloží na strane providera (typicky vo VRAM GPU clusteru) a pri zhode ho znovu použije.
Existujú tri konceptuálne modely:
Explicitný caching s breakpointmi (Claude): vývojár pomocou cache_control bloku označí, dokiaľ má byť obsah cachovaný. Maximálne 4 breakpointy per request.
Automatický caching (OpenAI, Azure OpenAI): provider deteguje opakované prefixy a aplikuje cache transparentne. Žiadna zmena API.
Explicitné vytvorenie cache objektu (Gemini): cache sa vytvorí samostatným API volaním a referencuje sa cez cached_content_id.
Cache funguje vždy prefixovo. Keď sa zmení token na pozícii N, všetko od N ďalej je miss, aj keď je obsah neskôr identický. Preto je poradie blokov v requeste kritické: stabilné časti (tool definície, systémový prompt, RAG context) patria dopredu, dynamické (otázka používateľa, timestamp) dozadu. Ak vás zaujíma širší kontext práce s dlhými promptmi, pozrite si tiež náš sprievodca Context Engineering pre AI agentov, ktorý sa venuje rozkladu kontextového okna do efektívnych vrstiev.
Ako zapnúť prompt caching v Claude API
Claude vyžaduje explicitný cache_control blok na poslednom prvku každého segmentu, ktorý chcete cachovať. Funkčný príklad v Pythone pomocou oficiálneho SDK:
Pri druhom requeste v rámci nasledujúcich asi 5 minút uvidíte v usage objekte cache_read_input_tokens: 30421 a cache_creation_input_tokens: 0. Zaplatíte len 10 % ceny za prefix. Pekné, však?
1-hodinový TTL pre dlhšie session
Pre dlhšie pracovné relácie (napríklad coding agent, ktorý môže byť idle 30 minút) použite "ttl": "1h". Zápis stojí 2× namiesto 1.25×, ale break-even je len 2 hity.
Tool definície sa cachujú spolu so systémovým promptom. Ak váš agent volá 20 toolov so zložitými JSON schémami, ich cachovanie ušetrí veľkú časť každého requestu:
Na rozdiel od Claude, OpenAI nevyžaduje žiadne API zmeny. Cache sa aplikuje automaticky pre každý prompt dlhší ako 1 024 tokenov, ktorý zdieľa prefix s nedávnym requestom. Hity sú v inkrementoch po 128 tokenoch a expirujú po 5 až 10 minútach nečinnosti (off-peak až do 1 hodiny).
from openai import OpenAI
client = OpenAI()
SYSTEM = """Si AI asistent pre firmu AcmeCorp.
... 8 000 tokenov instrukcii a dokumentacie ...
"""
resp = client.chat.completions.create(
model="gpt-5.5",
messages=[
{"role": "system", "content": SYSTEM},
{"role": "user", "content": "Zhrn posledny kvartalny report."}
]
)
print(resp.usage.prompt_tokens_details)
# CachedTokensDetails(cached_tokens=7936)
Cenová úspora závisí od modelu. GPT-5.5 ponúka 75 % zľavu na cachované tokeny ($5.00 → $1.25 za milión), staršie modely typicky 50 %. Detaily a aktuálne hodnoty sú v OpenAI prompt caching guide.
Latencia: kde sa naozaj prejaví
Pri 150 000-tokenovom prompte je TTFT cca 67 % rýchlejší pri cache hite. Pri krátkych promptoch (1 024 tokenov) je rozdiel len asi 7 %. Práve preto je caching najviac viditeľný v RAG aplikáciách, dlhých systémových promptoch a multi-turn konverzáciách.
Gemini Context Caching: explicitný model
Google Gemini používa odlišný prístup. Cache je samostatný objekt, ktorý vytvoríte API volaním a potom referencujete pri každom requeste cez ID. Toto je výhodné, keď chcete jeden veľký kontext zdieľať medzi mnohými requestmi cielene:
from google import genai
from google.genai import types
client = genai.Client()
cache = client.caches.create(
model="gemini-2.5-pro",
config=types.CreateCachedContentConfig(
display_name="acme-docs-cache",
system_instruction="Si asistent AcmeCorp.",
contents=[long_document], # 100 000+ tokenov
ttl="3600s"
)
)
response = client.models.generate_content(
model="gemini-2.5-pro",
contents="Ake su klucove KPI v Q1?",
config=types.GenerateContentConfig(cached_content=cache.name)
)
Gemini účtuje cache nie podľa hitov, ale podľa množstva tokenov uložených v čase (token-hodiny). Minimálne 1 024 tokenov, maximálne asi 10 miliónov pri Gemini 2.5 Pro. Tento model je optimálny pre situácie typu „dlhý PDF zdieľaný 1 000 používateľmi". Zaplatíte úložisko raz, nie tisíckrát zápis.
Porovnanie cien a vlastností 2026
Vlastnosť
Claude (Sonnet 4.6)
OpenAI (GPT-5.5)
Gemini 2.5 Pro
Aktivácia
Explicitne (cache_control)
Automaticky
Explicitne (Cache API)
Minimum tokenov
1 024
1 024 (krok 128)
1 024
Cena zápisu
1.25× (5m) / 2× (1h)
Žiadny príplatok
Storage fee/hodinu
Cena čítania
0.1× (90 % zľava)
0.25× (75 % zľava)
0.25× + storage
Default TTL
5 min (1h opcia)
5 až 60 min
Konfigurovateľné
Cache izolácia
Workspace-level (od 2/2026)
Organizácia
Projekt
Break-even hitov
1 (5m) / 2 (1h)
Okamžite
Závisí od TTL
Pre väčšinu produkčných workloadov je Claude najefektívnejší vďaka 90 % zľave na čítaní; OpenAI má prednosť nulovej implementačnej réžie; Gemini vyniká pri masívnych zdieľaných kontextoch.
Produkčné vzory pre RAG a agentov
Vzor 1: RAG s cachovanou retrieval bázou
V klasickom RAG pipeline sa pre každý request opätovne posiela top-k retrieved chunks. Ak však retrievnete pevný set 50 chunkov pre dennú reláciu používateľa, tieto patria do cachovaného prefixu:
system_blocks = [
{"type": "text", "text": SYSTEM_PROMPT},
{
"type": "text",
"text": format_chunks(daily_session_chunks),
"cache_control": {"type": "ephemeral", "ttl": "1h"}
}
]
# Kazda dalsia otazka v ramci hodiny stoji 0.1x za prefix
Vzor 2: Multi-turn agent s rastúcou históriou
Pri viacobratovej konverzácii sa s každým obratom predlžuje messages pole. Použite cumulative caching: označte cache_control na poslednej user správe, aby sa cachovala celá história po každý nový request:
Vzor 3: Cachovanie tool výsledkov pre deterministické agenty
Pre agenta s veľa krokmi (napríklad coding agent), ktorý vykonáva tooly a vracia výsledky, cachujte celú trajektóriu okrem poslednej tool response. Stratégia testovania a verifikácie agentových odpovedí je popísaná v našom článku o evaluácii LLM aplikácií s DeepEval a RAGAS.
Anti-patterny, ktoré ničia hit rate
Najčastejšie chyby, ktoré sa objavujú v code reviews produkčných LLM aplikácií:
Dynamický timestamp v systémovom prompte.f"Dnešný dátum je {datetime.now()}" invaliduje cache každú sekundu. Riešenie: presunúť timestamp do user message, alebo orezať na deň.
Používateľské meno alebo user_id v prefixe. Každý používateľ má cache miss. Riešenie: presunúť do user správy alebo do tool argumentov.
Nedeterministické poradie JSON kľúčov. Ak serializujete dict v Pythone bez sort_keys=True, môže sa poradie meniť medzi requestmi. Riešenie: explicitná serializácia.
Pridávanie tool definícií dynamicky. Vkladanie nového toolu na pozíciu 3 invaliduje cache pre tooly 4 až 20. Riešenie: pridávať len na koniec.
Pod-prahový obsah. Cachovanie 800 tokenov nefunguje (minimum je 1 024) a žiadne chybové hlásenie nedostanete. Riešenie: meranie skutočného cache_read_input_tokens.
Príliš veľa breakpointov. Claude má limit 4 breakpointy; piaty sa ticho ignoruje. Použite ho na 4 najefektívnejšie miesta (tools, system, RAG context, posledná user správa).
Meranie cache hit rate v produkcii
Bez merania nemáte feedback loop. Každá platforma vracia v response telemetriu, ktorú treba logovať a agregovať:
Cache hit rate per endpoint (cieľ pre RAG: > 80 %, pre agentov > 60 %).
Cache creation tokens. Ak rastú, niekto pridáva dynamický obsah do prefixu.
P95 TTFT pre cache hit vs miss requesty.
Náklady na 1 000 requestov rozdelené na cache write / cache read / input / output.
Nástroje ako Langfuse, Helicone alebo OpenTelemetry s LLM semantic conventions dokážu túto telemetriu agregovať out-of-the-box. Pre Gemini si pozrite oficiálnu Gemini Context Caching dokumentáciu s príkladmi billing query.
Často kladené otázky
Aký je minimálny počet tokenov pre prompt caching v Claude API?
Pre Claude Sonnet 4.6, Sonnet 4.5 a Opus 4.1 je minimum 1 024 tokenov. Pre Claude Opus 4.7, 4.6 a 4.5 je to 4 096 tokenov. Pod týmto prahom sa cache ticho ignoruje bez chybového hlásenia, takže treba kontrolovať cache_read_input_tokens v response.
Znižuje prompt caching aj latenciu, nielen cenu?
Áno. OpenAI uvádza až 80 % redukciu time-to-first-token pri cache hitoch dlhých promptov; pri 150 000-tokenovom prompte je rozdiel asi 67 % rýchlejší TTFT. Pri krátkych promptoch (okolo 1 024 tokenov) je úspora latencie len asi 7 %, takže ekonomický prínos je výraznejší ako rýchlostný.
Koľko stojí cache zápis v Claude API?
Zápis do 5-minútovej cache stojí 1.25× základnú vstupnú cenu, zápis do 1-hodinovej cache 2×. Čítanie je vždy 0.1× (90 % zľava). Pre 5-minútový TTL je teda návratnosť už po jedinom cache hite, pre 1-hodinový po dvoch.
Treba pre OpenAI prompt caching meniť kód?
Nie. OpenAI aplikuje caching plne automaticky pre prompty s 1 024 a viac tokenmi, ktoré zdieľajú prefix s nedávnym requestom. Stačí logovať response.usage.prompt_tokens_details.cached_tokens a optimalizovať poradie obsahu (stabilné dopredu, dynamické dozadu).
Ako dlho zostáva cache aktívny?
Claude default TTL je 5 minút nečinnosti, voliteľne 1 hodina. OpenAI typicky 5 až 10 minút, počas off-peak až do 1 hodiny. Gemini má konfigurovateľný TTL pri vytvorení cache objektu. Každý cache hit resetuje timer, takže aktívna session udržiava cache „warm" prakticky neobmedzene.
Môže iná organizácia získať prístup k mojej cache?
Nie. Caches sú izolované per organizácia u všetkých troch poskytovateľov. Od februára 2026 Claude API a Microsoft Foundry ponúkajú aj workspace-level izoláciu v rámci organizácie. Cache hit vyžaduje 100 % zhodu prefixu, takže náhodné kolízie neexistujú.
Porovnanie troch dominantných LLM observability platforiem pre rok 2026: Langfuse v3, LangSmith a Helicone. Praktické príklady pre tracing AI agentov, sledovanie nákladov a self-hosting.
Porovnanie štyroch najpoužívanejších vektorových databáz v roku 2026: Pinecone, Weaviate, Qdrant a Chroma. Benchmarky, ceny, kvantizácia a praktický Python príklad s Qdrantom pre RAG aplikácie.
Naučte sa systematicky testovať a hodnotiť LLM aplikácie, RAG pipeline a AI agentov pomocou DeepEval a RAGAS. Praktický sprievodca s fungujúcimi príkladmi kódu, CI/CD integráciou a produkčným monitoringom.