Skip to main content

Hermes Local

Agent index: llms.txt

Give Hermes Agent persistent, cross-session memory backed by AtomicMemory. Unlike MCP-backed coding-agent plugins, Hermes uses a native Python memory provider that participates directly in prefetch, turn sync, and shutdown hooks.

Quick start

1. Install the provider

Install the AtomicMemory memory provider through your Hermes plugin workflow.

2. Configure the backend

export ATOMICMEMORY_API_URL="https://memory.yourco.com"
export ATOMICMEMORY_API_KEY="am_live_..." # optional

3. Select the provider

hermes memory setup
hermes memory status

Features

  • Native provider lifecycle. Hermes calls the AtomicMemory provider during recall, ingest, and shutdown.
  • Background recall. Prefetch prepares memory for the next turn without blocking the chat loop.
  • Non-blocking ingest. Completed turns sync in the background.
  • Shared or siloed memory. Hermes can recall all user memories or only Hermes-ingested memories.
  • Explicit tools. Agents can search, package context, store conclusions, and inspect recent records.

Modes of operation

ModeRecall and syncExplicit tools
hybridYesYes
contextYesHidden
toolsDisabledYes
ScopeRecall
sharedAll AtomicMemory memories for the user.
siloedOnly Hermes-ingested memories.

Configuration

Hermes' setup wizard prompts for:

FieldPurpose
scope_userUser identity used for AtomicMemory scope.
memory_scopeshared or siloed.

Required environment:

Env varPurpose
ATOMICMEMORY_API_URLAtomicMemory core URL.

Optional environment:

Env varPurpose
ATOMICMEMORY_API_KEYBearer credential for AtomicMemory core.
ATOMICMEMORY_PROVIDERSDK provider name. Defaults to atomicmemory.
ATOMICMEMORY_SCOPE_USERHermes user identity. Defaults to $USER.
ATOMICMEMORY_MEMORY_SCOPEshared or siloed. Defaults to shared.
ATOMICMEMORY_MEMORY_MODEhybrid, context, or tools. Defaults to hybrid.
ATOMICMEMORY_PREFETCH_ENABLEDtrue or false. Defaults to true.
ATOMICMEMORY_PREFETCH_METHODcontext or fast. Defaults to context.

Advanced settings live in $HERMES_HOME/atomicmemory.json:

KeyPurpose
memory_modehybrid, context, or tools.
prefetch_enabledEnable background recall.
prefetch_methodcontext for packages or fast for lower-latency search.
search_limitDefault search/list limit.
token_budgetDefault context-package token budget.

Secrets stay in the environment, not in the Hermes config file.

Tools

ToolMaps toPurpose
atomicmemory_searchMemoryClient.searchSearch AtomicMemory by meaning.
atomicmemory_contextMemoryClient.packageBuild an injection-ready context package.
atomicmemory_concludeMemoryClient.ingestStore one explicit durable fact verbatim.
atomicmemory_profileMemoryClient.listList recent records for the current user.

Lifecycle hooks

HookWhat it does
queue_prefetch(query)Starts background recall for the next turn.
prefetch(query)Returns the most recent completed recall and clears the slot.
sync_turn(user, assistant)Enqueues a completed turn for non-blocking ingest.
on_session_end(messages)Drains the worker and closes the SDK client.
shutdownReleases provider resources when Hermes exits.

Troubleshooting

SymptomFix
Provider does not appearConfirm the provider is installed under Hermes' memory-provider directory.
Provider unavailableConfirm ATOMICMEMORY_API_URL and provider package installation.
Siloed recall failsUse ATOMICMEMORY_PROVIDER=atomicmemory or switch to shared.
Calls pause after repeated backend failuresHermes opens a circuit breaker after five SDK failures and resumes after roughly two minutes. Check the AtomicMemory service before retrying.

Update

After changing the Hermes provider, restart Hermes so it reloads the plugin. For source installs, update the integrations checkout and rerun the provider install or symlink step before restarting.

Development

For source builds, plugin development, and local adapter testing, see the integration contributor notes.

See also