Choosing an External Memory System for Hermes Agent: Six Options Compared

Hermes Agent's built-in memory is deliberately small — about 2,200 characters of curated notes plus full-text session search. Here is when that is not enough, how Mem0, OpenViking, RetainDB, Hindsight, HyperRecall and Holographic compare on architecture, cost and local deployment, and why I ended up running RetainDB locally at zero cost.

Hermes Agent ships with a deliberately tiny memory: about 2,200 characters of curated notes, 1,375 characters of user profile, and a full-text search index over past sessions. That is enough for a personal assistant — and not nearly enough for everything else. Here is how the built-in layer works, how six external memory systems compare, and which one I actually run.

What Hermes Agent remembers by default

Hermes keeps memory in two layers, and the split is intentional.

Layer Carrier Size Purpose
Curated persistent memory (core) MEMORY.md ~2,200 characters Environment facts, project conventions, lessons from past tasks
USER.md ~1,375 characters User identity, preferences, communication habits
Full-text session search (auxiliary) SQLite + FTS5 Unlimited Retrieve details from historical conversations on demand

The strengths are real:

  • Zero dependencies and full local control
  • Token overhead is fixed and very low
  • Writes are reviewable and auditable
  • An external memory backend can be plugged in through the memory.provider setting, so you are not locked in

So are the limits:

  • Capacity is tiny — it cannot absorb large volumes of knowledge automatically
  • No knowledge graph and no semantic association
  • Unsuited to heavy reasoning or synthesis across many memories

Why add an external memory system

The built-in layer is light and controllable, but it has a hard ceiling. An external system buys you:

Dimension What an external system adds
Capacity Effectively unlimited; handles large knowledge bases
Retrieval Semantic search, keyword search, graph traversal and temporal reasoning running in parallel
Automation Automatic extraction, deduplication and synthesis — no manual curation
Structure Knowledge graphs, hypergraphs, virtual filesystems
Collaboration Cloud options support multi-device sync and team sharing
Explainability Some systems expose memory decay, contradiction flags and supersession relationships

Six external memory systems compared

System Core architecture Main strengths Main limits
Mem0 Vector store + knowledge graph + server-side LLM extraction Highly automated; roughly 91.6% on the LoCoMo benchmark; claims over 90% token cost savings Depends on cloud LLM calls, so privacy is a concern; knowledge is decomposed into triples, which can lose conversational context
OpenViking viking:// virtual filesystem with L0/L1/L2 tiered loading One place for memory, RAG and skills; structured browsing that feels like a filesystem; around 80–83% memory accuracy in official evaluations AGPLv3 licensing may not suit closed-source commercial use; self-hosted and architecturally heavy
RetainDB Cloud API + local write-behind queue Cross-session semantic search, user profiling and context synthesis; the local queue keeps writes reliable Core processing and storage stay in the cloud; retrieval depends on network round-trips, so there is latency
Hindsight Knowledge graph + four parallel retrieval strategies (semantic, keyword, graph traversal, temporal) The most complete retrieval model, with synthesis across memories; the broadest integration ecosystem (40+ official integrations) Complex architecture; self-hosting has a higher setup bar
HyperRecall Hypergraph + spreading activation retrieval Stores whole experiences as units, preserving the full shape of an event; supports memory decay, contradiction flags and supersession; $0 ingest cost with a portable format Relatively niche; ecosystem maturity is unknown
Holographic HRR (holographic reduced representations) algebraic memory + SQLite Fully local with no external dependencies; trust scoring for self-correction; very low retrieval latency Simpler feature set; no cross-device sync or other complex scenarios

Deployment and cost

System API key LLM calls Deployment and cost Best for
OpenViking Optional server-side; embedding/VLM models required Required (memory extraction and vectorization) Self-hosted at zero software cost if you bring your own models; open source (AGPL-3.0) Teams that want full data control and already run local models
Mem0 Required (Mem0 Cloud) Required (server-side extraction) Managed cloud on subscription (from about $19/month); free tier available Fast integration with no infrastructure to manage, if you accept cloud costs
RetainDB Required for Cloud; not for Local Local can use local models; Cloud is server-side Cloud from $20/month; Local self-hosted at zero cost Local for individual developers; Cloud for teams and hosted infrastructure
Hindsight Required (Cloud, or an API key for a local LLM) Required (knowledge graph construction) Cloud is paid with a free trial; the local version is zero-cost with your own LLM API Knowledge graph and cross-memory synthesis, if you are willing to configure a local LLM API
Holographic None None Fully local, zero cost (SQLite, no external dependencies) Maximum lightness, privacy and zero cost with modest feature needs
HyperRecall None None $0 ingest cost, portable format Memory completeness and brain-like traits such as forgetting and contradiction handling

Can it run entirely on your own machine?

System Local deployment Requirements Cost
Holographic ✅ Fully local None — built on SQLite Zero
OpenViking ✅ Possible Bring your own embedding/VLM models Software free, model cost separate
RetainDB Local ✅ Possible Configure a local model Software free, model cost separate
Hindsight (local) ✅ Possible Bring your own LLM API key Software free, API cost separate
Mem0 ❌ Cloud only Mem0 Cloud required Subscription (free tier available)
RetainDB Cloud ❌ Cloud only Cloud API required $20/month
Hindsight Cloud ❌ Cloud only Cloud service required Paid, with a free trial

What I chose, and why

I have used both Mem0 and Hindsight. Both offer free tiers, and Mem0’s free tier is roughly enough for light use. But they are cloud services, and I wanted the whole system running on my own hardware. I looked at OpenViking, but even the local deployment still calls an LLM.

So I went with a local RetainDB deployment. It ships with a tiny model that runs on CPU at zero cost, which is exactly the trade-off I wanted: local, cheap, and good enough.

Deploying it is simple. The main piece is the @retaindb/local npm package, built as a runtime with no external database dependency and aimed squarely at local use. The most direct way to start it is npx, which downloads and runs the latest version:

npx -y @retaindb/local

That starts an HTTP service on local port 3111 and stores data under ~/.retaindb/. You can hand the whole deployment to your Hermes agent and let it do the work.

The bottom line

When you pick an external memory system for Hermes Agent, weigh four things together: privacy requirements, budget, deployment capability and feature needs. I settled on locally deployed RetainDB. If you want something even lighter and still zero-cost, Holographic is worth a look. And whichever you choose, memory.provider lets you swap backends later without rewriting anything else.

Leave a Reply

Your email address will not be published. Required fields are marked *