Hermes Agent forgets things mid-conversation

Why a long Hermes session can lose earlier details after context compression, and how to keep the important parts in view.

Docs-backed2 min read · Reviewed Oct 20, 2026

What you see

Deep into a long session, Hermes stops honouring an instruction you gave early on, asks again for a file path you already shared, or contradicts a decision from an hour ago. Sometimes it follows a message saying context was compressed, or you notice the session title gained a #2.

Likely causes

Every model has a fixed context window, so a long session can't keep every word forever. Hermes handles this by compressing: it keeps the start and the most recent turns verbatim and replaces the middle with a summary written by a model. That keeps the session usable, but a summary is lossy, and small details from the middle are the first to go.

  • Automatic context compression ran. By default it triggers at 50% of the context limit (75% for models under 512K), keeps the first 3 and at least the last 20 messages intact and summarises the middle. Details that lived only in the middle can be lost or blurred in the summary.
  • The compression model's context window is smaller than your main model's. The docs warn that in this case middle turns are dropped without a summary.
  • Hermes misdetected the model's context length (common with local servers), so compression fires at the wrong point or requests overflow.
  • You expected something to be remembered in memory, but memory writes only appear in the prompt from the next session.

Check this first

  • /context or /usage: how full is the window, and what limit has Hermes detected? The startup line also shows it.
  • hermes config get compression.threshold and hermes config get auxiliary.compression.model.
  • hermes sessions list: a numbered continuation (#2, #3) means compression created a linked session.
  • Is the forgotten detail a durable fact (belongs in memory or a context file) or session-specific (belongs in the conversation)?

Fix

  • Restate the key constraint in a fresh message; recent turns are protected from compression.
  • Put standing instructions in a context file such as AGENTS.md rather than an early chat message. Context files are loaded every session instead of competing with chat history.
  • Ask Hermes to search the earlier session: session_search returns the raw original messages, not the summary.
  • If you use a separate summariser, make sure its context window is at least as large as the main model's, or leave auxiliary.compression.model empty to use the main model.
  • Fix context detection by setting context_length under model: in config.yaml; for local servers, match the server's own context size.
  • Tune compression.threshold or compression.protect_last_n if your work needs more verbatim history. compression.* changes apply on the next message, even on a running gateway.
  • Break long work into separate sessions with /new at natural boundaries, and save conclusions as you go.

If it still fails

If even recent instructions are ignored, the problem is probably not compression: run /status to confirm which model is answering (a fallback provider may have taken over for the turn) and try the same prompt in a fresh session. If you see 'compression could not reduce the rebuilt request', the docs say the server's real window is likely smaller than configured. For very long-running projects, consider an external memory provider or a project record file the agent updates explicitly, so important decisions never depend on chat history alone.

Primary sources

Spotted something wrong or out of date? Tell us on X at @HermesWatcher (opens in a new tab) and we will fix it.

New Hermes Agent updates every day on X. Follow @HermesWatcher

Not your problem?

Browse all troubleshooting guides or search by symptom. For hands-on help, see services.

Liked this guide?

Every Hermes Agent change that matters, explained in five minutes.

We'll only use your email to send the newsletter. Unsubscribe anytime. Privacy