43 lines
1.4 KiB
Markdown
43 lines
1.4 KiB
Markdown
# Holographic + Vector Hybrid Memory Architecture
|
|
|
|
Research issue #879. Combining HRR (holographic) and vector (Qdrant) memory.
|
|
|
|
## Architecture
|
|
|
|
Three memory backends, each with unique strengths:
|
|
|
|
| Backend | Strength | Weakness | Use Case |
|
|
|---------|----------|----------|----------|
|
|
| FTS5 | Exact keyword match | No semantic understanding | Precise recall |
|
|
| Vector (Qdrant) | Semantic similarity | No compositional queries | Topic search |
|
|
| HRR (Holographic) | Compositional queries | Limited scale | Complex reasoning |
|
|
|
|
## Why Hybrid
|
|
|
|
- FTS5 alone: misses ~30-40% of semantically relevant content
|
|
- Vector alone: can't do compositional queries ("what did I discuss about X after doing Y?")
|
|
- HRR alone: unique capability but no semantic fallback
|
|
- Hybrid: best of all three, RRF fusion for ranking
|
|
|
|
## Implementation: Reciprocal Rank Fusion
|
|
|
|
Results from each backend are merged using RRF:
|
|
- score = sum(weight / (k + rank)) for each backend
|
|
- k=60 (standard RRF constant)
|
|
- Weights: FTS5=0.6, Vector=0.4 (configurable)
|
|
|
|
## Status
|
|
|
|
- FTS5: EXISTS (hermes_state.py)
|
|
- Vector (Qdrant): implemented (tools/hybrid_search.py)
|
|
- HRR: EXISTS (plugins/memory/holographic.py)
|
|
- RRF fusion: implemented (tools/hybrid_search.py)
|
|
- Ingestion pipeline: partial
|
|
|
|
## Next Steps
|
|
|
|
1. Wire HRR into hybrid_search.py
|
|
2. Session-level vector ingestion
|
|
3. Benchmark: measure R@5 improvement
|
|
4. Cross-session memory persistence
|