Fusion weights
The primary knob: how much to trust vector vs. keyword.- Vector weight (0.0-1.0) — dense semantic similarity.
- Keyword weight (0.0-1.0) — BM25 lexical overlap.
0.7/0.3 behaves the same as 0.35/0.15. Adjust to shift emphasis.
Boosts
Recency boost, tag boost, source boost. All optional, all multiplicative on the fused score.Recency boost
Newer content ranks higher. Two forms:- Decay — half-life in days. Older chunks score lower on a smooth curve.
- Hard cutoff — chunks older than N days are excluded entirely (better as a filter than a boost, honestly).
Tag boost
Boost or demote by tag. Example: boostverified chunks 1.5×, demote internal-draft chunks 0.5×.
Source boost
Boost specific documents or collections. Useful when you have a canonical source you want to prefer over crawled copies.Reranker
Optional cross-encoder pass over the top ~20 fused results. It re-scores each (query, chunk) pair with a small transformer that reads both together — much more accurate than embedding cosine similarity alone.- Adds 150-300ms latency.
- Adds a small per-query cost.
- Meaningfully improves recall@1 on hard queries.
Diversity
Sometimes the top 6 chunks are all near-duplicates. Turn on Diversity to enforce some spread:- MMR (Maximum Marginal Relevance) — trades a little relevance for less redundancy. Set lambda (0=max diversity, 1=max relevance). Default 0.7.
- Group cap — at most N chunks per source. Prevents one huge document from crowding out the top results.
Score cutoff
Below-cutoff chunks are dropped even if they’re in the top K. Prevents the Agent from being handed a low-confidence match just to fill the K quota. Score is in RRF space, roughly 0-1. Default cutoff 0.15. Turn up for higher precision; turn down (or to 0) for higher recall.Query-time overrides
Any of the above can be overridden per-call. An Agent may set a higher cutoff when the domain is high-risk, or turn on the reranker only for questions containing “safety” or “compliance”.Watching it work
The Trace view shows the retrieval step with:- The final query used (after any rewriting).
- Every candidate with its vector score, keyword score, fused score, and any boosts applied.
- Whether the reranker changed the order.