CacheVerifier vs Krites
Krites is a caching policy from Apple research: an LLM judge, off the request path, decides whether a curated answer that just missed the threshold fits a new prompt, and promotes it for next time. CacheVerifier decides on the request path, on the hits you route to it. One recovers misses later; the other checks hits now.
CacheVerifier is a verification layer for semantic caches, not a cache itself. This page is a straight comparison, kept as fair as we can make it — see Why Similarity Fails for the underlying argument.
What Krites is
Krites (arXiv 2602.13165, February 2026, Apple Machine Learning Research) targets tiered caches: a static tier of offline-vetted answers and a dynamic tier filled online, sharing one similarity threshold. On the request path it behaves exactly like a static-threshold policy, so latency doesn’t change. When a prompt’s nearest static neighbour falls just below the threshold, it asks an LLM judge, asynchronously, whether the curated answer fits the new prompt; if it does, the answer is promoted into the dynamic tier under the new prompt, so repeats and paraphrases reuse it. In trace-driven simulations on conversational and search-style traffic it serves up to 3.9 times more requests with curated answers than tuned baselines. It’s a research paper; we found no released code.
What CacheVerifier is
CacheVerifier is a hosted verification call plus the loop around it. On the gray-zone hits your cache routes to /v1/verify, a cross-encoder fine-tuned on your own feedback approves or rejects serving the cached answer, in tens of milliseconds. Randomized audits measure how often approved answers are wrong, drift triggers recalibration, and entries your feedback marks stale are listed for refresh.
What they share
Both put a model that reads the answer, not just the embeddings, on the band of similarity scores around the threshold, which is where a single threshold both misses safe reuse and serves wrong answers. Our own paper studies the synchronous version of that idea; Krites is a careful asynchronous one.
Where they differ
When it decides. Krites decides after the response, so it adds no latency, but the first request in the gray zone is still a miss and only later ones benefit. CacheVerifier decides before serving, at the cost of a verify call on that request.
Which direction. Krites only adds hits: it recovers curated answers that fell below the threshold. A wrong answer that scores above the threshold is served as before. CacheVerifier checks whatever band you route to it, including hits above your cutoff, so it can also reject.
What it needs. Krites assumes a curated static tier. CacheVerifier works with any cache, including a purely dynamic one.
The judge. Krites uses a general LLM judge, a model call per gray-zone request, and the paper doesn’t report the judge’s own error rate. CacheVerifier’s verifier is a small model trained on your labels, and audits measure its error rate in production.
Side by side
| Krites | CacheVerifier | |
|---|---|---|
| Type | Research caching policy (Apple, arXiv 2602.13165) | Hosted verification layer for an existing cache |
| When it decides | Asynchronously, after the response | On the request path, before serving |
| Effect | Promotes curated answers that just missed the threshold | Approves or rejects the gray-zone hits you route to it |
| Can reject a hit above the threshold? | No | Yes |
| Needs | A curated static tier | Any cache |
| Judge | General-purpose LLM | Cross-encoder fine-tuned on your feedback |
| Measured error rate in production | Not part of the policy | Randomized audits with an exact upper bound |
| Available as | Paper; no released code found | Hosted API and Python SDK |
Using the idea together
The two aren’t exclusive. The promotion step Krites describes needs a judge, and a verify call made off the request path can be one: check a near-miss after responding, and write the answer under the new prompt if it’s approved. We haven’t benchmarked that setup, so treat it as a design option, not a result.
Details of third-party products reflect their public documentation as of October 2026 (source: the Krites paper, arXiv 2602.13165) and may have changed since — check theirs for the current picture. Krites is a research project of its authors at Apple. CacheVerifier is not affiliated with, endorsed by, or sponsored by them; names are used only to identify the products compared.
Where to go next
- • Why Similarity Fails — the gray zone in detail: why a similarity score and a correctness judgement are different questions.
- • Semantic cache similarity thresholds — how the cutoff every semantic cache depends on is set, and the measured ceiling on tuning it alone.
- • Research — measured results on when fine-tuning a verifier helps, how much data it needs, and where it broke.
- • API Reference — how
/v1/verify, fine-tuning, and drift monitoring work mechanically. - • Start free