Find the right memory
Hybrid dense + keyword search, expanded along a memory graph, so the right note surfaces even when the wording has drifted since you saved it.
Under the hood, caveauMEM is a tiered memory engine with hybrid, graph-aware recall and a governed learning loop. This page walks the mechanism end to end — then shows Boris, a live autonomous agent wired into it on every turn.
Everything below is an elaboration of these three: how memory is found, how it is layered, and how it stays trustworthy.
Hybrid dense + keyword search, expanded along a memory graph, so the right note surfaces even when the wording has drifted since you saved it.
Durable knowledge, short-term scratch, and a replayable episodic timeline are kept apart — each recalled when it actually matters.
Per-client and per-user scoping, an encrypted secret vault, and a human-in-the-loop review before anything becomes shared truth.
A single MCP endpoint fronts four memory tiers. The persistent tier is backed by a vector store, a lexical index, and a graph — fused at recall time and packed into a token-budgeted context.
Dense vectors catch meaning; BM25 catches exact terms. Reciprocal Rank Fusion blends them, the top hits seed a graph walk, and a second weighted pass produces one ranked, budgeted context.
Memory that edits itself unsupervised is a liability. caveauMEM captures what agents learn, distills it into candidates, and gates every change behind a human.
Agents flag a note helpful, wrong, outdated, or missing as they work. Raw signals land in a queue — nothing in the corpus changes yet.
A low-cost model clusters the signals and drafts improved notes as candidates. They are proposals only — never auto-embedded into recall.
A curator approves or rejects each candidate in the portal. Only on approval is a note embedded and made recallable. The agent proposes; a human promotes.
Boris is an autonomous strategy agent built on the Hermes runtime, with a cost-efficient Claude Haiku brain. He is not a chatbot with a system prompt — he reads and writes caveauMEM on every turn. Here is the exact wiring.
Before Boris’s brain ever sees a message, a deterministic hook calls memory_bootstrap and recalls his recent episodic timeline, then injects them as context — every session, automatically. (Prompt-only directives proved unreliable; the hook guarantees it.)
Boris’s playbooks are served from the caveauAI skill registry, not baked into the box. Edit a row server-side and the new behaviour ships on his next session — no redeploy, no SSH.
Meaningful exchanges are written back to the episodic tier, so Boris stays coherent across long-running work instead of starting every session cold.
A scheduled review curates his own memory each night and reports the result to Telegram — the governed learning loop, running on autopilot.
Every message Boris receives passes through the same memory-aware path before his brain answers — and a nightly review keeps that memory curated on its own.
Start free in the caveauAI portal, or book a call to scope a sovereign, governed memory deployment — and an agent like Boris — for your team.
| Hybrid recall | Dense embeddings + BM25 lexical, fused with Reciprocal Rank Fusion (k=60) and a private-scope boost. |
|---|---|
| Graph recall | Top hits seed a per-client FalkorDB graph (mem_client_<id>); co-tag and supersedes neighbours are folded in via a second weighted RRF pass. |
| Context assembler | Token-budgeted assembly with anti-starvation reserves across persistent, graph, scratch, and episodic tiers. |
| Memory tiers | Persistent (embedded) + ephemeral scratch (1–7d TTL) + episodic log (30–90d TTL) + exact-key secret vault. |
| Scoping | Per-client (tenant) isolation plus per-user vs shared “company” memory, enforced on every tier. |
| Learning loop | Capture (memory_feedback) → distill (LLM-drafted candidates) → curate (human approve/reject). Only approved candidates are embedded. |
| Encryption | Secret vault is AES-256-GCM at rest; exact-key fetch only, never embedded or searchable. |
| Token scopes | MCP tokens carry memory.read / memory.write / secrets scopes — least privilege per host. |