Hermes Agent 5c9bc14008 ump-recall: Hermes migration + get route fix (2026-07-14)
After moving the canonical ump store from /root/.openclaw/.../state/ump-local
to /root/.hermes/state/ump-local, two related fixes:

1. src/ump-recall-mcp.js (the MCP shim):
   - UMP_DIR fallback updated:  /root/.openclaw/... -> /root/.hermes/state/ump-local
     (parent env always provides UMP_DIR explicitly, but the fallback
     was a footgun if anyone unset it.)
   - tools/call ump.get now routes to the sidecar's GET /get/{urn}
     endpoint via HTTP, with fallback to the stdio child for resilience.
     This replaces the silent-drop pattern where the npx child held
     a stale UMP_DIR and returned "not_found: no record" for everything.

2. scripts/ump_verify.py (new):
   File-layer verifier for ump-write verification. Replaces the
   manual SOP with an executable that has deterministic exit codes:
     0 verified, 2 silent drop, 3 malformed, 4 no store, 5 corrupted
   Reads memory.ump.json directly (independent of any HTTP route),
   supports --exists, --wait N, --list-last N.

3. .gitignore: ignore state/ (runtime cache: access_log.json, graph.json)
   and __pycache__ (eval python tools).
2026-07-13 20:51:47 -07:00
2026-07-13 02:21:03 +00:00

self-directed-learning

Self-directed learning framework for Hermes / Krystie — multi-strategy retrieval over UMP memory, with skill detection, decay, and triadic review.

What this is

A continuous-learning loop for AI agents:

  • Retrieval substrate — multi-strategy (FTS5 + vector + graph) RRF fusion with ACT-R re-ranking, served as an MCP shim so Hermes/Krystie can use it transparently through their existing UMP tool surface.
  • Memory hygiene — nightly decay (per-kind rates, atomic writes, automatic backups), access tracking (frequency + last_accessed_at) feeding the decay and re-ranker.
  • Knowledge graph — entity extraction + typed relations + co-occurrence edges; BFS expansion surfaces related URNs even when the direct text doesn't match.
  • Triadic review — Claude + Codex (via Hermes OAuth / ChatGPT Pro subscription) as independent judges for claims before they're written to long-term memory.
  • Cron-driven framework — skill gap detection, spaced repetition, foraging, reflective journaling, self-measure. All run autonomously and feed back into the retrieval substrate.

Phases shipped

Phase What Tests
1 Sidecar on :4380 + 3-channel RRF baseline 0.500 → 1.000 (+50pp)
2 Graph channel (typed relations + co-occurrence) 12 unique top-5 graph-only wins
3 ACT-R re-ranker 84% top-5 retention, 4/20 #1 changes
4 Decay script 20/20 tests, nightly cron
5 Access tracking 28/28 tests, feeds decay + re-ranker
6 Co-occurrence edges (in code) (tests pending)
7 Triadic review (judge.py) Claude + Codex wired

Stack

  • Language: Node.js 18+ (sidecar, MCP shim), Python 3.11+ (decay, framework scripts)
  • Dependencies: UMP (@universalmemoryprotocol/core 0.1.0), Ollama (snowflake-arctic-embed2 1024-dim), Qdrant (memories_ump collection), Express, undici, MCP SDK 1.29.
  • Repo: http://100.81.59.99/sami7777/self-directed-learning (DNS3 Gitea)
  • Local path: /root/ump-recall/ (directory name kept for stability of running processes; only the repo was renamed)

Run

npm start                          # sidecar on :4380
node src/ump-recall-mcp.js         # MCP shim (stdio)
python3 scripts/ump_decay.py --apply    # nightly decay
python3 scripts/judge.py --claim "..."  # Claude + Codex review
npm test                           # full test suite

Architecture

See /root/.hermes/skills/autonomous-ai-agents/agent-self-improvement-framework/ for the full framework spec.

S
Description
Self-directed learning framework for Hermes/Krystie: multi-strategy retrieval (3-channel RRF + ACT-R re-rank), decay, access tracking, triadic review (Claude + Codex judges). Replaces ump-recall.
Readme MIT 170 KiB
Languages
JavaScript 52.1%
Python 47.9%