Get started
Install Polign Recall, save a fact, correct it, and read back what was believed before the correction. It takes a few minutes and needs no model or embedding API key.
Install
You need Python 3.10 or later.
pip install polign-recall
pip also installs the polign_db package, which holds the polign
and polign-server binaries. There is nothing else to download or start.
Save a fact, then correct it
This process saves an editor preference and then changes it:
from polign_recall import Client
with Client(local_dir="./recall-data") as memory:
memory.remember("user", "prefers_editor", "vim")
memory.remember("user", "prefers_editor", "neovim")
prefers_editor holds one value, so neovim replaces
vim. A rule decides that, not a model.
Read it back from another process
Run a second process in the same folder. It reads the current value, the full history, and what was believed before the correction:
from polign_recall import Client
with Client(local_dir="./recall-data") as memory:
print(memory.recall("user", "prefers_editor")[0].value) # neovim
events = memory.history("user", "prefers_editor")
print([event.value for event in events]) # ['vim', 'neovim']
# What was believed at the moment of the first statement.
before = memory.recall("user", "prefers_editor", as_of=events[0].observed_at)
print(before[0].value) # vim
The correction did not erase vim. That is how you answer "what did the agent
believe yesterday, and when did that change?"
The first client to open ./recall-data starts a local
polign-server for it in the background, listening on localhost only. Later
clients, in any process, share it. The memories stay in that folder after your program
exits. Local databases work on Linux and macOS.
Forget something
with Client(local_dir="./recall-data") as memory:
memory.forget("user", "prefers_editor", "neovim")
Forgetting removes the fact from current answers and keeps it in the history. It does not permanently delete the record.
Use it from your agent
| Where your agent runs | Start here |
|---|---|
| Claude Code | polign recall setup, then restart Claude Code. See Claude Code. |
| Any MCP host | Launch polign mcp -memory-only -write from your host. See below. |
| LangGraph | pip install recall-langgraph. See LangGraph. |
| LiveKit Agents | pip install recall-livekit. See LiveKit Agents. |
| Vapi | See Vapi. |
| Go | go get github.com/Polign/recall. See the Go reference. |
Any MCP host
For hosts that use the common mcpServers format, point the host at the
polign binary and a running server:
{
"mcpServers": {
"recall": {
"command": "/absolute/path/to/polign",
"args": ["mcp", "-memory-only", "-write"],
"env": {
"POLIGN_URL": "http://127.0.0.1:23000",
"POLIGN_COLLECTION": "recall_demo"
}
}
}
}
The agent gets five tools: remember, recall,
forget, memory_history, and list_predicates. Leave out
-write for a read-only connection.
Share memory across machines
A local folder is enough for one machine. To let agents on different machines share one
memory, run polign-server against your own bucket (see
Run polign_db), leave local_dir out, and set
these variables:
| Variable | What it is |
|---|---|
POLIGN_URL | Your server's address |
POLIGN_COLLECTION | The collection that holds the memories |
POLIGN_API_KEY | Only if the server requires a key |
Agents share memory when they use the same server, collection, and namespace.
Next steps
- Introduction explains facts, corrections, and history.
- The live demo shows two agents on two nodes sharing one memory.
- Resume agents without snapshots shows how an agent picks up after a crash.
- github.com/Polign/recall has the source, examples, and full reference.