Hermes Agent Memory Providers: Setup and Configuration Guide
Connect Hermes Agent to eight external memory providers for persistent, cross-session knowledge.

Hermes Agent External Memory Provider Reference
This document describes how to configure and use external memory provider plugins with Hermes Agent. These plugins enable persistent, cross-session knowledge beyond the built-in memory system.
Overview
External memory providers give Hermes Agent persistent memory capabilities including semantic search, knowledge graphs, user modeling, and multi-agent memory isolation. Only one external provider can be active at a time, but the built-in MEMORY.md and USER.md files always remain active alongside the external provider.
When to Use External Memory
Use an external memory provider when you need:
- Persistent memory that survives across sessions beyond what MEMORY.md/USER.md can store
- Semantic search, knowledge graphs, or user modeling capabilities
- Automatic memory extraction, context injection, or multi-agent memory isolation
- Self-hosted, cloud, or local-only memory storage options
- Profile-scoped memory isolation per Hermes profile
Core Capabilities
All external memory providers share these capabilities:
- Automatic injection of provider context into the system prompt
- Prefetching of relevant memories before each turn (background, non-blocking)
- Syncing of conversation turns to the provider after each response
- Memory extraction on session end (if the provider supports it)
- Mirroring of built-in memory writes to the external provider
- Provider-specific tools for the agent to search, store, and manage memories
- Unique storage modes (cloud, self-hosted, local) per provider
- Profile isolation: local storage uses
$HERMES_HOME/paths; config files are stored per profile; cloud providers derive profile-scoped project names; env var providers use per-profile.envfiles
Quick Start
Enable External Memory
- Run
hermes memory setupfor an interactive picker and configuration wizard. - Or set the provider manually in
~/.hermes/config.yaml:memory: provider: <name> - Or use
hermes plugins-> Provider Plugins -> Memory Provider. - Verify with
hermes memory status. - Disable with
hermes memory off.
Provider-Specific Setup
Honcho
Honcho provides cloud and self-hosted memory with dialectic reasoning, observation modes, and gateway support.
Setup via Wizard
- Run
hermes memory setupand select 'honcho'. - For headless/remote machines: at the auth-method prompt choose 'device'. The CLI prints a code and verification link; open the link in a browser on another machine and approve.
- The wizard defaults to device auth when no local browser is detected.
- Legacy
hermes honcho setupstill works but redirects tohermes memory setup(only registered after Honcho is active).
Manual Configuration
- Create
honcho.jsonat$HERMES_HOME/honcho.json(profile-local) or~/.honcho/config.json(global). Resolution order:$HERMES_HOME/honcho.json>~/.hermes/honcho.json>~/.honcho/config.json. - Minimal cloud config:
{ "apiKey": "...", "hosts": { "hermes": { "enabled": true, "aiPeer": "hermes", "peerName": "...", "workspace": "hermes" } } } - Minimal self-hosted config:
{ "baseUrl": "http://localhost:8000", "hosts": { "hermes": { "enabled": true, "aiPeer": "hermes", "peerName": "...", "workspace": "hermes" } } } - Set
memory.provider: honchoin~/.hermes/config.yaml.
Multi-Profile Setup (New Profile)
- Run
hermes profile create <name> --clone. --clonecreates ahermes.<name>host block inhoncho.jsonwithaiPeer: "<name>", shared workspace, inheritedpeerName,recallMode,writeFrequency,observation, etc.- The AI peer is eagerly created in Honcho before the first message.
Multi-Profile Setup (Existing Profiles)
- Run
hermes honcho sync. - This scans every Hermes profile, creates host blocks for any profile without one, inherits settings from the default
hermesblock. - Creates new AI peers eagerly. Idempotent - skips profiles with existing host block.
Migration from Legacy
Config and server-side data are intact. Re-enable through the setup wizard or manually set memory.provider: honcho.
Honcho Parameters
| Parameter | Meaning | Required | Default |
|---|---|---|---|
apiKey | API key from app.honcho.dev | Yes for cloud; not needed for self-hosted | - |
baseUrl | Base URL for self-hosted Honcho instance | Only for self-hosted | - |
peerName | User peer identity | Yes | - |
aiPeer | AI peer identity (one per profile) | Yes (host key) | - |
workspace | Shared workspace ID | Yes (host key) | - |
contextTokens | Token budget for auto-injected context per turn. Truncates at word boundaries. | No | null (uncapped) |
contextCadence | Minimum turns between context() API calls (base layer refresh) | No | 1 |
dialecticCadence | Minimum turns between peer.chat() LLM calls. Recommended 1-5. Only applies to hybrid/context modes. | No | 2 |
dialecticDepth | Number of .chat() passes per dialectic invocation. Clamped 1-3. | No | 1 |
dialecticDepthLevels | Optional array of reasoning levels per pass, e.g. ["minimal","low","medium"]. Overrides proportional defaults. | No | null |
dialecticReasoningLevel | Base reasoning level: minimal, low, medium, high, max | No | 'low' |
dialecticDynamic | When true, model can override reasoning level per-call via tool param | No | true |
dialecticMaxChars | Max chars of dialectic result injected into system prompt | No | 600 |
recallMode | hybrid (auto-inject + tools), context (inject only), tools (tools only) | No | 'hybrid' |
writeFrequency | When to flush messages: async, turn, session, or integer N | No | 'async' |
saveMessages | Whether to persist messages to Honcho API | No | true |
observationMode | directional (all on) or unified (shared pool) | No | 'directional' |
messageMaxChars | Max chars per message (chunked if exceeded) | No | 25000 |
dialecticMaxInputChars | Max chars for dialectic query input to peer.chat() | No | 10000 |
sessionStrategy | per-directory, per-repo, per-session, global | No | 'per-directory' |
pinUserPeer | Gateway only. When true, every non-agent gateway user collapses to peerName; overrides all aliases. | No | false |
userPeerAliases | Gateway only. Maps runtime IDs to peers ({"7654321": "alice"}). Many-to-one. | No | {} |
runtimePeerPrefix | Gateway only. Namespaces unknown runtime IDs (telegram_7654321) when no alias matches. | No | "" |
OpenViking
OpenViking provides a local memory server with peer-scoped memories.
Setup
- Prepare OpenViking:
openviking-server init,openviking-server doctor,openviking-server. - Run
hermes memory setupand select 'openviking'. - Or manually:
hermes config set memory.provider openviking. - Set env vars in the profile's
.envfile (default:~/.hermes/.env; named:~/.hermes/profiles/<profile>/.env):OPENVIKING_ENDPOINT=http://127.0.0.1:1933- Optionally
OPENVIKING_API_KEY,OPENVIKING_ACCOUNT,OPENVIKING_USER,OPENVIKING_AGENT
- The setup wizard can reuse/copy connection values from
~/.openviking/ovcli.conf.
OpenViking Parameters
| Parameter | Meaning | Required | Default |
|---|---|---|---|
OPENVIKING_ENDPOINT | OpenViking server endpoint URL | Yes | - |
OPENVIKING_API_KEY | API key for OpenViking | No | - |
OPENVIKING_ACCOUNT | Account for local/trusted mode | No | 'default' |
OPENVIKING_USER | User for local/trusted mode | No | 'default' |
OPENVIKING_AGENT | Hermes' peer ID in OpenViking for peer-scoped memories | No | 'hermes' |
Mem0
Mem0 offers three modes: Platform (cloud), Open Source (self-managed in-process), and Self-Hosted Dashboard (Docker).
Setup (Platform)
- Run
hermes memory setup, select 'mem0' then 'Platform'. - Or manually:
hermes config set memory.provider mem0, thenecho "MEM0_API_KEY=your-key" >> ~/.hermes/.env.
Setup (OSS)
- Run
hermes memory setup, select 'mem0' then 'Open Source (self-hosted)'. - Or via flags:
hermes memory setup mem0 --mode oss --oss-llm openai --oss-llm-key sk-... --oss-vector qdrant. - Preview without writing files:
hermes memory setup mem0 --mode oss --oss-llm-key sk-... --dry-run.
Setup (Self-Hosted Dashboard)
- Run
hermes memory setup, select 'mem0' then 'Self-hosted server'. - Or via flags:
hermes memory setup mem0 --mode selfhosted --host http://localhost:8888 --api-key your-admin-api-key. - Or manually: set env vars
MEM0_HOSTandMEM0_API_KEYin~/.hermes/.env, or createmem0.jsonwithhostandapi_key. - The plugin authenticates with X-API-Key;
api_keyis optional only for AUTH_DISABLED servers. - Do not set
mode: oss- it takes precedence overhost.
Switch Modes
Re-run hermes memory setup mem0 --mode <platform|selfhosted|oss> or edit mem0.json directly.
Mem0 Parameters
| Parameter | Meaning | Required | Default |
|---|---|---|---|
mode | platform (Mem0 Cloud), oss (self-managed in-process), or selfhosted (Docker dashboard) | No | 'platform' |
host | Self-hosted Mem0 server URL (Docker dashboard). Do not combine with mode: oss. | Only for selfhosted mode | - |
user_id | User identifier | No | 'hermes-user' |
agent_id | Agent identifier | No | 'hermes' |
rerank | Rerank search results for relevance (platform mode only) | No | false |
Hindsight
Hindsight provides cloud and local memory with configurable recall and retention.
Setup
- Run
hermes memory setupand select 'hindsight'. - Or manually:
hermes config set memory.provider hindsight, thenecho "HINDSIGHT_API_KEY=your-key" >> ~/.hermes/.env. - The setup wizard auto-installs dependencies (hindsight-client for cloud, hindsight-all for local).
- Requires
hindsight-client >= 0.4.22(auto-upgraded on session start if outdated). - For local mode UI:
hindsight-embed -p hermes ui start.
Hindsight Parameters
| Parameter | Meaning | Required | Default |
|---|---|---|---|
mode | cloud or local | No | 'cloud' |
bank_id | Memory bank identifier | No | 'hermes' |
recall_budget | Recall thoroughness: low, mid, high | No | 'mid' |
memory_mode | hybrid (context + tools), context (auto-inject only), tools (tools only) | No | 'hybrid' |
auto_retain | Automatically retain conversation turns | No | true |
auto_recall | Automatically recall memories before each turn | No | true |
retain_async | Process retain asynchronously on the server | No | true |
retain_context | Context label for retained memories | No | 'conversation between Hermes Agent and the User' |
retain_tags | Default tags applied to retained memories; merged with per-call tool tags | No | - |
retain_source | Optional metadata.source attached to retained memories | No | - |
retain_user_prefix | Label used before user turns in auto-retained transcripts | No | 'User' |
retain_assistant_prefix | Label used before assistant turns in auto-retained transcripts | No | 'Assistant' |
recall_tags | Tags to filter on recall | No | - |
Holographic
Holographic uses SQLite for local memory storage with optional HRR (Holographic Reduced Representations) algebra.
Setup
- Run
hermes memory setupand select 'holographic'. - Or manually:
hermes config set memory.provider holographic. - Config is in
config.yamlunderplugins.hermes-memory-store.
Holographic Parameters
| Parameter | Meaning | Required | Default |
|---|---|---|---|
db_path | SQLite database path | No | $HERMES_HOME/memory_store.db |
auto_extract | Auto-extract facts at session end | No | false |
default_trust | Default trust score (0.0-1.0) | No | 0.5 |
RetainDB
RetainDB provides cloud-based memory storage.
Setup
- Run
hermes memory setupand select 'retaindb'. - Or manually:
hermes config set memory.provider retaindb, thenecho "RETAINDB_API_KEY=your-key" >> ~/.hermes/.env.
ByteRover
ByteRover provides a knowledge tree stored locally per profile.
Setup
- Install ByteRover CLI:
curl -fsSL https://byterover.dev/install.sh | shornpm install -g byterover-cli. - Run
hermes memory setupand select 'byterover'. - Or manually:
hermes config set memory.provider byterover.
The knowledge tree is stored at $HERMES_HOME/byterover/ (profile-scoped).
Supermemory
Supermemory provides cloud and self-hosted memory with container-based organization.
Setup (Cloud)
- Run
hermes memory setupand select 'supermemory'. - Or manually:
hermes config set memory.provider supermemory, thenecho 'SUPERMEMORY_API_KEY=***' >> ~/.hermes/.env.
Setup (Self-Hosted)
- Run
npx supermemory local. - Before
hermes memory setup, setbase_urlin$HERMES_HOME/supermemory.json:{ "base_url": "http://localhost:6767" } - Run
hermes memory setupand enter the API key printed by the local server. - Configuring the endpoint first ensures the setup connection probe stays local.
Supermemory Parameters
| Parameter | Meaning | Required | Default |
|---|---|---|---|
base_url | API endpoint for hosted or self-hosted Supermemory. Takes priority over SUPERMEMORY_BASE_URL. | No | https://api.supermemory.ai |
container_tag | Container tag used for search and writes. Supports {identity} template for profile-scoped tags. | No | 'hermes' |
auto_recall | Inject relevant memory context before turns | No | true |
auto_capture | Store cleaned user-assistant turns after each response | No | true |
max_recall_results | Max recalled items to format into context | No | 10 |
profile_frequency | Include profile facts on first turn and every N turns | No | 50 |
capture_mode | Skip tiny or trivial turns by default | No | 'all' |
search_mode | Search mode: hybrid, memories, or documents | No | 'hybrid' |
api_timeout | Timeout for SDK and ingest requests | No | 5.0 |
Memori
Memori provides a plugin-based memory system.
Setup
- Run
pip install hermes-memori. - Run
hermes-memori install. - Run
hermes config set memory.provider memori. - Run
hermes memory setup.
Constraints and Caveats
- Only one external provider can be active at a time.
- Built-in memory (MEMORY.md/USER.md) is always active alongside the external provider.
- Honcho:
dialecticDepthis clamped 1-3.dialecticCadenceonly applies to hybrid/context modes.pinUserPeeroverrides all aliases; use only when no user-side identity needs its own peer. Off-gateway,pinUserPeer,userPeerAliases, andruntimePeerPrefixdo nothing.hermes memory setuponly prompts for gateway keys when it detects a connected gateway platform. Server-side observation toggles set via the Honcho dashboard override local defaults. - Mem0: Do not set
mode: osswhen usinghost- it takes precedence.api_keyis optional only for AUTH_DISABLED servers. - Hindsight: Requires
hindsight-client >= 0.4.22(auto-upgraded on session start if outdated). - Supermemory:
base_urlprecedence:supermemory.json>SUPERMEMORY_BASE_URL>https://api.supermemory.ai. Automatic operations stay on the primary container; multi-container mode is only for agent tools. Context fencing strips recalled memories from captured turns to prevent recursive memory pollution. - OpenViking:
OPENVIKING_ACCOUNTandOPENVIKING_USERare used for local/trusted mode. Server settings are inov.conf; client connection values are inovcli.conf. - ByteRover: The knowledge tree is stored at
$HERMES_HOME/byterover/(profile-scoped). - Profile isolation: Local storage providers use
$HERMES_HOME/paths; config file providers store config in$HERMES_HOME/; cloud providers auto-derive profile-scoped project names; env var providers use per-profile.envfiles.
Failure Modes
- Provider not properly configured: missing API key, wrong endpoint, or incorrect config file.
- Honcho: Device auth fails if the verification link is not opened or approved in time.
- Mem0: Setting
mode: ossalongsidehostcauseshostto be ignored. - Hindsight: Outdated client version triggers auto-upgrade but may fail if there are network issues.
- Supermemory:
base_urlnot set before setup causes the connection probe to use the cloud endpoint instead of the local one. - OpenViking: Server not running or not initialized causes connection failure.
- ByteRover: CLI not installed or not in PATH.
- Memori:
hermes-memori installnot run before setup. - Gateway identity mapping misconfiguration:
pinUserPeeroverrides all aliases unexpectedly.
Prerequisites
- Hermes Agent installed and initialized.
- Honcho:
pip install honcho-ai; API key (cloud) or self-hosted instance. - OpenViking: OpenViking initialized, validated, and running.
- Mem0:
pip install mem0ai; API key (platform), running Mem0 server (self-hosted dashboard), or LLM + vector store (OSS). - Hindsight: API key (cloud) or LLM API key (local);
hindsight-client >= 0.4.22. - Holographic: Nothing (SQLite always available); NumPy optional for HRR algebra.
- RetainDB: RetainDB account + API key.
- ByteRover: ByteRover CLI installed (
npm install -g byterover-clior install script). - Supermemory:
pip install supermemory; cloud API key or self-hosted server. - Memori:
pip install hermes-memori;hermes-memori install; Memori API key.
Configuration Examples
Honcho: Minimal Cloud Configuration
{
"apiKey": "your-api-key",
"hosts": {
"hermes": {
"enabled": true,
"aiPeer": "hermes",
"peerName": "user",
"workspace": "hermes"
}
}
}
Honcho: Minimal Self-Hosted Configuration
{
"baseUrl": "http://localhost:8000",
"hosts": {
"hermes": {
"enabled": true,
"aiPeer": "hermes",
"peerName": "user",
"workspace": "hermes"
}
}
}
Honcho: Multi-Profile Configuration
{
"apiKey": "your-api-key",
"hosts": {
"hermes": {
"enabled": true,
"aiPeer": "hermes",
"peerName": "user",
"workspace": "hermes",
"recallMode": "hybrid",
"writeFrequency": "async",
"observationMode": "directional"
},
"hermes.coder": {
"enabled": true,
"aiPeer": "coder",
"peerName": "user",
"workspace": "hermes",
"recallMode": "context",
"writeFrequency": "turn",
"observationMode": "unified"
},
"hermes.writer": {
"enabled": true,
"aiPeer": "writer",
"peerName": "user",
"workspace": "hermes",
"recallMode": "tools",
"writeFrequency": "session",
"observationMode": "directional"
}
}
}
Honcho: Per-Profile Observation Override
For a code-focused profile where the AI peer observes the user but does not self-model:
{
"hosts": {
"hermes.coder": {
"enabled": true,
"aiPeer": "coder",
"peerName": "user",
"workspace": "hermes",
"observation": {
"user": true,
"self": false
}
}
}
}
Mem0: OSS Setup via Flags
hermes memory setup mem0 --mode oss --oss-llm openai --oss-llm-key sk-... --oss-vector qdrant
Mem0: Self-Hosted Dashboard Setup via Flags
hermes memory setup mem0 --mode selfhosted --host http://localhost:8888 --api-key your-admin-api-key
Supermemory: Multi-Container Configuration
{
"container_tag": "hermes",
"enable_custom_container_tags": true,
"custom_containers": ["research", "personal"],
"custom_container_instructions": "Use research for technical queries, personal for user preferences"
}
OpenViking: .env File Contents
OPENVIKING_ENDPOINT=http://127.0.0.1:1933
OPENVIKING_API_KEY=optional-key
OPENVIKING_ACCOUNT=default
OPENVIKING_USER=default
OPENVIKING_AGENT=hermes
Advanced Topics
Profile Isolation
Each Hermes profile maintains its own memory scope. For local storage providers, data is stored in $HERMES_HOME/ paths specific to the profile. Config file providers store their configuration in $HERMES_HOME/. Cloud providers derive profile-scoped project names automatically. Env var providers use per-profile .env files located at ~/.hermes/profiles/<profile>/.env.
Gateway Identity Mapping (Honcho)
When using Honcho with a gateway, you can control how runtime user identities map to Honcho peers. The pinUserPeer parameter collapses all non-agent gateway users to the configured peerName, overriding all aliases. Use userPeerAliases to map specific runtime IDs to peers (many-to-one). The runtimePeerPrefix namespaces unknown runtime IDs when no alias matches.
Context Fencing (Supermemory)
Supermemory automatically strips recalled memories from captured turns to prevent recursive memory pollution. This ensures that the memory store does not accumulate copies of its own recalled content.
Dialectic Reasoning (Honcho)
Honcho's dialectic reasoning system performs multi-pass LLM calls to generate deeper context. The dialecticDepth parameter controls the number of passes (clamped 1-3). Each pass can use a different reasoning level, configured via dialecticDepthLevels. When dialecticDynamic is true, the model can override the reasoning level per-call via a tool parameter.
Observation Modes (Honcho)
Honcho supports two observation modes: directional (all observation types on) and unified (shared observation pool). Server-side observation toggles set via the Honcho dashboard override local defaults.
Session Strategy (Honcho)
The sessionStrategy parameter controls how Honcho groups conversation turns into sessions. Options are per-directory (new session per working directory), per-repo (new session per repository), per-session (new session per Hermes session), and global (single session across all contexts). This affects how memories are scoped and retrieved.
Write Frequency (Honcho)
The writeFrequency parameter determines when messages are flushed to the Honcho API. Options include async (background flush), turn (after each turn), session (at session end), or an integer N (every N turns). This controls the trade-off between responsiveness and data persistence.
Memory Modes (Hindsight)
Hindsight's memory_mode parameter controls how memory is integrated. In hybrid mode, context is auto-injected and tools are available. In context mode, only auto-injection occurs. In tools mode, only tool-based memory operations are available. This allows fine-grained control over memory behavior.
Recall Budget (Hindsight)
The recall_budget parameter controls the thoroughness of memory recall. Options are low, mid, and high. Higher budgets retrieve more memories but consume more tokens and processing time.
Auto-Retain and Auto-Recall (Hindsight)
Hindsight supports automatic memory retention (auto_retain) and recall (auto_recall). When enabled, conversation turns are automatically retained as memories, and relevant memories are recalled before each turn. The retain_async parameter allows retention to be processed asynchronously on the server.
Capture Mode (Supermemory)
Supermemory's capture_mode parameter controls which turns are stored. By default, it is set to all, meaning all turns are captured. This can be adjusted to skip tiny or trivial turns to reduce noise in the memory store.
Search Mode (Supermemory)
Supermemory supports three search modes: hybrid (combines semantic and keyword search), memories (searches only memory entries), and documents (searches only document entries). This allows targeted retrieval based on the type of content needed.
Profile Frequency (Supermemory)
The profile_frequency parameter controls how often profile facts are included in the context. It is set to include profile facts on the first turn and every N turns thereafter (default 50). This ensures that user preferences and identity information are periodically refreshed.
API Timeout (Supermemory)
The api_timeout parameter sets the timeout for SDK and ingest requests. The default is 5.0 seconds. Adjust this value if you experience timeout errors with slow network connections or large payloads.
Trust Scores (Holographic)
Holographic uses a default_trust score (0.0 to 1.0) to rate the reliability of stored facts. The default is 0.5. Higher trust scores indicate more reliable information. Facts with low trust scores may be deprioritized during recall.
Auto-Extract (Holographic)
When auto_extract is enabled, Holographic automatically extracts facts from conversation turns at session end. This allows the system to build a structured knowledge base from unstructured conversations.
HRR Algebra (Holographic)
Holographic optionally supports Holographic Reduced Representations (HRR) algebra for advanced memory operations. This requires NumPy to be installed. HRR algebra enables operations like binding and superposition of memory vectors, allowing for more sophisticated memory manipulation.
Container Tags (Supermemory)
Supermemory uses container_tag to organize memories into containers. The tag supports the {identity} template, which is replaced with the current Hermes profile name. This enables profile-scoped memory isolation. Multi-container mode is only available through agent tools; automatic operations stay on the primary container.
Observation Override (Honcho)
Honcho allows per-profile observation overrides via the observation object in the host block. You can enable or disable observation for user and self independently. This is useful for profiles where you want to observe user interactions but not model the AI peer's own behavior.
Gateway Detection (Honcho)
The hermes memory setup wizard only prompts for gateway-related keys (like pinUserPeer, userPeerAliases, runtimePeerPrefix) when it detects a connected gateway platform. Off-gateway, these parameters have no effect and are ignored.
Server-Side Overrides (Honcho)
Honcho's server-side observation toggles, set via the Honcho dashboard, override local defaults. This means that even if you configure observation settings locally, the server-side settings take precedence. Be aware of this when troubleshooting observation behavior.
Sources & References
This page was researched from 1 independent source, combined and verified for completeness.
- 1.Memory ProvidersOfficial documentation · primary source
The #1 AI Newsletter
The most important ai updates, guides, and fixes — one weekly email.
No spam, unsubscribe anytime. Privacy policy