Summary
When numpy is not installed in the Hermes environment, the holographic memory plugin (hermes-memory-store) silently disables all HRR-based semantic search and falls back to basic FTS5 keyword matching. No warning is logged, no error is raised, and hermes doctor does not detect this condition. The user has no way to know their memory is running in degraded mode.
Impact
- All 60+ facts stored in
fact_store show retrieval_count = 0 — facts are stored but never retrieved
probe(), related(), reason() all silently fall back to search(), which uses FTS5 AND semantics (too strict for conversational queries)
contradict() returns an empty list — contradiction detection is completely disabled
- The user experiences "cold start" amnesia at the beginning of every session, with no indication of why
Root Cause
plugins/memory/holographic/retrieval.py lines 38-42:
# Auto-redistribute weights if numpy unavailable
if hrr_weight > 0 and not hrr._HAS_NUMPY:
fts_weight = 0.6
jaccard_weight = 0.4
hrr_weight = 0.0
And the guard clauses in probe() (line 128), related() (line 206), reason() (line 277), and contradict() (line 353):
if not hrr._HAS_NUMPY:
return self.search(entity, category=category, limit=limit) # silent fallback
At no point is there a logging.warning(...) call. The system degrades silently.
The _HAS_NUMPY flag is set in holographic.py lines 27-31:
try:
import numpy as np
_HAS_NUMPY = True
except ImportError:
_HAS_NUMPY = False
Steps to Reproduce
- Install Hermes Agent on a fresh system (or migrate without numpy)
- Ensure
numpy is NOT installed in the active venv
- Configure
memory.provider: holographic
- Add facts via
fact_store(action="add", ...)
- Try to retrieve facts via
fact_store(action="search", query="...") or probe
- Observe:
retrieval_count stays at 0 for all facts
- Check
agent.log — no warning about degraded memory mode
- Run
hermes doctor — no warning about missing numpy
Expected Behavior
At minimum, one of the following should happen when numpy is missing:
- Log a WARNING on plugin initialization: "numpy not found — holographic memory degraded to FTS5 keyword search only"
hermes doctor should flag it: "⚠ holographic memory: numpy not installed. HRR semantic search disabled."
- Consider making numpy a declared dependency of the plugin, so it's installed automatically
Environment
- Hermes version: v0.8.x (current as of April 2026)
- OS: macOS 15 (Mac Mini M2), also reproduced on Ubuntu 24.04 VM
- Python: 3.12+
- Migration scenario: Migrating from Ubuntu VM to macOS — numpy was installed on the old VM but the migration didn't transfer pip packages
Additional Context
This was discovered during a real migration from an Ubuntu VM to a Mac Mini. The user went days thinking their holographic memory was working, when in fact it was operating as a plain keyword search. The retrieval_count = 0 for all facts was the only clue — and even that required manual SQL queries to discover.
A separate improvement (already applied locally as a patch) adds an OR fallback in _fts_candidates() when AND returns zero results — this helps conversational queries like "remember what we talked about last night" but doesn't address the silent numpy degradation.
Summary
When
numpyis not installed in the Hermes environment, the holographic memory plugin (hermes-memory-store) silently disables all HRR-based semantic search and falls back to basic FTS5 keyword matching. No warning is logged, no error is raised, andhermes doctordoes not detect this condition. The user has no way to know their memory is running in degraded mode.Impact
fact_storeshowretrieval_count = 0— facts are stored but never retrievedprobe(),related(),reason()all silently fall back tosearch(), which uses FTS5 AND semantics (too strict for conversational queries)contradict()returns an empty list — contradiction detection is completely disabledRoot Cause
plugins/memory/holographic/retrieval.pylines 38-42:And the guard clauses in
probe()(line 128),related()(line 206),reason()(line 277), andcontradict()(line 353):At no point is there a
logging.warning(...)call. The system degrades silently.The
_HAS_NUMPYflag is set inholographic.pylines 27-31:Steps to Reproduce
numpyis NOT installed in the active venvmemory.provider: holographicfact_store(action="add", ...)fact_store(action="search", query="...")orproberetrieval_countstays at 0 for all factsagent.log— no warning about degraded memory modehermes doctor— no warning about missing numpyExpected Behavior
At minimum, one of the following should happen when numpy is missing:
hermes doctorshould flag it: "⚠ holographic memory: numpy not installed. HRR semantic search disabled."Environment
Additional Context
This was discovered during a real migration from an Ubuntu VM to a Mac Mini. The user went days thinking their holographic memory was working, when in fact it was operating as a plain keyword search. The
retrieval_count = 0for all facts was the only clue — and even that required manual SQL queries to discover.A separate improvement (already applied locally as a patch) adds an OR fallback in
_fts_candidates()when AND returns zero results — this helps conversational queries like "remember what we talked about last night" but doesn't address the silent numpy degradation.