Chat resets every thread. Liminal memory is designed to survive sessions — searchable notes, hybrid recall, success recipes, and optional overnight consolidation.

Layers of memory

  1. Typed notes (`remember`)

    Keys like reflection:…, fact:… stored in .agent_notes.json.
  2. Hybrid recall

    BM25 + optional embeddings (AGENT_EMBED_MODEL) via recall_relevant.
  3. Recipe library

    Successful multi-tool turns (≥4 tools, good outcome) stored as reusable patterns — not chat fluff.
  4. Trajectory writes

    Zero-LLM causal summaries at turn end when enabled.
  5. Obsidian vault

    Optional vault_* tools for human-readable long-term notes.

Contradictions and decay

memory_rank detects conflicting notes. Auto-dream can prune stale entries only when you explicitly allow deletes — we default to conservative.

What memory is not

  • Not training on your code
  • Not a cloud profile tied to your email
  • Not automatic "the agent knows everything" — the model still must call recall_relevant
BM25
Always available
+Vector
When embed model set
Graph
Optional wikilinks
Harness architectureWhere memory fits in the ReAct loop.

Try memory on a real repo

Install Liminal, run a task, then `recall_relevant` in the next session.

— The Vireon Dynamics team