Skip to content

Proposal: Hermes Agent integration (skill + hook bridge) #2

@elessarrr

Description

@elessarrr

Problem
Hermes Agent (github.com/NousResearch/hermes-agent, ★119k) is a provider-agnostic CLI agent framework — it works with MiniMax, OpenAI, Anthropic, OpenRouter, Nous Portal, and any OpenAI-compatible endpoint. It has no built-in persistent cross-session memory. Every new session starts blank; the agent forgets all context, decisions, and preferences from previous sessions.

Hermes does have a shell-hook system (on_session_start, on_session_end, pre_llm_call, post_llm_call, etc.) and a skills system (.hermes/skills/), but there is no memory integration that uses them. Session transcripts in ~/.hermes/sessions/ are logs, not contextual memory. This is the exact pain point Mnemon solves for Claude Code and OpenClaw, but there is no path for Hermes users.

Proposed solution

Add a mnemon setup --target hermes command (mirroring --target openclaw and --target nanoclaw) that deploys:
1. Hook scripts registered in ~/.hermes/config.yaml under the hooks: block — mapping Mnemon's lifecycle (prime, remind, nudge, compact) to Hermes's hook events (on_session_start → prime, post_llm_call → nudge, etc.)
2. A skill file at .hermes/skills/mnemon/SKILL.md — teaches Hermes Mnemon's command syntax (remember, link, recall)
3. A behavioral guide at ~/.mnemon/prompt/guide.md — rules the agent follows for when to recall and what to remember.

This preserves Mnemon's core principle: the agent's own LLM (whatever provider Hermes is configured to use) supervises memory — it decides what to store. Mnemon handles storage, indexing, and retrieval. Fully local, zero API keys, zero cloud.

Implementation would follow the existing OpenClaw integrator pattern in internal/setup/openclaw.go.

Alternatives considered

  • MCP bridge — Connect Mnemon via Hermes's native MCP client (skills/mcp/native-mcp/SKILL.md). Simpler to wire up but breaks Mnemon's LLM-supervised design. The agent calls mnemon recall as a tool rather than being prompted at lifecycle moments. Memory quality degrades.

  • File injection at session start — Dump session logs into the system prompt each time. Brute-force, expensive in tokens, no intelligent filtering or graph-based recall.

  • Memori / MemOS — Both have MCP clients and would technically work. But Memori requires cloud, and MemOS's local plugin is OpenClaw-centric. Neither preserves Mnemon's fully-local, zero-API-key property.

  • Doing nothing — Not a real solution.

Additional context

- Hermes Agent: https://github.com/NousResearch/hermes-agent (main branch)
- Mnemon repo: https://github.com/mnemon-dev/mnemon (master branch)
- Reference implementation: internal/setup/openclaw.go — Hermes integrator would follow the same pattern
- Hermes hook system docs: agent/shell_hooks.py — supports on_session_start, on_session_end, on_session_finalize, pre_llm_call, post_llm_call, pre_tool_call, post_tool_call, and more
- Hermes skills dir: .hermes/skills/ (confirmed from Hermes Agent's own skill structure)
- Estimated scope: ~400 LOC (integrator + hook configs + skill + docs), isolated from existing functionality
- Both repos are MIT-licensed

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions