semantic-memory (RecursiveIntell)
Local-first hybrid semantic search backed by authoritative SQLite state plus a vector sidecar: facts, chunked documents, conversation messages, and episodes searched via BM25 (FTS5) and vector retrieval fused with Reciprocal Rank Fusion, with explainable search.
View source on GitHubKey takeaways
- 01
Hybrid BM25 + vector with rank fusion beats either alone
- 02
Keep an authoritative relational store; treat vectors as a sidecar index
- 03
Explainable retrieval helps debug why a memory surfaced
Flows built on this research
Memory & Context
Memory Recall: Ranking and Relevance
Make recall surface the right memories: hybrid lexical+semantic search, rank fusion, and explainable retrieval.
4 steps · 90-120 minutes
Memory & Context
Vector vs Markdown Memory: Make the Decision
Choose your memory backend on evidence: when plain files win, when vectors earn their complexity, and how to test it on your own data.
3 steps · 45-60 minutes
From the archive
Verbatim excerpts mined from our local archive of this repository — the prompts, schemas, and patterns worth stealing.
SQLite is the truth; HNSW is just an accelerator
- SQLite is the authoritative store for all durable rows and f32 embeddings. - FTS5 provides BM25 full-text search. - Vector search uses cosine similarity. - Reciprocal Rank Fusion combines BM25 and vector results. - HNSW is an optional acceleration sidecar, not a source of truth. - Sidecar mutations are journaled in SQLite and replayed on open, flush, rebuild, or reconcile. - Quantized q8 copies of embeddings are stored for facts, chunks, messages, and episodes. - WAL mode plus a single writer and pooled readers allows concurrent read-heavy use.
The most disciplined storage stance in the vault: the vector index can always be rebuilt from SQLite, so corruption of the fast path never loses a memory.
README.md