Persistent SQLite memory for Hermes and OpenClaw: Facts, snippets, lessons, entities, relations, provenance (read-only audit-chain reconstruction), finer sou...
Memory
Openclaw Auto Memory Skill
Try itUnified memory platform for Hermes, OpenClaw and AI agents — persistent long-term memory, cross-skill sharing, automated capture, governance rules, optimizat...
What it does
Unified memory platform for Hermes, OpenClaw and AI agents — persistent long-term memory, cross-skill sharing, automated capture, governance rules, optimization, multi-tenant dashboard with pgvector search.
The skill document
HermesClawZero Auto Memory
Automatically captures conversation context to HermesClawZero DB so the agent remembers across sessions. Loads relevant memories on fresh chats and supports scheduled DB maintenance.
🌌 New in v1.4.0: Interactive Memory Galaxy dashboard — full-screen animated Canvas visualization with tenant orbits, glowing nodes, nebula shader, hover info cards, zoom & idle rotation.
⚡ New in v3.0.0 — Enforce Governance Layer — A priority-based governance system that makes agent behavior more stable and safe. Enforce rules sit above memory and cannot be ignored by the agent.
🧠 Shared Brain
🤖 One‑Click Install
Paste this into Hermes, OpenClaw, or any AI agent:
Install this project from GitHub:
https://github.com/SunMe1977/HermesClawZero-ConfigSidecar
⬆️ The agent clones, configures, and starts everything.
After ~30s open → http://localhost:8010/dashboard
🧠 Shared Brain — Hermes and OpenClaw share the same memory store simultaneously.
v3.0.0 führt enforce-Regeln ein. Alte Memory-Regeln entfernt. Enforce ist jetzt die verbindliche Governance-Schicht.
Both agents' memories appear side by side in the Dashboard with platform icons (⚡ Hermes, 🐙 OpenClaw). Each sees only its own scope by default, the "All scopes" view gives you the complete shared brain. No extra setup needed.
📄 See
install_via_agent.mdfor the detailed agent instructions. | Step | What happens | |------|-------------| | 1 | Repo cloned +.envconfigured | | 2 | Docker Compose starts PostgreSQL (pgvector) + Ollama + API | | 3 | Dashboard live on:8010| | 4 | Memory skill activated in Hermes | | 5 | Auto-import: All existing Hermes sessions + messages are migrated into the Sidecar DB on first API startup | | 6 | Auto-capture begins on next conversation |
Core capabilities
| Area | What it does |
|---|---|
| Persistent long-term memory | SQLite chat data is synced to PostgreSQL with vector embeddings |
| Multi-tenant | Hermes, OpenClaw and other agents share the same DB, isolated by scope |
| Automated capture | New conversations are captured and embedded automatically |
| Memory optimization | Built-in tiering (hot/warm/cold), decay, archiving, consolidation |
| Configurable governance | Enforceable skill rules (scripts/enforce_loader.py / scripts/policy_plugin.py) so agents follow critical instructions |
| Dashboard & visualization | Memory Galaxy, health monitoring, search, manual review, click-to-edit |
| Vector search | pgvector-powered semantic search across all memories |
| Modular architecture | FastAPI + Docker Compose, designed for self-hosted deployment |
Manual start (if you don't have an agent):
git clone https://github.com/SunMe1977/HermesClawZero-ConfigSidecar.git
cd HermesClawZero-ConfigSidecar
setup.bat # Windows (or: ./setup.sh on Linux)
start.bat # Windows (or: ./start.sh on Linux)
⚠️ Privacy & Consent
By activating this skill you consent to automatic memory capture.
- Data stays local — all processing runs via the Sidecar API on your machine; no third-party data sharing
- Captures structured facts — the agent summaries and stores key information, not raw chat logs
- Cron jobs (nightly gardener, daily reminder) are only created when you explicitly ask to set them up
Script Path
# The CLI lives alongside the sidecar, NOT in the skill directory:
python C:\dev\HermesClawZero-ConfigSidecar\memory.py ""
Config is read from .env or env vars (MEM_PUBLIC_URL, API_KEY) automatically.
🔄 Auto-Capture Cron (Setup on Install)
When a user runs the one-click install (or says "install this skill"), set up these cron jobs automatically:
A. Session Memory Capture — every 30m
hermes cron create \
--name "hermes-auto-capture" \
--schedule "30m" \
--prompt "Review the recent conversation and capture any important facts, preferences, decisions, or project details using memory.py capture. Skip small talk, greetings, and already-captured info." \
--skills hermesclawzero-memory
B. Nightly Memory Gardener (auto-tagging)
hermes cron create \
--name "hermes-memory-gardener" \
--schedule "0 3 * * *" \
--prompt "Run python memory.py gardener to auto-tag uncategorized memories. Report only errors." \
--script "C:\dev\HermesClawZero-ConfigSidecar\gardener.py" \
--no-agent true
C. Daily Reminder (opt-in, ask first)
Only if user says yes:
hermes cron create \
--name "hermes-daily-reminder" \
--schedule "0 9 * * *" \
--prompt "Summarize yesterday's top memories and remind user of open items." \
--skills hermesclawzero-memory
All three run silently — the user won't see cron output unless something fails.
1. Auto-Load on Fresh Chat (Session Start)
When: Every new session begins (you receive context that it's a fresh chat).
What to do:
- Silently run:
python C:\dev\HermesClawZero-ConfigSidecar\memory.py search "user profile preferences current project state" 5 - Absorb the returned context internally.
- Do not output raw JSON or mention the search to the user unless they explicitly ask.
2. Auto-Capture — Deterministic Triggers
When to capture (run memory.py capture "..." immediately):
| Trigger | Example | What to capture |
|---|---|---|
| New fact stated | "I live in Berlin" | "User lives in Berlin" |
| Preference revealed | "I prefer dark mode" | "User prefers dark mode in all UIs" |
| Instruction given | "Call me Hans" | "User's name is Hans, goes by Hans" |
| Project detail shared | "Working on DiskRaptor v0.3" | "Current project: DiskRaptor v0.3, focus on UI tests" |
| Decision made | "Let's go with PostgreSQL" | "Chose PostgreSQL for the data layer" |
| Error/blocker mentioned | "The build fails on Windows" | "DiskRaptor: build fails on Windows, needs investigation" |
| Tool/config change | "I set up Ollama on port 11435" | "Ollama configured on port 11435" |
| User corrects you | "No, the port is 8080 not 3000" | "Corrected: server runs on port 8080" |
How to capture:
python C:\dev\HermesClawZero-ConfigSidecar\memory.py capture ""
# Optional: pass a scope_id for logical grouping
python C:\dev\HermesClawZero-ConfigSidecar\memory.py capture "" "project_name"
Do NOT capture when:
- User is just making small talk ("hello", "thanks", "ok")
- User is asking a question (capture the answer/fact, not the question)
- User is giving multi-turn instructions that aren't final yet (wait for resolution)
- The information is already captured (avoid duplicates)
- The information is temporary/throwaway ("let me try something real quick")
Rule of thumb: If you'd want to remember this when a different session starts next week → capture it. If it's only useful right now → skip it.
3. Full Chat History Sync (On Request)
When: User explicitly asks to back up the session ("save this chat", "backup session").
What to do:
- Use
sessions_historyto get the current visible session. - Format messages into a text summary.
- Execute:
python C:\dev\HermesClawZero-ConfigSidecar\memory.py autosave "" "chat_backup.md"
4. Automated Database Maintenance (Cron Jobs)
When: User asks to "setup memory background jobs" or "enable memory maintenance".
Create these cron jobs:
A. Nightly Memory Gardener (Auto-tagging):
- Name:
hermes-memory-gardener - Expression:
0 3 * * *(daily 3:00 AM) - Session target: isolated
- AgentTurn message:
exec python C:\dev\HermesClawZero-ConfigSidecar\gardener.py
B. Daily Memory Highlight (Telegram Push):
- Name:
hermes-daily-reminder - Expression:
0 9 * * *(daily 9:00 AM) - Session target: isolated
- AgentTurn message:
exec python C:\dev\HermesClawZero-ConfigSidecar\daily_reminder.py
Current cron jobs already exist for both (checked during setup).
Quick Reference
# Load context (session start, silent):
python C:\\dev\\HermesClawZero-ConfigSidecar\\memory.py search "user profile preferences current project state" 5
# Save a fact (deterministic triggers above):
python C:\\dev\\HermesClawZero-ConfigSidecar\\memory.py capture "" [scope_id]
# Backup session (on request):
python C:\\dev\\HermesClawZero-ConfigSidecar\\memory.py autosave "" [filename]
If you enjoy this skill, consider sharing your experience —
a short video review, a tweet, or a TikTok post helps others discover it.
🙌 Contributions Welcome
Contributions of all kinds are welcome —
feel free to open PRs or issues.
See CONTRIBUTING.md for code style, commit conventions, and PR workflow.
Related skills
Long-term memory for OpenClaw agents — SQLite hybrid recall (FTS5 + keyword + associative expansion + optional LLM embeddings), raw/curated anchors, session...
Scaffold, sanitize, or share an OpenClaw multi-agent memory system with a reusable workspace, memory-lancedb-pro configuration, role prompts, task-board conv...
Inspect, back up, search, export, and update OpenClaw long-term memory stored with MemoryOS. Use when Codex needs to manage MemoryOS memory files for an Open...
Persistent memory and self-improvement for AI agents — writes and refines its own memory files over time.
Tự tiến hóa bộ nhớ dài hạn MEMORY.md và đóng gói kỹ năng tự động.