Recommended Free Tools
An AI agent that remembers across sessions usually needs three different kinds of memory working together: fuzzy recall of related past material, compressed summaries of long histories, and exact structured state such as open tasks, user settings, and stated facts. A DEV Community essay by Priyesh Dave argues that vector retrieval alone cannot reliably preserve that state, and it uses jarvix-memory and “Engram” as examples. The three-layer split is a useful way to think about the design, but it is an architectural framing rather than a proven rule that every agent needs exactly three layers. The essay’s project comparisons also need care, because the names it uses point to more than one codebase.
Why retrieval alone falls short
A vector index answers the question “what is semantically similar to this request?” That is valuable when an agent needs to recall that a user once discussed a related outage or preference. It is a poor fit for questions with a single correct answer, such as which deployment target the team chose last Tuesday or whether a ticket is still open. Exact values can be diluted among similar passages, and a long history can bury the one decision that still governs the current task. The essay’s core claim is that these gaps need separate mechanisms, not a bigger index.
As an Amazon Associate I earn from qualifying purchases.
The three layers
The essay groups agent memory into three broad roles. Each one covers a failure the others handle poorly.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Vector retrieval for fuzzy recall
Embeddings let the agent find historical items that are related in meaning even when the wording differs. This layer is good at surfacing forgotten context. It is weak at certainty: a retrieved passage tells the agent what was said, not whether it still holds.
#1 Best Overall
Generated summaries for compressed context
A running summary condenses a session or long history into a shorter block that fits in the prompt. It keeps the narrative arc and the general direction of the work. Summaries drop detail by design, so they should not be the only place an exact number or name lives.
Structured storage for precise state
Tasks, profiles, settings, and similar facts are stored as explicit records that can be read, updated, and queried exactly. This is where “the status is blocked” or “the user prefers metric units” should live, because it can be overwritten when the state changes.
The read-and-write cycle the essay proposes
The essay describes a loop rather than a single lookup. The steps below are the pattern it proposes, not a guarantee that any given implementation performs every step.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitches- Store new messages and state changes as they happen.
- Retrieve relevant vectors for fuzzy recall.
- Retrieve relevant structured facts for exact state.
- Load the current generated summary.
- Assemble the prompt from those three inputs.
- Persist what the agent did and what changed, so the next session starts from updated state.
When you read a memory project, check which of these steps it actually implements. Some projects handle storage and retrieval well but leave summarization or state updates to the host application.
jarvix-memory: two descriptions, two storage stories
The essay describes jarvix-memory as using a vector database, JSON storage, and LLM-generated summaries. A Glama mirror of the repository gat45/jarvix-memory gives a different and broader description. The table separates the two. The mirror is a third-party copy, and neither description was checked against a specific repository revision or by running the code.
| Attribute | DEV essay (Priyesh Dave) | Glama mirror of gat45/jarvix-memory |
|---|---|---|
| Storage | Vector database and JSON storage | Local SQLite storage |
| Summaries | LLM-generated summaries | Not stated |
| Memory areas | Not stated | Episodic, semantic, procedural, decision, and graph |
| Interfaces | Not stated | Python, MCP, and web interfaces |
| Verification and provenance | Not stated | Verification, experiments, provenance, and negative memory |
The two accounts disagree on storage: a vector database plus JSON in one, SQLite in the other. That disagreement is a practical reason to check the repository and commit you intend to run, rather than trusting either description.
Which “Engram”? The name points to different projects
The essay describes Engram as using active and inactive shards, event-triggered updates, and hierarchical routing. Those features do not appear in the two Engram projects found in the available sources, and the essay does not link a repository or commit. “Engram” therefore names at least two distinct codebases, and their features should not be merged.
| Attribute | engram-memory/engram | raya-ac/engram |
|---|---|---|
| Language and license | Python package, MIT license | Not stated |
| Storage | SQLite with FTS5 defaults; optional semantic embeddings | SQLite or PostgreSQL |
| Retrieval | Token-budgeted context builder; memory links and graph | Several retrieval signals; inspectable retrieval results |
| Lifecycle | Checkpoints; multi-agent namespaces | Memory lifecycle controls and confidence handling |
| Interfaces | MCP and REST | CLI, MCP, and workspace interfaces |
The essay’s shard, event-trigger, and routing features are not listed for either project above. Until a reader identifies the exact repository and revision the essay means, none of these rows should be attributed to it.
Performance numbers and what they cover
Two figures circulate around these projects. Neither is an independent benchmark, and neither measures the same thing.
Rank #4
The 30% to 12% error-rate claim
The essay cites a drop in error rate from 30% to 12%. It attributes the figure to anonymous Hacker News user reports and does not give the year or the original thread. The author states that it is not a controlled benchmark and that outcomes depend on the model, the embedding, and the orchestration design. It should be read as an anecdote about one setup, not as a general effect of layered memory.
The 470/470 session recall result
The engram-memory.dev documentation, which is linked from the raya-ac/engram project, reports 470 of 470 correct, or 100.0% session recall-any@5. The page does not state the year. The run was a fresh LongMemEval run on a development set that was used during tuning. It excluded 30 abstention questions and ran without the production confidence gate. The metric checks whether a correct session appears among the top five retrieved results. It does not measure whether the agent answered correctly. The result is reported by the project itself.
No independent, controlled comparison of jarvix-memory against the Engram project the essay has in mind is available in the sources reviewed.
Best Value
Retrieved memory is context, not proof
A memory store can return a fact that was true when it was written and is no longer true. The raya-ac/engram documentation makes this point directly and attributes it to the project: “a recalled memory is context, not proof that its claim is still current.” Systems that handle this well keep the source, the date, a confidence signal, and a superseded state for each record. When a newer fact replaces an old one, the old record should be marked rather than silently returned alongside the new one.
How to evaluate a memory layer for your own agent
Use the following axes to compare projects on their own terms, using the repository you plan to deploy.
- What is stored: raw events, summaries, structured facts, relationships, or some combination.
- Candidate generation and filtering: how retrieval finds items, and how it removes stale or irrelevant ones before they reach the prompt.
- Provenance and state: whether each record keeps its source, date, confidence, and superseded status.
- Storage and deployment: the database options, whether they run locally, and what they require to operate.
- Integration surfaces: which interfaces the host agent can use, such as MCP, REST, Python, or a CLI.
- Lifecycle and forgetting: how records are updated, expired, archived, or deleted.
- Evidence type: whether a performance claim comes from a controlled, reproducible test or from a project’s own report.
A practical check is to write a small set of facts that change over time, such as a ticket status that moves from open to closed, and then ask the memory layer for the current value. A system that returns the old value alongside the new one has a lifecycle gap, whatever its retrieval scores.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




