13. července 2026
Prefix cache je zbraň proti latenci: Držte prompt v klidu
Lidé si představují, že latence chatbota je vlastnost modelu - jak rychle dokáže generovat. Ve skutečnosti je velká část z toho, co cítíte jako „rychlost", práce, která už byla hotová dřív, než váš uživatel cokoli napsal. Velké modely se dnes dodávají s mechanismem, kterému se říká prefix cache (nebo KV cache): pokud se začátek promptu shoduje s něčím, co model nedávno zpracoval, přeskočí se přepočítání těch tokenů a odpověď začne téměř okamžitě. Je to jako mít rozehřátý motor.
Tahle mezipaměť má ale jednu krutou vlastnost: funguje jen na statickém prefixu. Jakákoliv jediná věc, která se v něm turn od turnu mění, invaliduje cache od toho místa dál. A tým, kterému jde o nízkou latenci, z toho dělá celou filozofii návrhu.
Co cache invaliduje
Vezměte naivního agenta. Jeho system prompt začíná takhle: „Jsi poradce. Dnes je {datum}. Uživatel je na stránce {page}. Máš k dispozici tyto nástroje: [dlouhý seznam dvaceti nástrojů]." Vypadá to rozumně. Jenže ten prompt se mění každý turn - datum, stránka, možná i nástroje. Takže prefix, který by se dal cachovat, není žádný. Model pokaždé počítá všechno znovu. Platíte za znovupřechod tisíců tokenů, které jsou byte-for-byte stejné jako minule.
Teď ten správný instinkt: co je statické, dej dopředu; co se mění, dej až za tím. System prompt - role, tón, pravidla, bezpečnostní hranice, popisy nástrojů - zůstane na místě, turn od turnu identický. Až za ním, ve chvíli, kdy už by cache skončila, přijde ten úzký per-turn balíček: dnešní datum, aktuální stránka, katalog momentálně odemčených dovedností. Cache přední části drží. Per-turn injekce stojí málo, protože je malá.
Málo nástrojů od startu
Tady se objevuje druhý, méně zřejmý tah. Velký seznam nástrojů v system promptu není jen kognitivní šum pro model - je to cache payload. Čím delší popisy nástrojů v prefixu nesete, tím těžší je prefix udržet stabilní, protože každý nový nástroj, který přidáte, mění text a tím i to, co by se cachovalo. A dlouhý prompt sám o sobě stojí víc času už na prvním průchodu.
Řešení, které osvobozuje: nezveřejňujte všechny nástroje najednou. Startujte s úzkou sadou - řekněme třemi nástroji, které pokryjí drtivou většinu běžných dotazů - a zbytek schopností skryjte za meta-nástroj, který dovednosti odemyká, až je model potřebuje. Běžná odpověď tak vidí jen ten malý, stabilní prompt. Složitá odpověď si dovednosti přivolá explicitně, čímž zaplatí jeden extra krok - ale to je správně, protože ta práce je opravdu složitější.
Dostanete tři výhody naráz. Prompt je krátký, takže inference je rychlejší i bez cache. Prompt je stabilní, takže cache trefí. A model se nemate v dlouhém seznamu možností, což zvedá kvalitu - což je, upřímně, stejně důležité jako rychlost.
Situační guida bez rozbíjení prefixu
Trik, na který týmy často zapomínají: chtějí, aby se agent choval různě podle situace - tón pro někoho, kdo teprv objevuje, je jiný než pro někoho, kdo už vybírá. Instinkt je změnit system prompt podle situace. To sice „funguje", ale rozbíjí to cache, protože ten dynamický kus sedí v prefixu.
Lepší cesta nechá system prompt na pokoji a dovede situační návod do odpovědi jinudy - přes nástroj, který situaci turnu ohodnotí a vrátí situační playbook jako tool result, který se vloží až za cachovatelný prefix. Statická část zůstává statická. Dynamická guidance přijde na místě, kde už cache stejně skončila. Stejný efekt, cache zůstává celá.
Co si vzít s sebou
Prefix cache není detail, na který dojde optimalizační tým někdy později. Je to strukturální rozhodnutí o tom, kam co v promptu dáte. Pravidlo je jednoduché a neodpustitelné: vše, co je v prefixu, musí být neměnné turn od turnu. Roli, tón, hranice, popisy always-on nástrojů - to je prefix. Datum, kontext stránky, katalog dovedností, situační návod - to přijde až za ním. Dělejte tohle od prvního dne a vaše „první token" bude cítit rychleji, než by rozhodovací čas modelu sám o sobě opravňoval. Nedělejte to a platíte za znovupřepočet věcí, které už jednou spočítal.
Váš „rychlý model" padá na dynamickém system promptu? Většina zisku na time-to-first-token, kterou vidíme, přijde z toho, že prefix cache začne skutečně trefovat. Pojďme se podívat, co se ve vašem promptu mění, když nemá.
