Hermes Agent - Mem0

Documentation Index

Fetch the complete documentation index at: /llms.txt

Use this file to discover all available pages before exploring further.

Add long-term memory to Hermes Agent, a self-improving AI agent CLI by Nous Research. Hermes has a pluggable memory system, and Mem0 is one of the supported providers. Once enabled, Mem0 learns facts from your conversations and surfaces relevant ones before each turn, without slowing down the chat. You can run Mem0 in two ways:

How It Works

Hermes runs a built-in memory system (file-based MEMORY.md and USER.md) alongside one external provider. When Mem0 is active, it works additively with the built-in system at three points in every conversation turn.

1. Before the agent responds (prefetch)

When you send a message, Hermes checks for cached Mem0 search results from the previous turn. If they exist, those memories are injected into the system prompt so the model can see them. This is zero-latency, with no waiting on an API call.

2. After the agent responds (sync)

Once the model finishes, Hermes sends the (user message, assistant response) pair to Mem0 in a background thread. Mem0 extracts facts automatically (for example, “user prefers Python” or “user works at Acme Corp”), so you never have to tell it what to remember. Each write is tagged with the gateway channel it came from.

3. Background prefetch for the next turn

At the same time, Hermes runs a background search to pre-load relevant memories for your next message. By the time you type, the results are already cached.

Agent Tools

When Mem0 is active, the model gets five tools it can call during a conversation:

Tool Description Parameters
mem0_list List all stored memories, for a full overview page, page_size (default 100, max 200)
mem0_search Semantic search by meaning, ranked by relevance query (required), top_k (default 10, max 50), rerank (default true, Platform mode only)
mem0_add Store a fact verbatim, with no LLM extraction content (required)
mem0_update Update a memory’s text by ID memory_id, text (both required)
mem0_delete Delete a memory by ID memory_id (required)

Installation

Install Hermes Agent:

curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
source ~/.bashrc

The mem0ai package is installed automatically when you enable the Mem0 provider, so there is no manual pip step. OSS providers may need extra packages (for example qdrant-client, psycopg2-binary, or ollama), which the setup flow installs for you when you pick them.

Platform Setup

Platform mode uses managed Mem0 Cloud and is the fastest way to start.

Option 1: Interactive wizard (recommended)

hermes memory setup

Select mem0, choose Platform, and paste your API key when prompted. The wizard writes the non-secret settings to ~/.hermes/mem0.json and keeps the key in ~/.hermes/.env.

Get your API key from app.mem0.ai.

Option 2: Manual Configuration

hermes config set memory.provider mem0
echo "MEM0_API_KEY=your-api-key" >> ~/.hermes/.env

Then in your config.yaml:

memory:
  provider: mem0

That’s it. Mem0 runs automatically from here.

OSS (Self-Hosted) Setup

OSS mode runs Mem0 entirely on your own infrastructure: your LLM, your embedder, and your vector store. No data is sent to Mem0 Cloud, and no Mem0 API key is required.

Interactive

hermes memory setup
# Select "mem0", then "Open Source (self-hosted)"
# Follow the prompts for LLM, embedder, and vector store

With flags

hermes memory setup mem0 --mode oss \
  --oss-llm openai --oss-llm-key sk-... \
  --oss-vector qdrant

Supported providers

Component Providers
LLM openai (default model gpt-5-mini), ollama (local, default llama3.1:8b)
Embedder openai (default text-embedding-3-small), ollama (local, default nomic-embed-text)
Vector store qdrant (local path or server), pgvector

Configuration

Behavioral settings live in ~/.hermes/mem0.json and are written for you by hermes memory setup. Only the secret MEM0_API_KEY belongs in ~/.hermes/.env.

Key Default Description
mode platform platform (Mem0 Cloud) or oss (self-hosted)
api_key none Mem0 Platform API key, required in Platform mode. Stored in .env as MEM0_API_KEY
user_id hermes-user Identifier that scopes memories. See cross-channel behavior below
agent_id hermes Agent identifier attached to writes
rerank true Rerank search results for relevance (Platform mode only)

Cross-channel memories

Hermes can run from the CLI and from gateways like Telegram, Slack, and Discord. The user_id setting controls how memories are scoped across them:

Reliability

Troubleshooting

”Mem0 temporarily unavailable”

The circuit breaker tripped after five consecutive failures and resets after two minutes.

OSS: vector store connection refused

# Local Qdrant: confirm the storage path is writable
ls -la ~/.hermes/mem0_qdrant

# Qdrant server: confirm it is reachable
curl http://localhost:6333/healthz

# PGVector: confirm PostgreSQL is accepting connections
pg_isready -h localhost -p 5432

OSS: Ollama not reachable

curl http://localhost:11434/api/tags

Memories not appearing

Key Features

  1. Two ways to run: managed Platform or fully self-hosted OSS, switchable at any time.
  2. Zero-latency recall: memories are prefetched in the background and cached before you type.
  3. Automatic extraction: Mem0 extracts and deduplicates facts from each exchange for you.
  4. Non-blocking and fault tolerant: background threads plus a circuit breaker keep the agent responsive even when Mem0 is unreachable.
  5. Additive memory: works alongside Hermes’ built-in file memory (MEMORY.md, USER.md).

OpenClaw Integration
Add memory to OpenClaw agents with auto-recall and auto-capture

Mem0 Platform
Get your API key and explore the Mem0 dashboard.