Two-stage cross-encoder reranker + MMR diversity for AgentContextOS.
Step 2.7 deliverable. Anchored in ADR-0006.
| Component | Where | Notes |
|---|---|---|
RerankPipeline |
rag_reranker.pipeline |
Orchestrator: fast_rerank → optional early-exit → hydrate → precise_rerank → optional MMR. Emits the canonical rerank OTel span. |
mmr_rerank |
rag_reranker.mmr |
Pure Carbonell–Goldstein MMR primitive. |
SentenceTransformersCrossEncoder |
rag_reranker.backends.sentence_transformers |
Local cross-encoder; default factory bge_reranker_v2_m3(), fast factory minilm_l6(). |
CohereReranker |
rag_reranker.backends.cohere |
Cohere Rerank v3 API; precise stage only. |
JinaReranker |
rag_reranker.backends.jina |
Jina Reranker hosted API; precise stage only. |
# Core (works against the noop reranker out of the box)
uv add rag-reranker
# Local cross-encoder (BAAI/bge-reranker-v2-m3 or MiniLM)
uv add 'rag-reranker[sentence-transformers]'
# Hosted APIs
uv add 'rag-reranker[cohere]'
uv add 'rag-reranker[jina]'docs/reference/reranker.md— public API + extension pointsdocs/architecture/reranking.md— two-stage rationale + MMR algorithm + composition withHybridRetrieverdocs/adr/ADR-0006-two-stage-rerank.md— the design decision