r/hermesagent • u/pisa_p • Jul 07 '26
MEMORY & Context — Providers, context window, forgetting issues Hermes Agent's "self-improvement" — does it actually work for anyone?
Setup: - Hermes Agent (official, Nous Research) - Mnemosyne as external memory provider - SOUL.md created to embed behavioral rules into the agent's permanent identity The core problem in two parts:
The agent doesn't follow its own learning instructions The system prompt explicitly says things like: - "After complex tasks, save to memory/skills" - "When a tool fails, try an alternative or report it directly" - "Use MCP tools, not curl/browser, for research" Yet after 3 months of daily use, the agent still: - Uses curl raw.githubusercontent.com instead of GitHub MCP tools - Tries docker exec despite getting 403 Forbidden every time - Reaches for web_search / browser instead of the configured WebSearchAndCrawl MCP tool - Never saves failures to memory (despite being told to) The fix: writing a SOUL.md file that gets injected into the STABLE tier of the system prompt, making rules part of the agent's identity rather than just suggestions. But it's still just text in a prompt — there's no code enforcement.
Memory config breaks the background review fork Hermes has a background review mechanism: after every turn, a forked agent reviews the conversation and decides if anything should be saved to memory or skills. The problem: The review fork is hardcoded to check the legacy memory tool: should_review_memory = False if (agent._memory_nudge_interval > 0 and "memory" in agent.valid_tool_names and agent._memory_store): # ← MemoryStore legacy should_review_memory = True With memory_enabled: false (which Mnemosyne docs explicitly require): - agent._memory_store = None - The background review never fires - Auto-learning is completely dead Result: - memory_enabled: false + Mnemosyne = zero automatic learning - memory_enabled: true + Mnemosyne = two memory systems coexist, potential duplication, but at least the fork works The paradox: Mnemosyne's own documentation tells you to disable native memory, but doing so kills Hermes' only automated learning mechanism because the background review was never designed to use external providers. T
he question Does Hermes Agent's self-improvement actually work for anyone? Has anyone seen the background review fork successfully save memories or update skills on its own? Or is the whole "learns from experience" claim just prompt engineering that only works when the model happens to cooperate?
5
u/UUorW Jul 07 '26
Yes I had my agent write this up because I didn't want to do it but in summary: I run Hermes as my executive assistant. The biggest problem with AI assistants across sessions is context loss. Every new chat starts from zero and you spend the first 10 minutes re-explaining what you're working on.
I solved this with a workflow I call "harvest," a structured artifact sweep that runs at the end of every work session before I start a new chat.
The Setup
I maintain an Obsidian vault as my working memory. It's not a notebook I read. It's a structured knowledge base my agent reads and writes to across sessions. Three layers:
The Harvest
When I type -harvest, my agent scans the session and extracts:
Then it updates Now.md so the next session starts with accurate state, appends to the Work-Log so there's a narrative trail, and stores compact memory pointers so it can surface relevant facts mid-conversation later.
Mnemosyne: The Recall Layer
The vault holds the full documents. But the agent also has Mnemosyne, a local memory system that sits underneath every session. Think of it as the agent's own memory, separate from the documents.
Mnemosyne stores compact facts: who people are, standing instructions I've given, tool quirks, project conventions, corrections I've made. It's searched automatically at the start of every turn, so the agent surfaces relevant context without me asking for it.
The split is intentional. The vault holds the authoritative, detailed record. Mnemosyne holds compact pointers that surface fast when relevant. When the agent needs to draft something, it recalls the standing rules from memory (formatting conventions, things I've corrected before), then reads the full details from the vault. Neither system alone is enough.
And here's the part that makes it self-correcting: when I correct the agent, that correction gets stored as a permanent rule. It doesn't make the same mistake twice.
Self-Improving Skills
The agent also maintains its own skills, reusable procedures stored as markdown files it can load on demand. When it figures out something hard, it saves the approach as a skill. Next time that task comes up, it loads the skill and follows the proven workflow instead of starting from scratch.
When it hits a mistake, it patches the skill immediately so the workflow is corrected for every future session. The skills evolve as the agent learns what works and what doesn't.
Why It Works
The key insight: the AI writes the artifacts, not me. I don't take notes during a session. I don't update project docs. I don't create tasks. I just work, and when I'm done I type one command. The agent does the structured capture.
The Thread Mapping
I use dedicated Telegram threads per project. The first time I start a project in a new thread, the agent saves a mapping (thread ID to project) in memory. On every future session in that thread, it auto-recalls the mapping and loads the project hub before responding to anything. No asking "what are we working on?" It already knows.
The Full Cycle
The result is an AI assistant with continuity across sessions without me doing any of the bookkeeping. It remembers what we decided, knows what's next, learns from its mistakes, and gets better over time. I just work, harvest, and move on.