Wyrm is the intelligence layer between your AI agent and its memory. It doesn't just store and recall — it blocks repeated mistakes, keeps decisions honest, and learns as a fleet. Deterministic, runs entirely on your machine, no LLM in the hot path.
Persistent memory is table stakes now — every tool can recall the past. The real problem is what agents do with it: they repeat the same mistakes, contradict yesterday's decisions, and in a fleet of subagents nothing one learns ever reaches the rest. Recall doesn't fix that. Judgment does.
A recorded failure trips a PreToolUse firewall before the agent re-runs it, and hands back the antidote. Other tools learn only from success — Wyrm learns from failure too.
Decisions link to the truths they rest on. When a truth is refuted, recalling a decision built on it warns you: "stop — this rests on something we proved wrong."
Every recall returns a determinism receipt: zero generative-LLM calls, zero data egress. Local by construction, not by promise.
# a week ago, this dropped the prod users table. Wyrm remembered. agent › npm run migrate:prod ✖ BLOCKED by wyrm-guard — failure #1 (command: npm run migrate:prod) tried 1×: "ran migrate:prod with no --dry-run; dropped the users table" → antidote: --dry-run first, gate on a backup. The call never ran. agent › wyrm recall "prod migration" #1 prod migration corrupted the DB — use --dry-run first [attestation] deterministic · 0 generative-LLM calls · 0 bytes egress
| Tier (real LoCoMo, 1,982 evidence QA) | recall@5 | recall@10 | MRR | properties |
|---|---|---|---|---|
| no-LLM FTS floor | 52.4% | 59.9% | .393 | offline · zero-cloud · zero-LLM · CI-gated |
| + local vectors (hybrid) | 60.0% | 72.0% | .443 | bundled local model · still zero-cloud |
This is retrieval recall — did Wyrm return a ground-truth supporting turn? — not end-to-end QA accuracy. We don't claim to beat the cloud players' LongMemEval answer scores; we claim the strongest number you can reproduce offline, with the dataset and harness in the repo. Methodology + repro →
wyrm import --from mem0 dump.json wyrm import --from zep export.json wyrm import --from supermemory data.json wyrm import --from letta archive.json # lands in the review queue, never silently trusted
wyrm review
# imported memories stay out of recall until you approve them
# every one is a local SQLite write: 0 LLM, 0 cloudRenders into any harness's native slot (MEMORY.md / AGENTS.md / Cursor / Copilot / Windsurf) with wyrm render.