add keyword/BM25/hybrid retrievers with wrapper support#1
Merged
binghan1227 merged 1 commit intoFeb 24, 2026
Conversation
a96cc2d
into
binghan1227:feature/keyword-retriever
0 of 3 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds lexical retrieval options for RAG item recall, including:
keywordretrieverbm25retrieverhybridretriever (BM25 + vector via RRF fusion)It also adds OpenAI wrapper support for default retriever configuration and per-call retrieval override.
Changes
Retrieval
keywordretriever option for RAG item recallbm25retriever implementationhybridretriever using Reciprocal Rank Fusion (RRF) over vector + BM25 resultsWrapper support
retrieverin OpenAI wrapper configmethod/retrieveroverride for RAG retrievalTests
Tooling / Docs
Makefile/ test commands as needed for src layoutuv.lock)Why
This improves retrieval flexibility for different memory types and query styles:
keyword: simple lexical matchingbm25: stronger lexical rankinghybrid: combines semantic retrieval and lexical retrieval for better recall/robustnessValidation
mainincludes retrieval, wrapper, settings, tests, and docs changesNotes
This branch is currently ahead of
mainand includes the full retrieval feature set in a single PR for easier review.