I’m building mem.net, a file-first agent memory framework for .NET. In production, it scales out to Azure Blob and Azure AI Search. But I wanted the local execution experience to accurately mirror those production hybrid search capabilities—without forcing developers to spin up a heavy vector DB.
To bridge that gap, I built Retrievo: a pure in-memory hybrid search engine written entirely in C#. I’ve now integrated it as the default local search provider for mem.net.
Under the hood of Retrievo:
- BM25 + Vector search + RRF fusion
- Entirely in-process (zero external infrastructure needed)
- Validated retrieval quality against standard BEIR benchmarks
The result is you get production-grade hybrid search characteristics entirely in-process.
Repos:
- https://github.com/TianqiZhang/Retrievo
- https://github.com/TianqiZhang/mem.net
Curious to hear how others are handling local hybrid search for agent architectures. Happy to answer questions on the C# implementation or the BEIR benchmarking!