If Hermes forgets project context, compacts at the wrong time, loses memories, or starts calling memory/delegation tools on a fresh install, do not treat it as one mystery bug. Treat it as a memory pipeline problem: configuration, session state, auxiliary model health, and profile boundaries all need separate checks.
Quick answer#
To fix Hermes Agent memory and context problems, first verify memory is enabled, then check whether you are in the right profile and session, run a clean /compress or new session when context is too large, and inspect auxiliary model/provider failures before blaming the memory store. If the issue appeared after adding Hindsight, Recall, Obsidian, or another community memory layer, disable that integration and confirm base Hermes memory works again. For teams or bots, isolate experiments with Hermes Agent profiles so one broken memory plugin does not poison your main CLI, Telegram gateway, or Discord gateway.
Recent Hermes community support threads show the same pattern from several angles: people asked how to fix Hermes memory, reported Local hindsight memory installation broke Hermes, saw auxiliary timeout errors that could break compaction and memory tasks, and hit confusing model/session reset behavior. The fix is a checklist, not guesswork.
Symptoms this guide covers#
Use this guide when Hermes:
- Says it does not remember information you already gave it.
- Loses the thread after long work and needs repeated background.
- Fails during
/compress, session resume, compaction, or memory writes. - Calls memory/delegation tools unnecessarily on a new installation.
- Breaks after installing Hindsight, Recall, Obsidian memory helpers, or other local memory plugins.
- Behaves differently in the CLI than in a gateway like Telegram or Discord.
If your issue is broader than memory, start with the general Hermes Agent troubleshooting guide. If you mainly need to understand the architecture, read how Hermes Agent memory works first.
Step 1: Confirm you are in the right Hermes profile#
Memory bugs often turn out to be profile confusion. Hermes profiles isolate config, sessions, skills, memory, and gateway setup. If you created a project profile, a Telegram bot profile, or a worktree agent, the memory you expect may live somewhere else.
Run:
hermes profile list
hermes profile show default
hermes --profile your-profile memory status
hermes --profile your-profile config path
Then check whether the session you are resuming belongs to that same profile:
hermes --profile your-profile sessions list
hermes --profile your-profile --continue
For anything involving secrets, bots, client work, or experimental memory plugins, prefer separate Hermes Agent profiles over one shared environment.
Step 2: Check base memory before third-party memory layers#
Community projects like Recall, Hindsight, Obsidian memory helpers, and local visualization tools are useful, but they add moving parts. When memory breaks after installing one, verify base Hermes first:
hermes memory status
hermes config check
hermes doctor
If the plugin added environment variables, MCP servers, Python packages, or custom hooks, temporarily disable those changes and start a fresh session. You want a simple answer: does Hermes memory work without the extra layer?
A safe recovery sequence is:
hermes memory status
hermes config edit # disable the experimental memory provider or integration
hermes doctor
hermes chat -q "Remember that my test project uses pnpm. What should you remember?"
If that works, reinstall the external memory layer in a throwaway profile before moving it back into your daily setup.
Step 3: Use /compress, not /compact, for large context#
When a long session gets too large, use the actual Hermes slash command:
/compress
Do not rely on invented aliases like /compact. Compression reduces the active context while preserving the important working summary. If a session is already confused, use /compress, ask Hermes to restate the durable project facts, and then continue. If it cannot produce a coherent summary, start a new session and paste the short facts manually.
For repeated long-running work, combine memory with Hermes Agent cron jobs, skills, and compact project checklists. Memory should preserve durable facts; skills should preserve procedures.
Step 4: Inspect auxiliary model and provider failures#
A memory failure can be a provider failure in disguise. The May community scrape included High error: auxiliary timeout can poison cached client and break compaction/memory aux tasks and /model switch reverts silently after session auto-reset. Those are not content problems; they are model/provider reliability problems.
Check:
hermes status --all
hermes config
hermes model
hermes doctor
Then inspect recent logs without printing secrets:
grep -i "memory\|compress\|compaction\|auxiliary\|timeout\|provider\|model" ~/.hermes/logs/agent.log | tail -80
If you are using a paid API key or subscription, read the Hermes Agent API key guide and Hermes Agent cost calculator. Credit exhaustion, rate limits, and provider resets can look like memory bugs because the helper model never completes the compression or recall step.
Step 5: Separate memory from session resume#
Memory and session history are related, but they are not the same thing.
- Memory stores durable preferences and project facts.
- Sessions store conversation history and resumable threads.
- Skills store reusable procedures.
- Profiles decide which config, sessions, skills, and memory are visible.
If Hermes forgot a durable fact, inspect memory. If Hermes resumed the wrong conversation, inspect sessions:
hermes sessions list
hermes sessions browse
hermes --resume SESSION_ID
hermes --continue
If you want Hermes to repeat a workflow reliably, write a skill instead of stuffing every step into memory. The Hermes skills guide and skills hub guide show the better pattern.
Step 6: Fix gateway-specific context surprises#
If memory works in the CLI but fails in Telegram, Discord, or another gateway, check the gateway runtime separately. Gateway sessions can have different source tags, profile config, working directory, and platform delivery constraints.
Run:
hermes gateway status
hermes status --all
tail -120 ~/.hermes/logs/agent.log | grep -i "telegram\|discord\|memory\|session\|profile\|compress"
For messaging bots, do not put every trust level into one profile. A client Discord bot, a personal Telegram bot, and a local CLI can each use separate profiles with separate skills and memory. If you do not want to maintain VPS, Docker, launchd, gateway restarts, and topic routing yourself, the practical hosted path is FlyHermes instead of a hand-rolled always-on gateway.
Step 7: Repair a broken memory setup safely#
Use this order when you need to recover without losing more context:
- Export or copy the facts you still need from the current session.
- Run
hermes doctorandhermes memory status. - Disable new memory plugins or MCP servers added right before the break.
- Start a new session in the same profile.
- Re-add only the durable facts, not the whole transcript.
- Convert repeated setup steps into a skill.
- Re-enable third-party memory layers one at a time in a test profile.
Do not delete ~/.hermes blindly. That can erase sessions, skills, profile state, gateway config, and auth. If you need isolation, create a clean profile instead:
hermes profile create memory-debug
hermes --profile memory-debug setup
hermes --profile memory-debug memory status
When to use FlyHermes instead of debugging memory plumbing#
Self-hosted Hermes is powerful because you control profiles, local files, skills, MCP servers, gateways, and memory backends. That also means you own the operational surface area. If your real goal is to have an always-on agent that remembers your preferences and works from Telegram or Discord without maintaining Docker, VPS services, logs, and restarts, FlyHermes is the simpler commercial route.
Use self-hosting when you want maximum control over the machine, gateway, and memory stack. Use FlyHermes when you want the agent outcome without becoming the platform operator. If you are still getting started, follow how to install Hermes Agent and verify persistent memory before adding third-party memory layers.
Memory troubleshooting checklist#
Before asking for help, capture this checklist:
- Hermes version and profile name.
- Whether the issue happens in CLI, Telegram, Discord, or all of them.
- Output of
hermes memory statusandhermes doctorwith secrets removed. - Whether
/compressfails or only recall fails. - Recent changes: provider switch, API key, Hindsight, Recall, MCP server, plugin, gateway restart, or profile move.
- The exact behavior: forgotten fact, wrong session, failed memory write, timeout, or context too large.
That checklist turns vague memory frustration into a reproducible support request.