Files
Bagas Purwa Sentika 0355858596 docs: update project state through Phase 3
Phase 2: memory, session search, git worktree configured
Phase 3: Telegram gateway connected, DM pairing approved
Phase 4: custom skills created (aws-diagnostics, jira-query, confluence-search, bitbucket-pr)
2026-06-14 12:02:04 +08:00

2.9 KiB

Hermes Agent: Memory System Deep Dive

Built-in Memory

MEMORY.md (Agent's Notes)

  • Capacity: 2,200 chars (~800 tokens)
  • Stores: environment facts, project conventions, lessons learned, completed work
  • Format: frozen snapshot at session start in system prompt
  • Tool: memory with actions add/replace/remove
  • Auto-saves: agent proactively saves facts it discovers
  • Compaction: when full, agent consolidates or removes entries

USER.md (User Profile)

  • Capacity: 1,375 chars (~500 tokens)
  • Stores: preferences, communication style, expectations
  • Write gating: memory.write_approval: true requires approval before saves
  • FTS5 full-text search on all past conversations
  • Unlimited storage (all sessions in SQLite)
  • session_search tool for the agent; hermes sessions list for the user
  • ~20ms queries, no LLM call cost for search

External Memory Providers (8 total)

Provider Storage Cost Tools Best For
Honcho Cloud Paid 5 Multi-agent, cross-session user modeling
OpenViking Self-hosted Free 5 Structured knowledge hierarchy
Mem0 Cloud Paid 3 Hands-off auto extraction
Hindsight Cloud/Local Free/Paid 3 Knowledge graph + entity relationships
Holographic Local SQLite Free 2 No external deps, trust scoring
RetainDB Cloud $20/mo 5 Teams using RetainDB
ByteRover Local/Cloud Free/Paid 3 Portable CLI-based memory
Supermemory Cloud Paid 4 Semantic recall + session graph

Phase 2 start: Built-in memory only — sufficient for ~15 env facts + ~10 user preferences.

If more capacity needed: Holographic (local SQLite + FTS5, zero external deps) or Honcho (cross-session user modeling with dialectic reasoning, good for platform engineering context that spans multiple projects).

Key Settings

memory:
  memory_enabled: true
  user_profile_enabled: true
  memory_char_limit: 2200
  user_char_limit: 1375
  write_approval: false     # true to require approval before saves
  nudge_interval: 10        # turns between save nudges
  flush_min_turns: 6        # save memories on exit/reset after N turns

What the Agent Auto-Saves

The agent proactively saves:

  • User preferences ("prefers TypeScript" → USER.md)
  • Environment facts ("this server runs Debian 12" → MEMORY.md)
  • Corrections ("don't use sudo for Docker" → MEMORY.md)
  • Conventions ("project uses tabs" → MEMORY.md)
  • Completed work ("migrated DB from MySQL to PG" → MEMORY.md)

What It Skips

  • Trivial/obvious info
  • Easily web-searchable facts
  • Raw data dumps
  • Session-specific ephemera
  • Info already in context files

Memory Write Approval Flow

# When write_approval: true:
# CLI: prompts inline
# Gateway: stages for /memory pending → /memory approve <id>

Toggle at runtime: /memory approval on|off