Polign Recall · Open source · Apache 2.0

Memory for AI agents
- make informed decisions.

Recall always keeps a well informed belief from your memories, when facts change, or the information evolves underneath. While keeping the current belief, Recall keeps records of what an agent believed on any date, how one fact changed, and what changed between two dates.

Customer disputes"I asked for my refund on Sep 20, when you still said yes."
Memory without history
refund exception: revoked
The agent says no. Nobody can check.
Polign Recall
nowrevoked
as of Sep 20approved
from chat, Sep 12: "Refund exception approved for you"
Honor the refund, and show why.

Recall memories are records to look back on

A memory, even for an agent, shouldn't be something that gets overwritten or lost. Memories are factual records of events and decisions. When agent needs the information to make a judgement call, memory should be at the center of it.

Recall memory is trusted, corrective and not made up

Have you ever had your agent hallucinate or just provide an answer when it doesn't know anything? Most of the memory setup today is simply a vector search or similarity search for whatever query that was put in. Recall looks for the exact facts were at any point in time. It provides enough context behind the ask to the agent. When agent has enough information about the situation, it can make an informed decision and generate predictable outcome for the user.

Compared with mem0 and Zep

Maya tells her assistant twelve things over nine months: three homes, three jobs, a sister who moves, and, in one sentence, a new diet and a shellfish allergy. Then she asks it to forget the allergy. The same model, Claude Opus 5.5, extracts and answers for all three memories, and every reply below is from a real run.

1 of 9
The conversation

What Maya told her assistant

  1. 01-10Hi, I'm Maya. I live in Seattle and work at Northwind as a data analyst. My email is maya@northwind.com.
  2. 01-24I'm vegetarian, by the way.
  3. 02-15My sister Priya lives in Denver.
  4. 03-03My friend Sam just moved to Tacoma.
  5. 04-02I moved to Tacoma, near Sam. Seattle rent was too much.
  6. 05-12New job: I'm a product manager at Bluefin now. Use maya@bluefin.io for work.
  7. 06-20Priya moved from Denver to Austin.
  8. 07-08We moved again, to Portland. The Tacoma commute was killing me.
  9. 07-30My coworker Dan lives in Seattle; we carpool on Fridays.
  10. 08-18I've started eating fish again, so I'm pescatarian now, but no shellfish, I'm allergic.
  11. 09-05Bluefin was acquired by Orca Labs, so I work at Orca Labs now, same role. My email is maya@orcalabs.com.
  12. 10-04Thinking about moving to Boise next year, but we're staying in Portland for now.
Then she asks

“Forget that Maya is allergic to shellfish.”

mem0

App code: search, then 1 delete by id · allergy gone · diet lost with it · history kept ✗

Zep

App code: search, then 2 delete by id · allergy gone · diet lost with it · no history ✗

Recall

One call: forget(text) · allergy gone · diet kept · history kept ✓

Question 1 of 6

I'm booking Maya a dinner. What can she eat?

Right answer: Pescatarian

mem0

