- • Static text files injected every turn
- • Limits: 2,200 chars (MEMORY) / 1,375 (USER)
- • Tool:
memory (add/replace/remove)
- • Path:
~/.hermes/memories/
- • Survives session/service restarts
- • Always-on context for identity, prefs, env facts
- • Docs: Memory User Guide
- • SQLite DB with HRR vectors + trust scoring
- • Tool:
fact_store (add/search/probe/reason)
- • Tool:
fact_feedback (helpful/unhelpful)
- • Entity resolution, compositional queries
- • Prefetch: top-k relevant facts per query
- • Auto-extraction on session end (optional)
- • Source: plugins/memory/holographic
- • MemoryProvider ABC interface
- • Only ONE active at a time
- • Available: Honcho, Mem0, Hindsight, RetainDB, Byterover, OpenViking, Supermemory
- • Configure:
hermes memory setup
- • Hooks: initialize, prefetch, sync_turn, on_session_end, on_memory_write
- • Docs: External Providers
- • Single integration point in
run_agent.py
- •
prefetch_all(query) → merges all provider results
- •
sync_all(user, assistant) → post-turn persistence
- • Handles context fencing + streaming scrubbing
- • Source:
agent/memory_manager.py
- • Source: agent/memory_manager.py
- •
memory.memory_enabled: true
- •
memory.user_profile_enabled: true
- •
memory.memory_char_limit: 2200 • memory.user_char_limit: 1375
- •
memory.provider: holographic (or honcho, mem0, etc.)
- • Plugin config:
plugins.hermes-memory-store.*
- • Docs: Configuration Reference
- 1. User message →
MemoryManager.prefetch_all()
- 2. Each provider returns relevant context
- 3. Merged context → System prompt + History + Tools
- 4. LLM responds (may call
fact_store)
- 5.
MemoryManager.sync_all() persists turn
- 6. External:
sync_turn(), on_session_end()
- 7. Mirror: built-in writes → holographic facts