Engrava stores memory as a graph, and every edge carries a type. In 0.6.0 the set is these seven:
ASSOCIATED, DEPENDS_ON, DERIVED_FROM, MESSAGE_OF, BRIDGE, CONSOLIDATED_FROM, CONTESTED_BY
Nothing in the library picks among them by reading your text.
Your own vocabulary goes in edge metadata (detector, rule version, workflow state), not in the type set. And the type carries no reasoning: no transitivity, no symmetry, no effect on ranking. It is a stored label, and it reads back the way it was written.
Engrava 0.6.0 on LongMemEval-S, full 500-question set: 81.6% under the canonical scorer, run August 2026.
No LLM anywhere in the memory pipeline - nothing inside "memory" is quietly doing the work. Standard gpt-4o reader/judge, top_k=20, all pinned.
We sat on benchmarks for months because we couldn't check the ones we read. This one you can: clone the repo, pip install engrava==0.6.0, run the runner with no flags, read the same number off leaderboard.json.
There's a free offline smoke run to check the wiring before you spend a cent.
Engrava 0.6.0 is out.
Edges carry metadata now, and you can read them back over MCP: get_edges and list_edges. There is a derived-records seam for extensions that turn what you write into new records, and hybrid search holds its BM25 arm on quoted, wildcard and operator queries.
Read the notes before you upgrade: schema steps 18 -> 20, plus one thing to check. A custom embedding provider must expose a public dimension - 0.6 reads it before a vector search, unless sqlite-vec supplies it from its own table.
https://t.co/e5sJeKb2XS
Vector DBs give an agent a flat bag of embeddings and hope cosine distance is enough. It isn't - the agent can't tell that thought A caused thought B, or that a preference changed last month.
We wrote up why we built Engrava as a typed graph instead, and the cognitive-science work behind it.
Engrava now has a first-class MCP server.
`uvx engrava-mcp` runs a native stdio server for an Engrava store: read tools, optional write tools, resources, and prompts.
It is live in the MCP Registry as `ai.sovantica/engrava`.
Engrava 0.4.0 also adds bi-temporal memory.
Most stores log when a fact was written. Engrava also tracks when it was true in the world — valid-time on thoughts and edges. Query as-of any point, invalidate deterministically. No LLM.
Temporal primitives, no temporal opinions.