Hermes Agent memory: MEMORY.md, hermes-memory-wiki and a shared wiki
Updated 4 min read
Hermes Agent keeps memory per profile: two capped files, MEMORY.md and USER.md, that load into every session, and a SQLite record of past sessions that the agent searches with session_search. The hermes-memory-wiki plugin shows that memory as a wiki in the Hermes dashboard and cannot change it, so a wiki your agents write and share is a separate piece: the bundled llm-wiki skill for local markdown, or a hosted wiki over MCP such as Dexio.
Three things called a Hermes memory wiki
| hermes-memory-wiki plugin | llm-wiki skill | Dexio over MCP | |
|---|---|---|---|
| What it is | A dashboard tab from Nous Research’s official plugins | A bundled skill, research/llm-wiki |
A hosted wiki with an MCP server |
| Who writes to it | Nobody. It reads state.db and the memory files |
The agent, as markdown files | Every connected agent, through MCP tools |
| Where it lives | Your Hermes home | The WIKI_PATH directory, ~/wiki if unset |
A hosted server, reached by URL |
| Shared between profiles | No, it shows one profile at a time | When each profile’s .env sets the same WIKI_PATH on one machine |
Yes, with one API key |
The plugin installs with hermes plugins install hermes-memory-wiki --enable and needs Hermes Agent 0.21 or later. Restart hermes dashboard and open the Memory Wiki tab. It builds subject pages and daily logs from session titles, file paths and tool names, and its Persistent Memory panel lists the MEMORY.md and USER.md entries the way the memory tool parses them. It makes no LLM calls and writes nothing, so use it to audit what a profile carries into each session.
The llm-wiki skill follows Andrej Karpathy’s LLM Wiki pattern. The agent keeps interlinked markdown pages under entities/, concepts/, comparisons/ and queries/, with SCHEMA.md, index.md and log.md at the top, and reads those three before it does anything else in a session. It is a plain directory, so Obsidian or any editor opens it.
How full the built-in memory gets
We run five Hermes profiles (v0.42.8) on one Mac, and none of them changes the default caps of 2,200 characters for MEMORY.md and 1,375 for USER.md. This is what they held on 23 October 2026:
| Profile | First session | Sessions | MEMORY.md | USER.md |
|---|---|---|---|---|
| Engineering and operations | 6 Sep 2026 | 897 | 2,186 characters, 13 entries | 1,367 characters |
| Personal assistant | 25 Sep 2026 | 221 | 2,060 characters, 10 entries | 1,179 characters |
| Personal finance | 1 Oct 2026 | 13 | 1,870 characters, 5 entries | no file |
| Company operations | 7 Oct 2026 | 74 | 2,124 characters, 6 entries | no file |
| Marketing | 13 Oct 2026 | 80 | 818 characters, 2 entries | no file |
The oldest profile is 14 characters short of its MEMORY.md cap and 8 short of its USER.md cap. Four of the five are within 330 characters of the MEMORY.md cap, the youngest of those after 16 days. At the cap, a write that would go over returns an error and the agent has to merge or drop entries before it can save anything new.
So our fleet keeps little in memory. Its shared rules file puts standing rules in each profile’s SOUL.md, facts the agent discovers and that may go stale in memory, and curated context (systems, procedures, decisions) in the wiki. The marketing profile’s whole memory is two entries: where one domain’s DNS is hosted, and which cloud keys to use. Its plan, keyword data and audit log are pages in the shared wiki, which held 115 pages in 13 folders on 23 October 2026.
When Hermes forgets
Memory persists only when the model calls the memory tool. If an entry is missing from the profile’s memories/MEMORY.md, ask again and name the tool.
A save does not show up until the next session, because the memory files load as a frozen snapshot when a session starts. On a chat gateway one chat stays a single session until you send /new.
Each profile has its own memory. hermes -p work reads ~/.hermes/profiles/work/memories/, not ~/.hermes/memories/, and each profile also has its own config.yaml and .env, so an MCP server added in one profile is not in the others.
Hermes also loads project instructions from AGENTS.md (or .hermes.md) in the working directory when a session starts. The AGENTS.md guide covers that file, and the Hermes Agent skills guide covers skills and sharing them between profiles.
Several profiles, one wiki
Our five profiles share one Dexio wiki. Each has the same dexio entry under mcp_servers in its config.yaml: the server’s URL and a bearer header that reads one shared API key from that profile’s own .env. Every change names its profile in the agent field, so a page’s history shows which profile wrote each revision even though all five share a key. To connect a profile, follow Connect your agent in the docs; behind a chat gateway, send /reload-mcp afterwards and the new tools appear with no restart.
If you also run OpenClaw, OpenClaw memory and MCP covers its side, and Hermes Agent vs OpenClaw compares the two.
Sources
- https://hermes-agent.nousresearch.com/docs/user-guide/features/memory
- https://hermes-agent.nousresearch.com/docs/plugins/hermes-memory-wiki
- https://hermes-agent.nousresearch.com/docs/user-guide/skills/bundled/research/research-llm-wiki
- https://hermes-agent.nousresearch.com/docs/user-guide/features/memory-providers
- https://hermes-agent.nousresearch.com/docs/user-guide/profiles
- https://hermes-agent.nousresearch.com/docs/user-guide/features/mcp
- https://hermes-agent.nousresearch.com/docs/user-guide/features/context-files