Maya is vegetarian, so book somewhere with good meat-free options (this is from a January 2026 note, and nothing since says it's changed). ✗

Zep

I don't have any notes on Maya's dietary preferences or restrictions, so it's best to ask her; I only know she's currently in Portland, if that helps with the booking. ✗

Recall

Maya is pescatarian, so book somewhere with good fish or seafood plus vegetarian options; she said "I've started eating fish again" (her earlier vegetarian diet no longer applies). ✓replaced vegetarian

Question 2 of 6

Is Maya allergic to anything?

Right answer: None on record

mem0

I don't have any record of Maya's allergies; I only know she's vegetarian, which is a dietary choice rather than an allergy. ✓

Zep

I don't have anything saved about Maya having allergies. ✓

Recall

I don't have any record of Maya's allergies; I only know she's been pescatarian since August 2026 (previously vegetarian), which is a diet choice rather than an allergy. ✓

Question 3 of 6

Where does Maya live now?

Right answer: Portland

mem0

Maya lives in Portland; she moved there from Tacoma around July 2026, and as of October 2026 she's considering a move to Boise sometime in 2027 but is staying put for now. ✓

Zep

Maya lives in Portland; she moved there from Tacoma in July 2026 and was still there as of October 2026. ✓

Recall

Maya lives in Portland, where she moved in July 2026 from Tacoma because the commute was too hard. ✓replaced Tacoma

Question 4 of 6

Where does Maya's sister live?

Right answer: Austin

mem0

Maya's sister Priya lives in Austin; she moved there from Denver around June 2026. ✓

Zep

Maya's sister Priya now lives in Austin, having moved there from Denver in June 2026. ✓

Recall

Maya's sister Priya lives in Austin; she moved there from Denver in June 2026. ✓replaced Denver

Question 5 of 6

Where does Maya work?

Right answer: Orca Labs

mem0

Maya works at Orca Labs as a product manager, since Orca Labs acquired her previous employer, Bluefin, around September 2026. ✓

Zep

Maya currently works at Orca Labs as a product manager, the same role she held at Bluefin before Orca Labs acquired it. ✓

Recall

Maya works at Orca Labs as a product manager (since 2026-09-05), after Orca Labs acquired her previous employer, Bluefin. ✓replaced Bluefin

Question 6 of 6

Where did Maya live in May 2026?

Right answer: Tacoma

mem0

In May 2026 Maya lived in Tacoma, having moved there from Seattle in early April and before moving to Portland in early July. ✓

Zep

In May 2026, Maya lived in Tacoma, near her friend Sam; she had moved there from Seattle in April and later left for Portland in July. ✓

Recall

In May 2026 Maya lived in Tacoma, having moved there from Seattle on April 2, 2026. ✓read as of 2026-05-20

Across 3 runs

Totals

mem0

15 of 18 right · 12.7k tokens to save a message

Zep

11 of 18 right · 14.8k tokens to save a message

Recall

18 of 18 right · 3.2k tokens to save a message

Use the buttons or the step tabs to go through it one step at a time. mem0 had stored the diet and the allergy as one memory, so forgetting the allergy deleted her diet too, and it answered from an older note that she is vegetarian. Zep deleted both of its diet facts. Recall withdrew only the allergy and answered pescatarian, with the vegetarian diet it replaced. Over three runs Recall answered 18 of 18, mem0 15 and Zep 11, and Recall used 3.2k tokens to save a message where mem0 used 12.7k and Zep 14.8k.

mem0 2.2.1 (open source), Zep's open-source engine graphiti-core 0.31.1, and Recall 0.20.2 with its built-in embedding model. Each answer was judged against a reference answer written before the runs. All three scenarios, with the numbers.

Try it in a minute

One pip install brings the client and the database. No model or embedding API key needed. The quick start walks through history, as-of reads, and connecting your agent.

pip install polign-recall

Runs on the store you already have

Recall is the memory. The vector store underneath is yours to choose, and the records are the same on every one. polign_db is the backend we built for it. A PostgreSQL or MongoDB you already run has every capability too, agent resume included, and a Qdrant works for the memory tools.

On polign_db your memory sits in your own S3, GCS, or Azure bucket. Searches straight from S3 measured about $3.20 per million, and nothing runs when agents are idle. See the method. What each backend supports, feature by feature, is in the architecture docs.

Corrections by rule

A predicate declares whether it holds one value or many. A new value replaces the old one when only one is allowed, and is added alongside when several are. A statement can also end a belief filed under another predicate: "dislikes mangoes" replaces "likes mangoes", and both answers say so. Every read shows the same value held under another predicate, so a conflict is never hidden. Nothing is deleted, and if a rule was wrong, one correction fixes every past and present answer.

History you can query

Forgetting records a withdrawal instead of deleting. Ask what is believed now, what was believed on any date, how one fact changed step by step, or everything that changed between two dates. Nothing is edited in place.

Replayable audit

Export a versioned bundle of the events and rules behind a memory query result. A standalone verifier reproduces that result offline, without a database or an embedding model. It covers what memory returned, not the agent's reasoning. Together with diff, it is the audit log: what changed, when, and on whose statement.

Typed memory, no schema to write

A memory is a subject, a predicate, and a typed value. Recall starts with predicates for coding work and personal facts, and a predicate nothing has defined yet is defined by its first use. A new name that only reorders an existing one is filed under it. Or keep a fixed list, and agents write only the kinds you declared.

Shared across agents

Agents in different processes and on different machines use the same memory. A correction one agent writes is returned by later reads from the others. One server answers many agents at once, each inside its own namespace, and a pod on Kubernetes signs in with its own identity, no key to hand out. See it inside a sandbox.

Your storage, your choice

Runs on polign_db against your own S3, GCS, or Azure bucket, or on a PostgreSQL, MongoDB or Qdrant you already run. Keys bound to a namespace are the isolation boundary between teams and agents. No embedding service is needed to start; bring your own model for semantic search.

Resume after a crash

An agent can record its working state and turns to Recall as it works. When its pod dies or its image is upgraded, the next process picks up from those records instead of a snapshot. Read how it works, or use it with LangGraph.

How it is built

Every memory is an event in an append-only log, and every answer is a fold over that log at the instant you ask about. The registry holds the correction rules, the backend holds the records, and recall serve puts keys and namespaces in front of both. Read the architecture, with diagrams.

Become a design partner

Give us your agent and we will wire Polign Recall into it.

What ships today

Give your agents one memory.

Open source, on the store you already run.