An inspectable, temporal knowledge graph.
Agent memory you can read, edit, and query across time.
Ask what your agent knows now - or what it knew last month.
from bezial import Memory
mem = Memory(space="team", author="alice")
mem.add("Alice switched from Notion to Obsidian in June 2026.")
mem.recall("what does Alice use for notes?") # -> Obsidian
mem.recall("what did Alice use?", as_of="2026-05-01") # -> Notion
Built on open tooling
Memory across time
Ask what your agent knew, as of any date.
Every fact carries a valid-time. Scrub the timeline and watch memory answer as it stood on that day - old facts retire, new ones take hold, nothing is overwritten. This is the same bi-temporal recall an agent gets from as_of.
Why Bezial
Most agent memory is a black box. This one you can read.
Vector-store memory hides what your agent knows behind opaque embeddings - you can't read it, can't correct it, and can't ask what it knew last month. Bezial keeps memory as a knowledge graph built from a plain folder of notes: open it, read it, fix a wrong fact at the source. Change a note and only that passage is re-extracted - the rest stays put.
notes/ *.md you edit these, in plain text | | edit a note -> only that passage re-extracts v [ temporal knowledge graph ] patched, never rebuilt | +--> file map how your notes connect (for you) | +--> fact graph entities & bi-temporal facts (for agents)
Inspectable
The thing your agent remembers is a note you can open and read. Wrong memory? Fix it at the source.
Temporal
Every fact carries valid-time. Query the memory as it is now, or as it stood at any past date.
One graph
A single substrate, not a database plus a cache. The views are projections of it, kept cheap.
Two views
One graph, read two ways.
The same memory, at two granularities. A map for the human browsing it, and a fine-grained fact graph for the agent recalling from it - not two databases to keep in sync.
For humans
The file map
A coarse, intuitive map of how your notes relate - good for browsing and auditing.
- nodes
- notes & documents
- edges
- shared entities, wikilinks, similarity
For agents
The fact graph
The exact, temporal representation an agent retrieves from for precise recall.
- nodes
- entities
- edges
- bi-temporal facts
Both views are projections of a single graph, itself built from your notes. The file map is almost free: you already know which entities each note produced, so two notes that share an entity are linked.
What you get
Everything in one memory.
No second cache to keep in sync, no opaque store to trust on faith. One graph, built from your notes, with the behaviour an agent actually needs.
Inspectable
Open any memory as a note and read exactly what your agent knows - no embeddings to decode.
Temporal recall
Ask what's true now, or pass as_of to query the memory as it stood on any past date.
Editable at the source
Memory lives in plain Markdown you can edit; the graph re-derives itself from what you changed.
Selective forgetting
Stale facts decay into an archive instead of being deleted, so forgetting is always reversible.
Shared spaces
A team or several agents share one memory in a permissioned space, each fact tagged with its author and audited.
Built on Graphiti
A bi-temporal graph, hybrid search, and MCP access for agents - inherited, not reinvented.
Open source
Yours to read, run, and rebuild.
Bezial is open source and built on Graphiti. Run it locally, inspect every fact, and pin or forget memories yourself - the graph can always be rebuilt from your files, so nothing is locked in.
mem.pin(fact_id) # keep this one forever
mem.forget(fact_id) # archive it (reversible)
mem.restore(fact_id) # bring it back later
# Agents can also reach Bezial over MCP -
# no custom client to write.The benchmark plan
Measured against a benchmark you can trust.
We lead with LongMemEval - human-curated, 500 questions, strong on the temporal-reasoning and knowledge-update abilities a temporal graph should win - and publish the harness, judge prompt, and raw transcripts so the score is reproducible. The figures below are the public baselines we're aiming at, not our own claims.
60.6%
Full-context GPT-4o on LongMemEval - the bar retrieval has to beat.
87.0%
Oracle retrieval ceiling - relevant sessions only. The target to chase.
restore
Bezial's own metric: how often a forgotten fact turned out to be needed.
Memory your agent
can actually show its work.
Read it, edit it, query it across time. A knowledge graph you can see, built from notes you already understand.