Skip to main content
open source · Apache-2.0 · built by Ensera

taisce.

What can remember — and prove it forgot?

Memory for your AI agents. Your agent tells Taisce what happened; later it asks a question and gets back facts, each with the exact words it came from and when it was true. When someone asks to be forgotten, you get a count of what is left, and it is zero.

PostgreSQL onlyPython · Java · .NETMCP for coding agentsruns on your infrastructure
agent@laptop — taisce · replay of the v1 contract
$
inside the instance
observation log
offset 0 · user · aliceI work at Ensera and I live in Dublin.
works_atlives_in
entity graph
works_atlives_inspeakerpersonEnseraorganisationDublinplace
anchor Ensera → works_at → “I work at Ensera” · bytes 0–16
stored
formed
residual

The turn is stored and acknowledged at once. Nothing waits for a model.

request and response shapes from the v1 contract
why taisce

Memory that shows its work.

Six things your agent gets that a pile of stored text can't give it. How it works →

01

Answers from the things a question names

Recall starts at the people and things your question names and follows the facts around them, instead of searching for similar sentences. It never calls a model, so a slow model delays new memories, not answers.

anchors → facts
02

Every fact shows its words

Each fact carries the exact quote it came from and where that quote sits in the stored message. A claim whose words are not there is refused before it is stored.

quote · byte_start · byte_end
03

Two clocks on every fact

When something was true, and when Taisce learned it. A new job supersedes the old one without erasing it, so you can ask what was true then, or what was known then.

as_of · as_known_at
04

Forgetting you can count

Erasing a person removes everything derived from what they said, then recounts what still matches them in the same transaction. The receipt says what was deleted and what is left.

deleted · residual · clean
05

Memory reaches the model as data

Every adapter hands memory over as one user message marked untrusted, never as a system instruction, and one conformance suite holds Python, .NET and Java to it.

taisce-memory/v1 untrusted
06

Just PostgreSQL, on your infrastructure

No vector database, graph engine or queue to run: one database to operate, back up and erase from. All of it is Apache-2.0.

docker compose up
how it flows

One memory, start to finish.

Saving is instant; learning happens in the background. A freshness check tells your agent how far behind its memory is.

docker compose upStarts PostgreSQL and the service from published images, and prints your first tokens.
save

Your agent sends what happened

A turn is saved straight away and you get its position back. Saving never waits for a model, so memory never slows your agent down.

POST /v1/observations
learn

Taisce turns it into facts

In the background, a model reads each message and pulls out facts. Every fact keeps the exact words it came from, or it is thrown away.

stored → formed
recall

Ask, and get facts with their words

A question starts at the people and things it names and follows the facts around them. You get each fact with the quote behind it.

POST /v1/recalls
forget

Forget someone, and see the proof

Erase a person and Taisce removes everything derived from what they said, then counts what is left. The count you get back is zero.

POST /v1/erasures
contributors

The people building Taisce.

Built by Ensera and shaped by everyone who sends a fix, a test, a page of documentation or a good question. Your name belongs here too: add it with your first pull request.