WOLBΛRG

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