Memory and coordination · for agents
Many agents, one memory. Nothing lost to a race.
TessariDB Agent Memory holds what agent frameworks keep in files — goals and their evidence, plans and waves, tasks and claims, checklists, decisions and what each agent remembers — as records in TessariDB, behind one service that speaks MCP, REST and a command line.
docker run tessaridb/agent-memory0.4.1-alpha · alpha
Why not files
Files work for one agent and fail quietly for several.
Two agents, one registry
Files have no transaction, so two agents writing the same registry race and the second write wins, with nobody in an error state.
A lock file that outlives its owner
An advisory lock taken by a process that died without releasing it freezes the project until somebody notices and deletes it by hand.
Links that disagree
An entry that links to another that links back drifts: six weeks later the two descriptions disagree and nothing says so.
Nobody can say who changed it
Without history there is no answer to who changed what and when, and without a live view no answer to which agent is working on what right now.
What a store gives that state
Transactions, recall, history and presence, for every agent at once.
Concurrency
Real transactions instead of advisory locks. A claim on a task is a bounded hold, and a second agent asking for it is refused rather than racing.
Retrieval
Structured queries, full-text and vector search over the same records, ranked together in one read, each hit saying what found it.
Relationships
Knowledge as a graph with links that cannot dangle silently. Withdraw a fact and everything resting on it is marked, in the same change.
History
Every change versioned and attributed to the session that made it, the person behind that session, and the credential they presented.
Presence
Who is active, on what, since when, and with what claim. A session reports itself alive; nobody else can report it for it.
Delivery
Goals whose criteria must point at evidence, plans cut into waves, and checklists that gate a phase rather than decorate it.
- Surfaces
- MCP · REST · CLI
- Verbs
- 22 carried, 3 withheld
- Store
- TessariDB
- Licence
- BUSL-1.1
Memories and facts
Write freely. Promote what proved true.
A memory is what one agent believes: no schema, no evidence, allowed to be wrong. The same words remembered again are counted rather than stored twice. A fact is what the project vouches for, and when it says it is confirmed it points at evidence — so the expensive schema is paid once, later, only for what mattered.
Memories, facts and citations →- compaction runs after a flushtext + vector
- how the deploy pauses writesvector
- compaction backlog alerttext
Recall
Words and a vector, ranked in one read.
A recall with words and a vector is one read that the engine ranks by both at once, and every hit says which of the two found it. Each hit carries a one-line summary with its age and size, so a page of results says which are worth opening. A recall can be witnessed, and replayed later as it was seen.
How recall works →Coordination
A claim instead of a lock file.
Every call belongs to a session — one run of one agent — and a session reports itself alive while it thinks. A task is claimed for a bounded hold that nothing renews, a second agent asking for it is refused, and a handoff moves the hold to another session in one change, with the log keeping who handed it to whom.
Sessions, claims and handoffs →- session Atask.claim
- session Bheld · refusedtask.handoff
- C1 · the suite is greenrun · 0 failed
- C2 · the docs say sopage · published
- C3 · the release is cutrelease · recorded
Delivery
A goal is achieved by evidence, not by saying so.
Goals are judged criterion by criterion, and a criterion passes only by pointing at evidence. Plans are cut into waves, a checklist is a gate because it was written before its phase, and a release is a record that refuses to be cut while anything in its range is unaccounted for.
Goals, plans, checklists, releases →Tenancy
The signed-in identity is the namespace.
Isolation is a property of the credential, not a filter somebody has to remember, so a bug in path handling cannot leak one tenant’s records into another’s answer. Every verb is judged against the caller’s grants on all three surfaces, teams can deny, and every refusal is recorded beside every act.
Identity, grants and teams →Status
Alpha, and saying so.
Agent Memory is at 0.4.1-alpha, on TessariDB 0.33.1-beta. Twenty-two of the contract’s twenty-five verbs are carried; the three withheld are refused by name, and export is one of them. It is free for any use, production and commercial included, except offering it to others as an agent memory service.
Part of the TessariDB family: TessariDB · TessariDB S3 · TessariKV.
claude mcp add --transport http -s user \
--client-id claude-code --callback-port 39143 \
tessaridb-am http://127.0.0.1:39142/mcp
tessari-am remember --body "migrations run before the deploy" --kind semantic
tessari-am recall --text migrations