When hrr_dim=1 the prefixed float32 blob (4+4=8 bytes) collides in size with a raw float64 blob (1×8=8 bytes), making the format discriminator in bytes_to_phases ambiguous — a legacy blob starting with HRR1 would be misread as a prefixed float32 vector. - phases_to_bytes now accepts an optional dim and falls back to writing raw float64 when the two blob sizes are equal. - bytes_to_phases prefers the legacy float64 interpretation when sizes collide and dim is provided, since phases_to_bytes never writes a prefixed float32 blob at dim=1. - Three regression tests cover dim=1 write, round-trip, and the legacy-prefix collision case. Addresses hermes-sweeper review on PR #30499. |
||
|---|---|---|
| .. | ||
| README.md | ||
| __init__.py | ||
| holographic.py | ||
| plugin.yaml | ||
| retrieval.py | ||
| store.py | ||
README.md
Holographic Memory Provider
Local SQLite fact store with FTS5 search, trust scoring, entity resolution, and HRR-based compositional retrieval.
Requirements
None — uses SQLite (always available). NumPy optional for HRR algebra.
Setup
hermes memory setup # select "holographic"
Or manually:
hermes config set memory.provider holographic
Config
Config in config.yaml under plugins.hermes-memory-store:
| Key | Default | Description |
|---|---|---|
db_path |
$HERMES_HOME/memory_store.db |
SQLite database path |
auto_extract |
false |
Auto-extract facts at session end |
default_trust |
0.5 |
Default trust score for new facts |
hrr_dim |
1024 |
HRR vector dimensions |
Tools
| Tool | Description |
|---|---|
fact_store |
9 actions: add, search, probe, related, reason, contradict, update, remove, list |
fact_feedback |
Rate facts as helpful/unhelpful (trains trust scores) |