Memory hygiene skills for Hermes Agent — dreaming (3-phase consolidation)
Overview
Memory hygiene skills for Hermes Agent that work with — built-in MEMORY.md and Holographic. These are the memory-agnostic versions of the original hermes-memory-skills. They auto-detect which memory provider is active and route operations to the correct toolset. The original skills assume the built-in memory() tool — they read/write MEMORY.md directly. That works great for the default backend, but Hermes Agent supports 8 external memory providers. Holographic, the most interesting one, stores facts in SQLite with HRR vector algebra and trust scoring. It has completely different tools (fact_store, fact_feedback), no character limit, and no § delimiter format.
README
Hermes Agent Memory Skills (Memory-Agnostic)
Memory hygiene skills for Hermes Agent that work with any memory backend — built-in MEMORY.md and Holographic.
These are the memory-agnostic versions of the original hermes-memory-skills. They auto-detect which memory provider is active and route operations to the correct toolset.
Why Memory-Agnostic?
The original skills assume the built-in memory() tool — they read/write MEMORY.md directly. That works great for the default backend, but Hermes Agent supports 8 external memory providers. Holographic, the most interesting one, stores facts in SQLite with HRR vector algebra and trust scoring. It has completely different tools (fact_store, fact_feedback), no character limit, and no § delimiter format.
Rather than making users choose between backends OR skills, these skills detect the active backend at runtime and adapt:
| Backend | Detection | Phase 2 tool | Capacity model | Bloat handling |
|---|---|---|---|---|
| Built-in (default) | memory.provider empty/null |
memory() |
2,200 char limit | Phase 2.5 Condensation (built into dreaming) |
| Holographic | memory.provider: holographic |
fact_store() + fact_feedback() |
Trust scores (0.0–1.0) | fact_feedback(action='unhelpful') decay |
| Honcho, Mem0, etc. | Detected but unsupported | Falls back to built-in memory() |
Built-in limits apply | Built-in condensation |
Skills
🌙 Agent Dreaming (Memory-Agnostic)
Three-phase background memory consolidation — same Light/Deep/REM structure as the original, but with backend detection as Phase 0, dual routing in Phase 2, and a built-in Phase 2.5 Condensation that replaces the deprecated memory-lean-check skill.
Phase 0: Detect backend (built-in or holographic)
Phase 1: Light — review sessions, stage candidates
Phase 2: Deep — score candidates, promote via correct backend tools
Phase 2.5: Condensation — trim bloat / decay stale facts (built into dreaming)
Phase 3: REM — extract patterns, propose structural changes
What’s different from the original:
- Phase 0 backend detection from
config.yaml - Phase 2 routes to
memory()orfact_store()/fact_feedback()automatically - Capacity check adapts: char limit for built-in, trust score distribution for holographic
- New entries in holographic always include
entitiesfor compositional recall - Phase 2.5 Condensation built in — no separate
memory-lean-checkskill needed - Honcho/Mem0/other backends gracefully fall back to built-in
Installation
# Clone the repo
git clone https://github.com/nexus9888/hermes-memory-skills.git
cd hermes-memory-skills
# Copy the agnostic dreaming skill into your Hermes skills directory
cp -r agent-dreaming-agnostic ~/.hermes/skills/management/
# Verify it's installed
hermes skills list | grep agnostic
Or install directly from the repo:
hermes skills tap add https://github.com/nexus9888/hermes-memory-skills
hermes skills install agent-dreaming-agnostic
Cron Setup
Recommended schedule (works regardless of backend):
# Dream — handles both promotion AND condensation
hermes cron create \
--schedule "0 */6 * * *" \
--name "agent-dreaming" \
--skill agent-dreaming-agnostic \
"Run memory consolidation with the active backend"
No separate lean-check cron needed. Phase 2.5 Condensation runs as part of dreaming whenever capacity thresholds are breached (built-in >60%) or every cycle (holographic).
⚠️ Cron Limitation: Memory Providers Unavailable
Detection works, but promotion to holographic is blocked in cron.
Hermes Agent’s cron scheduler hardcodes
skip_memory=Truefor all cron jobs (cron/scheduler.py:1686). This disables the entire memory subsystem —memory(),fact_store, andfact_feedbackare all unavailable.
Context Holographic tools Built-in memory()File patching Interactive session ✅ fact_store/fact_feedback✅ ✅ Manual run ( hermes cron run)✅ ✅ ✅ Scheduled cron ❌ blocked by skip_memory=True❌ blocked ✅ fallback What this means in practice:
- Phase 0 detection correctly identifies holographic ✓
- Phase 2 promotions degrade to direct
patchon MEMORY.md (works, just not holographic)- Holographic facts from interactive sessions are never condensed by cron runs
- Built-in MEMORY.md stays healthy via file patching
Workarounds:
- Increase cron frequency — daily catches MEMORY.md bloat before it hits 80%+
- Run manually —
hermes cron runuses the interactive toolset (holographic available)- Switch to built-in —
hermes memory offeliminates the split-brain entirely- Hybrid — keep holographic for interactive sessions, accept MEMORY.md patching for cron
This is a Hermes core limitation (tracked in NousResearch/hermes-agent#34094, #18885), not a skill bug.
Requirements
- Hermes Agent (any version with
memorytool) session_searchtool enabledllm-wikiskill installed (for wiki pointer creation in Phase 2)- For Holographic backend:
memory.provider: holographicin config.yaml + plugin installed
How It Detects the Backend
The skill reads memory.provider from $HERMES_HOME/config.yaml:
# Built-in (default — no provider set):
memory:
memory_enabled: true
# Holographic:
memory:
provider: holographic
The detection logic:
memory.provider == "" or null → built-in
memory.provider == "holographic" → holographic
memory.provider == "honcho" or "mem0" or ... → built-in (fallback)
Fallback is intentional — better to write to MEMORY.md than to nothing.
Architecture
┌─────────────────────────────────────────────────────┐
│ agent-dreaming-agnostic │
│ │
│ Phase 0: Backend Detection │
│ └─ read memory.provider from config.yaml │
│ │
│ Phase 1: Light (same regardless of backend) │
│ ├─ session_search() → recent sessions │
│ ├─ deep-dive signal sessions │
│ └─ stage candidates → dream artifact │
│ │
│ Phase 2: Deep (backend-routed) │
│ ├─ score candidates (4 dimensions) │
│ ├─ built-in → memory() tool │
│ ├─ holographic → fact_store/fact_feedback │
│ └─ post-promotion capacity check │
│ │
│ Phase 2.5: Condensation (built in) │
│ ├─ built-in: merge/shorten/remove bloat │
│ └─ holographic: trust decay + contradiction check │
│ │
│ Phase 3: REM (pattern extraction) │
│ ├─ cross-dream pattern detection │
│ ├─ propose structural changes │
│ └─ user approval gate │
└─────────────────────────────────────────────────────┘
License
MIT — same as the original hermes-memory-skills.
Contributing
This is a shared workspace. If you add support for Honcho, Mem0, or another backend:
- Update Phase 0 detection with the new provider
- Add Phase 2 routing for the new backend’s tools
- Update the compatibility matrix in SKILL.md
- Test with that backend active
PRs welcome.
Recommended Tools
Try a different keyword or remove a filter.
Install
npx skillfish add nexus9888/hermes-memory-skills