CacheVerifier vs vCache
vCache is a research semantic cache that learns a per-prompt threshold with a formal error bound. CacheVerifier keeps the cache you already run and adds a verification step. Same goal — reliable cache hits — reached two different ways.
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 vCache is
vCache is a research project from UC Berkeley and collaborators (arXiv 2502.03771), described as the first verified semantic cache with user-defined error-rate guarantees. Instead of one static similarity threshold for every request, it uses an online-learning algorithm to estimate an optimal decision boundary per cached prompt: you specify a target error rate and it adapts the thresholds to meet it, with no fine-tuning and no training data. In the paper’s benchmarks it consistently meets the specified error bound while beating both static-threshold and fine-tuned-embedding baselines.
What CacheVerifier is
CacheVerifier is a hosted verification call (POST /v1/verify) plus a fine-tuning loop that sits behind whatever cache you already have. It doesn’t pick thresholds for your cache; it reads the retrieved (query, candidate_answer) pair with a cross-encoder and returns a correctness judgement for the gray-zone candidates your own threshold couldn’t decide.
What they share
Both reject the “one global similarity threshold” premise, and both aim at a specified error rate rather than a hand-picked number. CacheVerifier’s fine-tune jobs can certify a threshold with Conformal Risk Control — a distribution-free, finite-sample bound on false-reuse risk; vCache gets its guarantee from online per-prompt threshold learning. The research overlap is real, and vCache is a well-regarded approach to it.
Where they differ
Deployment. vCache is the cache — adopting it means replacing your cache with vCache. CacheVerifier augments the cache you run (GPTCache, Redis LangCache, a self-built Redis lookup) and is removed just as easily.
Signal. vCache still decides from embedding similarity, just with a smarter per-prompt boundary. CacheVerifier’s cross-encoder reads the actual answer text — a heavier, different signal aimed at the cases where similarity itself is ambiguous rather than just mis-thresholded.
Adaptation. vCache adapts online with no training data. CacheVerifier fine-tunes offline on your labeled feedback — it needs data (a hard floor of 20 rows, and our own testing found it can hurt below ~1,000 on the hardest dataset — see Research), but in return it learns your domain’s specific false-hit patterns.
Maturity. vCache is a research artifact — no hosted service, SLA, or support contract. CacheVerifier is a hosted product (though also without a formal uptime SLA yet).
Side by side
| vCache | CacheVerifier | |
|---|---|---|
| Type | Research semantic cache (open-source implementation) | Hosted verification layer for an existing cache |
| Replaces your cache? | Yes | No |
| Decision signal | Online-learned per-prompt similarity threshold | Cross-encoder over the (query, answer) pair |
| Needs training data? | No — adapts online | Yes — fine-tunes on your labeled feedback (optional; a stock verifier ships by default) |
| Error-rate guarantee | User-defined bound via online threshold learning | Optional Conformal Risk Control certification on a fine-tune job |
| Best fit | Greenfield, and you want guarantees baked into the cache | You can’t swap your cache, or your false hits are semantic not threshold failures |
Where to go next
- • Why Similarity Fails — the gray zone in detail: why a similarity score and a correctness judgement are different questions.
- • 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