Persistent memory for AI agents
engram-lite (kenotron-ms/engram-lite) is lightweight
persistent vector memory for AI agents — an Amplifier module and Claude Code plugin
that recalls silently across sessions, so you say something once and it sticks.
First, proof that it's real — then why the blank slate hurts, and how memory fixes it.
46 commits of Python, a 55-function test suite, shipping as both an Amplifier module and a zero-install Claude Code plugin. Version 0.1.0.
So the promise is credible. But why does an agent need memory at all?
tests/An agent is sharp within a session and can absorb your preferences and decisions on the fly. But it wakes up a blank slate every time. engram-lite classifies what matters into seven content types so it can be recalled later.
fact · preference · decision · event · skill · entity · relationship
A durable store underneath, a hot context surface on top — the one architectural idea the whole system leans on.
Storage is only half of it. The other half is that you never see it happen.
capture() writes to the DB / vector layer.
A user-private DB in ~/.engram/ and a project-shared DB in
<project>/.engram/.
MEMORY.md content via a memory-index write action.
Injected via platform hooks, engram-lite operates through a behavioral loop that runs on every turn. Its protocol is explicit: use both layers automatically and silently. Never announce memory operations to the user.
That's the feel. Next: is recall actually smart enough to surface the right thing?
Recall runs two routes and a router picks between them (auto / vector / graph / hybrid / keyword). The architecture is a clean-room adaptation of the Mnemis paper (arXiv:2602.15313) — no copied code, only ideas.
So the memory is smart enough that saying it once is enough.
rrf, k=60).
The silent RETRIEVE→RESPOND→CAPTURE loop remembers across sessions and never announces
a thing. Nine memory_* tools — capture, recall, search, update, forget,
relate, graph_explore, stats, index — are exposed via native function calling / MCP,
so the agent quietly remembers across every future session.
You stop re-explaining. The agent carries what you told it forward.
Built clean-room in about two days by a single developer, Ken Chau, engram-lite is honest about its maturity: early alpha. The value isn't the star count — it's the pattern.
Two silent layers, a hooked loop, dual-route recall — reusable anywhere agents forget.
Primary source: kenotron-ms/engram-lite (primary language Python) · Early Alpha · v0.1.0
Data as of: repo pushedAt 2026-03-05; commit history 2026-03-03 → 2026-03-05.
Commands run:
gh repo view kenotron-ms/engram-lite --json name,description,createdAt,updatedAt,pushedAt,primaryLanguage,stargazerCount,urlgit rev-list --count HEAD (46 commits) · git shortlog -sne --all (46 by Ken Chau)git log --reverse --format='%ai' (first / last commit dates)git show faa7587 --stat (two-layer memory: DB + LLM-authored MEMORY.md)grep -iE 'silent|never mention|two-layer' context/memory-instructions.md (silent protocol)grep -riE 'fastembed|FTS5|BM25|RRF' amplifier_module_engram_lite/ (dual-route retrieval, rrf k=60)grep -A1 '@mcp.tool()' amplifier_module_engram_lite/mcp/server.py (9 memory_* tools)find . -name '*.py' | xargs wc -l (4,015 total LOC; 2,851 in core module)grep -rhE 'def test_' tests/*.py | wc -l (55 test functions) · cat pyproject.toml (fastembed, entry points, alpha status)Primary contributor: Ken Chau <kchau@outlook.com> — 100% of 46 commits (sole contributor).
Gaps & caveats: Tests were not executed this session (55 defs counted; commit messages cite 44 and 59 over time). README performance figures (System-1 <100ms, System-2 <300ms) are documentation assertions, not benchmarked, and are excluded here. README lists 8 tools; code registers 9 (memory_index omitted from README). Author metadata varies (pyproject: "Ken Chow <kenchow@microsoft.com>") — noted, not resolved. PyPI publication not verified. Stars: 0.