Hermes Agent Memory Providers: Setup and Configuration Guide

Connect Hermes Agent to eight external memory providers for persistent, cross-session knowledge.

Data & On-Chainintermediate18 min readVerified Oct 24, 2026
Hermes Agent Memory Providers: Setup and Configuration Guide

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 .env files

Quick Start

Enable External Memory

  1. Run hermes memory setup for an interactive picker and configuration wizard.
  2. Or set the provider manually in ~/.hermes/config.yaml:
    memory:
      provider: <name>
    
  3. Or use hermes plugins -> Provider Plugins -> Memory Provider.
  4. Verify with hermes memory status.
  5. 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

  1. Run hermes memory setup and select 'honcho'.
  2. 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.
  3. The wizard defaults to device auth when no local browser is detected.
  4. Legacy hermes honcho setup still works but redirects to hermes memory setup (only registered after Honcho is active).

Manual Configuration

  1. Create honcho.json at $HERMES_HOME/honcho.json (profile-local) or ~/.honcho/config.json (global). Resolution order: $HERMES_HOME/honcho.json > ~/.hermes/honcho.json > ~/.honcho/config.json.
  2. Minimal cloud config:
    {
      "apiKey": "...",
      "hosts": {
        "hermes": {
          "enabled": true,
          "aiPeer": "hermes",
          "peerName": "...",
          "workspace": "hermes"
        }
      }
    }
    
  3. Minimal self-hosted config:
    {
      "baseUrl": "http://localhost:8000",
      "hosts": {
        "hermes": {
          "enabled": true,
          "aiPeer": "hermes",
          "peerName": "...",
          "workspace": "hermes"
        }
      }
    }
    
  4. Set memory.provider: honcho in ~/.hermes/config.yaml.

Multi-Profile Setup (New Profile)

  1. Run hermes profile create <name> --clone.
  2. --clone creates a hermes.<name> host block in honcho.json with aiPeer: "<name>", shared workspace, inherited peerName, recallMode, writeFrequency, observation, etc.
  3. The AI peer is eagerly created in Honcho before the first message.

Multi-Profile Setup (Existing Profiles)

  1. Run hermes honcho sync.
  2. This scans every Hermes profile, creates host blocks for any profile without one, inherits settings from the default hermes block.
  3. 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

ParameterMeaningRequiredDefault
apiKeyAPI key from app.honcho.devYes for cloud; not needed for self-hosted-
baseUrlBase URL for self-hosted Honcho instanceOnly for self-hosted-
peerNameUser peer identityYes-
aiPeerAI peer identity (one per profile)Yes (host key)-
workspaceShared workspace IDYes (host key)-
contextTokensToken budget for auto-injected context per turn. Truncates at word boundaries.Nonull (uncapped)
contextCadenceMinimum turns between context() API calls (base layer refresh)No1
dialecticCadenceMinimum turns between peer.chat() LLM calls. Recommended 1-5. Only applies to hybrid/context modes.No2
dialecticDepthNumber of .chat() passes per dialectic invocation. Clamped 1-3.No1
dialecticDepthLevelsOptional array of reasoning levels per pass, e.g. ["minimal","low","medium"]. Overrides proportional defaults.Nonull
dialecticReasoningLevelBase reasoning level: minimal, low, medium, high, maxNo'low'
dialecticDynamicWhen true, model can override reasoning level per-call via tool paramNotrue
dialecticMaxCharsMax chars of dialectic result injected into system promptNo600
recallModehybrid (auto-inject + tools), context (inject only), tools (tools only)No'hybrid'
writeFrequencyWhen to flush messages: async, turn, session, or integer NNo'async'
saveMessagesWhether to persist messages to Honcho APINotrue
observationModedirectional (all on) or unified (shared pool)No'directional'
messageMaxCharsMax chars per message (chunked if exceeded)No25000
dialecticMaxInputCharsMax chars for dialectic query input to peer.chat()No10000
sessionStrategyper-directory, per-repo, per-session, globalNo'per-directory'
pinUserPeerGateway only. When true, every non-agent gateway user collapses to peerName; overrides all aliases.Nofalse
userPeerAliasesGateway only. Maps runtime IDs to peers ({"7654321": "alice"}). Many-to-one.No{}
runtimePeerPrefixGateway only. Namespaces unknown runtime IDs (telegram_7654321) when no alias matches.No""

