Skip to content

Introduction

Bezial is a general-purpose, open-source agent memory layer where editable Markdown is the source of truth. A single temporal knowledge graph is derived underneath, and you read it two ways: as an Obsidian-style map of how your notes connect, or as the fine-grained web of facts an agent retrieves from. Edit a note, and the graph reacts.

Bezial is general-purpose: it is not coupled to any product, and any caller - a human, an agent, or a whole application - can use it.

Most memory systems make the database the truth and, at best, render a read-only peek for humans. Bezial inverts that. The human-readable Markdown is the truth; the graph is a derived index that can always be deleted and rebuilt from the files.

That one inversion buys three things at once:

  • Inspectability - the thing the agent remembers is a file you can open and read.
  • Editability - fix a wrong memory by editing its source note, not by surgery on a database.
  • Trust - because the graph is rebuildable from documents/, your memory survives in plain Markdown even if the graph engine changes.

The only write path is a file. add() appends to Markdown; write() replaces a file. The graph is a pure downstream projection that only ever receives an event after a file change commits - it is never handed a way to write. There is no graph-write API, by construction, and none can be added. See Architecture.

Bezial keeps one temporal knowledge graph as the substrate and renders two views of it. They are two readings of the same memory at different granularities - not two databases to keep in sync.

View Nodes Edges For
File map (Obsidian-style) Documents / notes Shared entities Humans browsing and auditing
Fact graph Entities Bi-temporal facts The agent’s recall

The file map is mostly free: you already know which entities each document produced, so “documents A and B share entity X” is the edge. You can explore both, live, in the interactive viewer.

  • Files write, the graph reacts. Editing a file re-extracts only the changed section, never the whole graph. See Architecture.
  • A durable substrate, not git. Shared memory is object-versioned storage plus an append-only audit log - provenance and rollback without git. See Storage & audit and Multiplayer.
  • Permissioned by construction. Every fact is stamped with its source file’s ACL and filtered at recall, so a merged entity never leaks a private fact. See Permissions.
  • Cited, temporal recall. Every recalled fact carries a source-file citation, a valid-time, and a confidence, and you can query the memory as of any past date. See Recall.
  • Archive-grounded forgetting. Stale facts move to an archive instead of being deleted, which makes forgetting reversible and measurable. See Selective forgetting.
  • Three call surfaces. A library (TypeScript and Python), an HTTP/REST API, and an MCP server - one engine underneath. See Library, HTTP API, and MCP.