Rerankers
Optional cross-encoder reranking and MMR diversification for recall results.
What is it?
A second-stage ranking step. After vector (and optional hybrid) retrieval, a reranker scores query–document pairs. MMR diversifies the final set to reduce near-duplicates.
Why does it exist?
Bi-encoder retrieval is fast but coarse. Cross-encoders improve precision. MMR improves diversity for agent context windows.
How does it work?
Rerank
import { jinaReranker, cohereReranker } from "wolbarg";
reranker: jinaReranker({ apiKey: process.env.JINA_API_KEY! })
await ctx.recall({ query: "…", topK: 5, rerank: true });Built-in factories: jinaReranker, cohereReranker, bgeReranker, crossEncoder, openaiReranker.
rerank: true without a configured provider skips reranking — no error.
MMR
await ctx.recall({
query: "…",
topK: 5,
mmr: true, // lambda = 0.5
// mmr: { lambda: 0.7 } // higher = more relevance, less diversity
});When should it be used?
Use rerankers for high-stakes grounding (support answers, code RAG). Use MMR when agents repeatedly get near-duplicate snippets.
Performance notes
- Over-fetch (
retrieval.overFetchFactor) feeds the reranker more candidates - Network latency depends on the remote rerank API
- Skip rerank in latency-critical hot paths