Hermes Agent · memory provider · MIT

Give Hermes Agent
a memory that outlives the chat.

A standalone plugin that turns the agent-memory-es service into three native agent tools — recall, retain, reflect — with server-enforced private/team/common visibility.

What the agent gets

Three tools, zero new concepts.

No daemon on your laptop beyond the service itself, no config surface beyond a URL and a key. The plugin is a thin client — all memory logic lives in the service.

agent_memory_recallhybrid search over the memory bank — the agent's own remember that… lookup
agent_memory_retainstore a durable fact, tagged private / team / common — visibility the profile can narrow but never widen
agent_memory_reflectask a question over memory, get an answer with citations back to memory ids

How a turn flows

Behind the scenes, per session.

Turn sync mirrors your words into the episodic tier; prompts get a top-5 prefetch so the model starts with relevant memories; reflect runs only when asked. Click through the full sequence — every message maps to a real code path.

One turn through the memory bank open full diagram ↗

Why this shape

Standalone by design.

Drop-in, not fork-in

Lives in ~/.hermes/plugins/agent_memory_es/ — no Hermes source changes, survives agent upgrades.

Identity is the key

Owner identity binds to the API key server-side. A misbehaving profile can't read another owner's private memories by asking nicely.

Schemas are a contract

Tool schemas use the OpenAI parameters key — pinned by a regression test after the MCP-style input_schema naming silently stripped every argument.

Degrades gracefully

Service down? Hermes keeps working — memory calls fail soft, the session doesn't.

Install

Clone, point, verify.

# 1. run the agent-memory-es service and mint a key — see its quick start
#    https://patrykkopycinski.github.io/agent-memory-es/#quickstart

# 2. drop the plugin into user plugins (dir name matters)
git clone https://github.com/patrykkopycinski/hermes-plugin-agent-memory-es.git \
  ~/.hermes/plugins/agent_memory_es

# 3. point Hermes at it
#    ~/.hermes/config.yaml:
#      memory:
#        provider: agent_memory_es
export AMES_SERVICE_URL=http://localhost:8123
export AMES_SERVICE_KEY=<your-key>

# 4. verify
hermes memory status