Hermes
Hermes uses the UnifiedMemory plugin for pre-turn recall and post-turn writeback. It is especially important to keep Hermes writeback clean because chat crumbs and long assistant answer dumps can otherwise flood review.
Registry contract
This section is generated from integrations/agent_integrations.registry.json. Edit the registry or generator, not this block.
| Field | Value |
|---|---|
| Integration ID | hermes |
| Label | Hermes Agent |
| Tier | native_lifecycle_provider |
| Setup mode | native_provider_and_mcp |
| Agent ID | hermes |
| App ID | hermes |
| Source app / actor | source_app=hermes, agent_id=hermes; key metadata wins over request body hints |
| Default scope | own |
| Config paths | ~/.hermes/config.yaml, ~/.hermes/unifiedmemory.json |
| Capabilities | memory.read, memory.write, memory.recall, memory.delete, agent.context, agent.writeback, mesh.read, evidence.read, courtroom.read, canary.read |
| Supported tools | unified_memory_recall, unified_memory_write, unified_memory_context, unified_memory_evidence_bundle, unified_memory_courtroom, unified_memory_mesh_context, unified_memory_trace_show, unified_memory_eval_run, unified_memory_canary_status |
Capture policy
Native provider does cache-first prefetch, background context refresh, post-turn writeback, and session-end capture through UnifiedMemory lifecycle gates.
Install command(s)
mkdir -p ~/.hermes/plugins/memory
ln -sfn "$PWD/integrations/hermes-unifiedmemory" ~/.hermes/plugins/memory/unifiedmemory
hermes config set memory.provider unifiedmemory
hermes memory setup
Verify command(s)
hermes memory status
tools/um-hermes auth-check
tools/um-hermes mcp-config-check
tools/um-hermes run-proof --live --confirm-live
Environment
{
"UNIFIED_MEMORY_AGENT_ID": "hermes",
"UNIFIED_MEMORY_AGENT_SCOPE": "own",
"UNIFIED_MEMORY_API_KEY": "{{KEY_ENV_REF}}",
"UNIFIED_MEMORY_APP_ID": "hermes",
"UNIFIED_MEMORY_BASE_URL": "{{EDGE_BASE_URL}}",
"UNIFIED_MEMORY_CONTAINER": "{{CONTAINER_TAG}}",
"UNIFIED_MEMORY_TRUST_POLICY": "{{TRUST_POLICY}}"
}
Risk notes
- Provider-native CLI commands appear only when Hermes activates memory.provider=unifiedmemory.
- API keys stay in env or local secret stores; unifiedmemory.json is non-secret.
Official upstream docs
https://hermes-agent.nousresearch.com/docs/developer-guide/memory-provider-plugin
Scope and capabilities
| Setting | Value |
|---|---|
| Source app | hermes |
| Default container | jeethendra |
| Default scope | own |
| Primary mode | Plugin-based recall and writeback |
Install
From the UnifiedMemory repo checkout:
mkdir -p ~/.hermes/plugins/memory
ln -sfn "$PWD/integrations/hermes-unifiedmemory" ~/.hermes/plugins/memory/unifiedmemory
hermes config set memory.provider unifiedmemory
hermes memory setup
Set the scoped key in the environment expected by the plugin or through the Connections-generated setup bundle.
Verify
Ask Hermes to run its memory setup verification. The check should prove:
- the scoped key is active;
- recall works for
jeethendra; - writeback can store a disposable fact;
- obvious residue is rejected or quarantined;
- Courtroom read works for returned memory IDs.
Output controls
Hermes MCP recall/profile/context tools default to compact output so QA and agent loops do not receive 100KB+ JSON blobs for normal queries. Use these optional arguments when debugging:
| Argument | Default | Use |
|---|---|---|
response_format | compact | Set full only for forensic/debug inspection. |
include_raw | false | Return the uncompressed backend payload. |
diagnostics_only | false | Return source counts and status without bulky memory metadata. |
max_response_bytes | 30000 | Bound compact output for tool consumers. |
Compact output preserves memory IDs, content previews, trust bucket,
candidate sources, evidence links, Courtroom links, and key diagnostics such
as entity_count, profile_count, mesh fallback status, and abstention.
Writeback hygiene
Hermes should retain:
- decisions made during a session;
- completed tool outcomes;
- durable owner preferences;
- reproducible fixes.
Hermes should not retain:
hey,thanks, or emoji-only messages;- chatty filler such as
lol,totally works great,random emoji spam, orignore this, even if the client sends highconfidence; - long assistant explanations as a single memory;
- generic web summaries with no owner/project tie;
- proof/test/diag rows as assistant-visible memory.
Hermes confidence defaults are compatibility hints only. UnifiedMemory's
server-side writeback admission decides trust, profile eligibility, and recall
visibility from content quality, evidence, lifecycle state, and trust gates.
High-confidence junk is preserved as forensic residue, not promoted.
For research sessions, Hermes should call agent_writeback with concise
observed_facts, decisions, or preferences. If auto_extract=true is used,
the runtime extracts candidate research outcomes from the assistant response and
stores them as evidence awaiting promotion instead of storing the transcript.