Skip to content
Docs menu

Documentation

New in new

Hermes Agent

A native memory provider for Nous Research's Hermes Agent, backed by TAM — local or on a team server.

Hermes Agent supports memory providers as plugins. hermes-tam-memory makes TAM one of them.

What it does

  • Saves each finished turn to TAM: the user message and the final reply. Greetings, slash commands, one-line exchanges and injected recall blocks are skipped. TAM’s quality gate, when enabled, has the final say.
  • Recalls relevant memories before every turn and injects them within a token budget. The current session’s own turns are not recalled back.
  • Gives the model two tools: tam_recall for a targeted search and tam_save to store a durable fact, decision, solution, lesson or convention.
  • Mirrors facts that Hermes’ built-in memory tool adds.
  • Shares one store with every other agent connected to the same TAM, so Hermes, Claude Code, Codex CLI and Cursor all see the same memories.

Requirements

  • Hermes Agent 0.21.4 or newer.
  • TAM 14.x on PATH for local mode:
pipx install total-agent-memory      # or: uv tool install total-agent-memory

The plugin has no Python dependencies. It speaks MCP with the standard library and never imports TAM into Hermes’ environment.

Install and set up

hermes plugins install vbcherepanov/hermes-tam-memory#hermes_tam_memory
hermes memory setup tam

Once the entry in the Hermes plugin catalog is merged, the first command becomes hermes plugins install tam.

The setup asks four questions: connection mode, the tam command, the TAM data directory and the TAM project name (default hermes). It then connects once and prints, for example, Connected: total-agent-memory 14.8.0 (local server, MCP 2025-06-18). Start a new Hermes session to activate the provider. hermes memory status shows the effective settings.

A team server

Point Hermes at a TAM team server to share company memory:

tam-team --root /srv/tam token-create --client hermes --out alice.token alice

Choose remote in hermes memory setup tam, enter https://<host>/mcp/ and paste the token. The token is stored as TAM_API_TOKEN in the profile’s .env, never in tam.json. Recalled team memories show their author.

What is sent where

  • Saved: the user message and the final assistant reply. Tool calls, tool output and system prompts are not saved. Subagent, cron and flush runs do not save turns on their own.
  • Local mode: Hermes starts the tam binary as a child process, so data stays in TAM’s local store. The child gets a reduced environment without Hermes’ provider API keys.
  • Remote mode: the same text goes to the configured URL. Use https:// for anything that is not on localhost.

TAM redacts credentials on every write path, so a key pasted into a Hermes chat does not reach disk. See Privacy.

When TAM is unavailable

Hermes never fails because of the provider. If TAM is missing, slow or crashes, recall returns nothing for that turn, saves wait in a bounded queue and retry after reconnecting, and the two tools return an error the model can read.

Settings, profiles and every option are in the plugin README.

Found a mistake? Open an issue on GitHub.

Search