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.

python
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

GraphitiNeo4jFalkorDBKuzuMCPPython

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.

usesNotionlived inSan FranciscousesObsidianlives inBerlinmember ofTeam spaceAlice
On Jul 2026, memory says Alice lives in Berlin·uses Obsidian·member of Team space

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.

wroteuses
nodes
entities
edges
bi-temporal facts
One substrate

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.

python
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.