OpenViking

OpenViking provides a local memory server with peer-scoped memories.

Setup

  1. Prepare OpenViking: openviking-server init, openviking-server doctor, openviking-server.
  2. Run hermes memory setup and select 'openviking'.
  3. Or manually: hermes config set memory.provider openviking.
  4. Set env vars in the profile's .env file (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
  5. The setup wizard can reuse/copy connection values from ~/.openviking/ovcli.conf.

OpenViking Parameters

ParameterMeaningRequiredDefault
OPENVIKING_ENDPOINTOpenViking server endpoint URLYes-
OPENVIKING_API_KEYAPI key for OpenVikingNo-
OPENVIKING_ACCOUNTAccount for local/trusted modeNo'default'
OPENVIKING_USERUser for local/trusted modeNo'default'
OPENVIKING_AGENTHermes' peer ID in OpenViking for peer-scoped memoriesNo'hermes'

Mem0

Mem0 offers three modes: Platform (cloud), Open Source (self-managed in-process), and Self-Hosted Dashboard (Docker).

Setup (Platform)

  1. Run hermes memory setup, select 'mem0' then 'Platform'.
  2. Or manually: hermes config set memory.provider mem0, then echo "MEM0_API_KEY=your-key" >> ~/.hermes/.env.

Setup (OSS)

  1. Run hermes memory setup, select 'mem0' then 'Open Source (self-hosted)'.
  2. Or via flags: hermes memory setup mem0 --mode oss --oss-llm openai --oss-llm-key sk-... --oss-vector qdrant.
  3. Preview without writing files: hermes memory setup mem0 --mode oss --oss-llm-key sk-... --dry-run.

Setup (Self-Hosted Dashboard)

  1. Run hermes memory setup, select 'mem0' then 'Self-hosted server'.
  2. Or via flags: hermes memory setup mem0 --mode selfhosted --host http://localhost:8888 --api-key your-admin-api-key.
  3. Or manually: set env vars MEM0_HOST and MEM0_API_KEY in ~/.hermes/.env, or create mem0.json with host and api_key.
  4. The plugin authenticates with X-API-Key; api_key is optional only for AUTH_DISABLED servers.
  5. Do not set mode: oss - it takes precedence over host.

Switch Modes

Re-run hermes memory setup mem0 --mode <platform|selfhosted|oss> or edit mem0.json directly.

Mem0 Parameters

ParameterMeaningRequiredDefault
modeplatform (Mem0 Cloud), oss (self-managed in-process), or selfhosted (Docker dashboard)No'platform'
hostSelf-hosted Mem0 server URL (Docker dashboard). Do not combine with mode: oss.Only for selfhosted mode-
user_idUser identifierNo'hermes-user'
agent_idAgent identifierNo'hermes'
rerankRerank search results for relevance (platform mode only)Nofalse

Hindsight

Hindsight provides cloud and local memory with configurable recall and retention.

Setup

  1. Run hermes memory setup and select 'hindsight'.
  2. Or manually: hermes config set memory.provider hindsight, then echo "HINDSIGHT_API_KEY=your-key" >> ~/.hermes/.env.
  3. The setup wizard auto-installs dependencies (hindsight-client for cloud, hindsight-all for local).
  4. Requires hindsight-client >= 0.4.22 (auto-upgraded on session start if outdated).
  5. For local mode UI: hindsight-embed -p hermes ui start.

Hindsight Parameters

ParameterMeaningRequiredDefault
modecloud or localNo'cloud'
bank_idMemory bank identifierNo'hermes'
recall_budgetRecall thoroughness: low, mid, highNo'mid'
memory_modehybrid (context + tools), context (auto-inject only), tools (tools only)No'hybrid'
auto_retainAutomatically retain conversation turnsNotrue
auto_recallAutomatically recall memories before each turnNotrue
retain_asyncProcess retain asynchronously on the serverNotrue
retain_contextContext label for retained memoriesNo'conversation between Hermes Agent and the User'
retain_tagsDefault tags applied to retained memories; merged with per-call tool tagsNo-
retain_sourceOptional metadata.source attached to retained memoriesNo-
retain_user_prefixLabel used before user turns in auto-retained transcriptsNo'User'
retain_assistant_prefixLabel used before assistant turns in auto-retained transcriptsNo'Assistant'
recall_tagsTags to filter on recallNo-

