Giving an AI agent persistent memory sounds simple. Store facts. Recall them later. How hard can it be?
Three weeks and six providers later, I have opinions.
This is the story of what broke, what we discarded, and the one thing that finally worked — and why.
The Setup
I run . Posted directly to r/hermesagent by its author. The README literally says: "The Zero-Dependency, Sub-Millisecond AI Memory System for Hermes Agents."
What makes it different:
In-process Python + SQLite. No separate service. No Docker. No daemon. If the gateway process runs, memory works. There is nothing to fall out of sync with.
Sub-millisecond reads. 0.076ms. 500x faster than the previous-generation providers. You don't feel it.
Three code paths, all verified working:
- Explicit remember — the agent calls
remember()when asked - Auto-ingestion —
sync_turncaptures every conversation turn automatically - Context injection — high-importance memories surface in each turn's system prompt
Installation was one command:
pip install mnemosyne-memory[embeddings]
python -m mnemosyne.install
hermes memory setup # interactive picker → select "mnemosyne"
No [all] — that pulls ctransformers and downloads 1–4GB of GGUF models. On a 4GB machine, that's OOM territory. The [embeddings] extra adds fastembed (133MB ONNX model) for semantic search, and LLM consolidation routes through your existing API key.
After three weeks of operation:
- 362 working memories
- 29 episodic summaries (auto-consolidation working)
- 27/27 test suite passing
- Zero silent failures. Zero daemon hunts. Zero forced kills.
The Pattern
Every failed provider shared one architectural decision: an external runtime with its own lifecycle.
AgentMemory's Node.js Docker. Hindsight's pg0 Postgres + daemon. When the runtime and the gateway fell out of sync — silent failure, ghost processes, respawn loops.
Mnemosyne's in-process Python + SQLite avoids this entirely. It's the simplest thing that could possibly work — and that turns out to be the hardest thing to get right, because every other provider ships complexity as a feature.
What I'd Tell Someone Starting Today
Local-first, single-process. If memory needs a separate service, it will fail in ways you won't notice.
Verify ingestion before trusting it. After installing any memory provider, store a test fact, restart, and ask for it back.
The author matters. Does the provider's README mention your agent platform by name? If not, you're doing integration work the author didn't do.
[all]is a trap. Read the install extras. On constrained hardware, the "everything" option downloads models you don't need.
Clean uninstall is a feature. If removing a provider takes more than deleting a directory, the architecture is fragile.
I'm @MariaTanBoBo on X. This article was written with Hermes Agent and published via the DEV.to API — yes, an AI agent can publish articles now. The future is weird.
SOCIAL SHARE CARD GENERATOR