Memory Provider for Hermes Agent

Memory Provider for Hermes Agent
Photo by Kelly Sikkema / Unsplash

Hermes Agent · Persistent Memory

Your AI Remembers Everything (So You Don't Have To)

You've probably had the conversation a dozen times. You open a new session with an AI agent and explain your project again. Share your preferences. Remind it who you are. It nods along, does the work, and when you come back a week later, it greets you like a stranger.

This isn't a bug. It's how stateless models work by design. Each request is independent. Each response generated from whatever prompt you send right now, with no continuity beyond the tokens in the current context window.

For single-turn interactions -- ask a question, get an answer, move on -- that's fine. For agents that are supposed to do things across sessions, learn from mistakes, and evolve with you -- statelessness is the central unsolved problem.

The industry has tried to solve this. LangChain added memory modules. OpenAI introduced assistants with threads. Frameworks like Letta, Zep, and Cognee built entire architectures around persistent memory. Databricks published on "memory scaling" -- the idea that agent performance improves with accumulated experience.

Most of these approaches share a common problem: they treat memory as an afterthought -- a database you query, a context window you stuff, a retrieval system that adds latency and noise rather than clarity.

Hermes Agent takes a different approach. Memory isn't something the agent retrieves when needed. It's something the agent is at all times -- built into the system prompt, curated, bounded, and always active. Small enough to be fast. Structured enough to be useful. Disciplined enough to know what to forget.

That works well for a while. Then you hit the wall: your flat file is 4000 words of everything the agent has ever learned, and half of it is outdated.

This is where Supermemory enters the picture.

The Flat-File Problem

Hermes ships with two memory files: MEMORY.md, which holds things the agent has learned about your work, and USER.md, which holds things about you. You can edit them by hand. The agent edits them too. They persist across sessions.

This is a solid baseline. But what people expect from "memory" is growing past a single flat file. Three problems show up fast:

  • One big mix. Work context surfaces when you're chatting about personal stuff, and vice versa. There's no isolation.
  • Stale facts. "You work at X" stays there even after you switch companies. The file doesn't update itself -- you have to remember to edit it, which is the opposite of what memory is supposed to do.
  • No temporal awareness. If you say "we discussed this last Tuesday," the agent can't tell which Tuesday. Every conversation's data is flattened into one blob.

These aren't fundamental flaws. They're scaling limits. You can manage a 2000-word memory file for a while. After that, the maintenance burden starts eating into the time you wanted the agent to save you.

What Supermemory Actually Is

Supermemory is a memory and context engine for AI agents, built by the team at supermemory.ai. It's open source (GitHub: supermemoryai/supermemory) and hosted on Cloudflare. The team puts itself at #1 on three memory benchmarks -- LongMemEval, LoCoMo, and ConvoMem -- as of mid-2026.

It's not a Hermes-specific product. The company says it powers memory for "tens of thousands of AI applications" across Claude Code, OpenClaw, ChatGPT, and others. The Hermes integration is one plugin in a broader ecosystem.

The core idea is simple: instead of a flat file you curate, Supermemory builds a knowledge graph that extracts facts from your conversations, updates them when they change, remembers what was true when, and forgets what's no longer relevant -- all automatically.

How It Works Inside Hermes

The Supermemory plugin for Hermes is a native memory provider. It plugs into the same lifecycle hooks the core agent uses:

  • Prefetch. Before each turn, relevant memory context can be loaded automatically. Background, non-blocking.
  • Turn capture. After each response, cleaned user and assistant turns are stored.
  • Session ingest. When a session ends, the full conversation is ingested for richer graph updates.
  • Explicit tools. The agent can search, store, forget, and retrieve your profile directly.
  • Mirroring. When you add to built-in memory, the provider can mirror those writes into Supermemory in the background.

The agent gets four concrete tools:

  • supermemory-search -- search by semantic similarity (with optional rerank, configurable hybrid vs. memories-only mode)
  • supermemory-store -- store an explicit memory
  • supermemory-forget -- forget a memory by ID or best-match query
  • supermemory-profile -- retrieve persistent profile and recent context

Setup is a one-liner:

pip install supermemory
hermes memory setup

Choose supermemory when prompted, paste your API key, and you're in. There's also a supermemory.json config file for deeper control over container tags, recall limits, and capture aggressiveness.

Graph Memory vs. Flat Files

Supermemory calls its approach "graph memory." Here's what that actually means in practice:

The system indexes every conversation turn but selectively remembers what's important. Everything gets indexed because "memory is inherently lossy and you can never predict what the assistant will need on answering time." But the graph extracts, updates, and retrieves facts in a way that behaves like memory, not like lazy vector search.

The key behaviors:

  • Knowledge updates. "You use Python" stays true even when you add Rust to your stack. The graph handles the update, not a manual edit.
  • Temporal reasoning. "That bug" means the one from Tuesday. The graph remembers when facts were true and when they changed.
  • Automatic forgetting. Things that aren't important fade out. You don't need to trim the file yourself.
  • Profile recall. Static facts about you (name, location, workplace) and dynamic context (what you're in the middle of) are maintained separately and refreshed each session.

This means that even when you say "hi," the agent already knows who you are. No prompting. No needle-in-the-haystack.

The Scoping Feature Nobody Talks About

Here's the feature that matters most if you use Hermes across contexts: Supermemory respects Hermes profiles and adds its own layer of isolation.

By default, your primary Supermemory container tag is scoped like hermes-{profile}, so different Hermes profiles don't stomp each other's memories. If you want more granularity -- work vs. personal, or one bucket per project -- you enable multi-container routing:

{
  "container_tag": "hermes",
  "enable_custom_container_tags": true,
  "custom_containers": ["work", "personal", "shared-knowledge"],
  "custom_container_instructions": "Use work for job and coding context, personal for life and hobbies, shared-knowledge for facts that apply across both."
}

The model gets instructions about when to use each tag, and the supermemory-search, supermemory-store, supermemory-forget, and supermemory-profile tools all accept an optional container_tag argument. Automatic behavior (turn sync, prefetch, mirroring) always uses the primary container only -- it doesn't guess.

This is what built-in MEMORY.md can't do. You can split it by hand, but then you have two files to manage. With Supermemory, the isolation is structural.

Where It Breaks (or At Least Stresses)

No system is perfect. Here's where Supermemory shows its edges:

  • API dependency. Your memory lives in the cloud. If api.supermemory.ai is down, your agent loses its external memory for the duration. The plugin has a circuit breaker that backs off after repeated failures, so the agent loop doesn't thrash -- but you're still dependent on someone else's infrastructure.
  • Latency. Each turn triggers a prefetch call to the API. Most of the time it's fast (Cloudflare helps), but on slow connections or during API congestion, you'll feel it. Built-in memory is instant because it's a local file.
  • The learning curve. Graph memory changes how you think about memory itself. Instead of editing a file, you're trusting an engine to extract and update facts. This is powerful but means you can't just grep your memory file to find something. You search. You profile. You forget.
  • Cost. Supermemory is free to get started, but if you're running heavy usage across many agents and sessions, the paid tier adds up. Built-in memory is free forever.
  • Not all memory is created equal. The graph does a good job with facts and preferences. It's less clear how well it handles procedural knowledge -- things like "how to deploy this project" or "our team's coding conventions." Those still work better in a flat file where the agent can see everything at once.

The Broader Memory Landscape

Supermemory isn't the only external memory provider for Hermes. The platform ships with eight external memory plugins:

  • Supermemory -- graph-based, cloud-hosted, automatic extraction and forgetting
  • Hindsight -- knowledge graph with entity relationships and a "reflect" synthesis tool
  • Mem0 -- memory store with a focus on user profiles and semantic search
  • Honcho -- AI-native cross-session modeling with dialectic reasoning
  • Holographic -- holographic memory representation for compact storage
  • RetainDB -- persistent memory database
  • Byterover -- memory system focused on context retention

Each has different trade-offs. Supermemory's main advantages are the maturity of the graph engine, the breadth of integrations (it works with Claude Code, OpenClaw, ChatGPT, etc.), and the automatic forgetting that keeps memory from becoming a dumping ground.

If you want something simpler and fully local, Hindsight or Mem0 might be better fits. If you want maximum control over your memory file, built-in MEMORY.md alone is enough for many use cases.

The Verdict

Supermemory is the most complete memory solution for Hermes if you want your agent to genuinely remember things across sessions without you managing a file. The graph engine handles updates, temporal context, and forgetting automatically. The scoping system lets you separate work, personal, and project memories cleanly. The circuit breaker means API failures don't brick your session.

It's not a replacement for built-in memory -- it's an upgrade. Your MEMORY.md stays. Supermemory adds structure, isolation, and retrieval that a flat file can't provide.

The main question isn't whether Supermemory is good. It is. The question is whether your use case has outgrown flat files. If you're a single user with one project and don't switch contexts much, you might never need it. If you're running multiple Hermes profiles, juggling several projects, or using the same agent across Telegram, Discord, and Slack -- it's worth the setup.

Supermemory ranks #1 on all three major memory benchmarks (LongMemEval, LoCoMo, ConvoMem) as of mid-2026 -- and it's open source.