Holographic

Holographic uses SQLite for local memory storage with optional HRR (Holographic Reduced Representations) algebra.

Setup

  1. Run hermes memory setup and select 'holographic'.
  2. Or manually: hermes config set memory.provider holographic.
  3. Config is in config.yaml under plugins.hermes-memory-store.

Holographic Parameters

ParameterMeaningRequiredDefault
db_pathSQLite database pathNo$HERMES_HOME/memory_store.db
auto_extractAuto-extract facts at session endNofalse
default_trustDefault trust score (0.0-1.0)No0.5

RetainDB

RetainDB provides cloud-based memory storage.

Setup

  1. Run hermes memory setup and select 'retaindb'.
  2. Or manually: hermes config set memory.provider retaindb, then echo "RETAINDB_API_KEY=your-key" >> ~/.hermes/.env.

ByteRover

ByteRover provides a knowledge tree stored locally per profile.

Setup

  1. Install ByteRover CLI: curl -fsSL https://byterover.dev/install.sh | sh or npm install -g byterover-cli.
  2. Run hermes memory setup and select 'byterover'.
  3. 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)

  1. Run hermes memory setup and select 'supermemory'.
  2. Or manually: hermes config set memory.provider supermemory, then echo 'SUPERMEMORY_API_KEY=***' >> ~/.hermes/.env.

Setup (Self-Hosted)

  1. Run npx supermemory local.
  2. Before hermes memory setup, set base_url in $HERMES_HOME/supermemory.json:
    { "base_url": "http://localhost:6767" }
    
  3. Run hermes memory setup and enter the API key printed by the local server.
  4. Configuring the endpoint first ensures the setup connection probe stays local.

Supermemory Parameters

ParameterMeaningRequiredDefault
base_urlAPI endpoint for hosted or self-hosted Supermemory. Takes priority over SUPERMEMORY_BASE_URL.Nohttps://api.supermemory.ai
container_tagContainer tag used for search and writes. Supports {identity} template for profile-scoped tags.No'hermes'
auto_recallInject relevant memory context before turnsNotrue
auto_captureStore cleaned user-assistant turns after each responseNotrue
max_recall_resultsMax recalled items to format into contextNo10
profile_frequencyInclude profile facts on first turn and every N turnsNo50
capture_modeSkip tiny or trivial turns by defaultNo'all'
search_modeSearch mode: hybrid, memories, or documentsNo'hybrid'
api_timeoutTimeout for SDK and ingest requestsNo5.0

Memori

Memori provides a plugin-based memory system.

Setup

  1. Run pip install hermes-memori.
  2. Run hermes-memori install.
  3. Run hermes config set memory.provider memori.
  4. 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: dialecticDepth is clamped 1-3. dialecticCadence only applies to hybrid/context modes. pinUserPeer overrides all aliases; use only when no user-side identity needs its own peer. Off-gateway, pinUserPeer, userPeerAliases, and runtimePeerPrefix do nothing. hermes memory setup only 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: oss when using host - it takes precedence. api_key is optional only for AUTH_DISABLED servers.
  • Hindsight: Requires hindsight-client >= 0.4.22 (auto-upgraded on session start if outdated).
  • Supermemory: base_url precedence: 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_ACCOUNT and OPENVIKING_USER are used for local/trusted mode. Server settings are in ov.conf; client connection values are in ovcli.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 .env files.

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: oss alongside host causes host to be ignored.
  • Hindsight: Outdated client version triggers auto-upgrade but may fail if there are network issues.
  • Supermemory: base_url not 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 install not run before setup.
  • Gateway identity mapping misconfiguration: pinUserPeer overrides 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-cli or 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.

Newsletter

The #1 AI Newsletter

The most important ai updates, guides, and fixes — one weekly email.

No spam, unsubscribe anytime. Privacy policy

Other Hermes Agent integrations