A memory model for every kind of experience.
Different experience needs different structure. UniMem keeps each kind in a form suited to it, in one store, under one set of scope, time and authority rules.
- Lessons: reusable guidance distilled from traces, activated only through review receipts bound to their exact content, and durably revocable.
- Atomic facts: propositions with valid time and record time, so you can ask what was true then and what the store believed then. Contradictions are detected at write time and near-duplicates consolidated.
- Knowledge graph: typed nodes and edges with validity windows, entity resolution, communities, and a code-structure graph for Python and TypeScript.
- Conversations: per-space memory with summaries, profiles and time-aware recall.
- Memory blocks: character-limited core memory with revisions and an audit log.
- Procedural memory, knowledge pages and sagas: replayable workflows, curated versioned pages, and ordered narratives of incidents and migrations.
- Forgetting: TTLs, evidence decay, invalidation, and erasure of a subject’s local history.
Recall that reaches the right evidence.
Recall fuses lessons, facts, graph relations and conversations under one token budget. Hybrid lexical retrieval (BM25, Unicode and CJK aware) and dense retrieval run with local or hosted embedders; local cross-encoders, hosted rerankers or an LLM listwise reranker can refine the ranking, and a failed reranker keeps the original order.
Ten named retrievers cover different questions: hybrid, decomposition, graph completion, natural-language query, planned, multi-round, multi-hop, personalized PageRank, expanded and HyDE. Multi-hop reasoning walks the fact and entity graph with explicit evidence paths.
Every retriever applies the same checks. A fact the caller cannot see is never used, not even as an intermediate hop.
On LoCoMo, the served gateway delivers the gold evidence for 95.8 percent of 1,540 questions at 152 ms p50 on CPU. See the benchmarks page for baselines and caveats.
An evidence engine built into memory.
Each eligible memory is shown or withheld on each task by a deterministic hash, so the split is random, reproducible and stable under retries. Outcomes in the two arms give a causal estimate per memory, with confidence sequences that remain valid however often you look.
An integrity audit runs before any effect is shown: differential attrition, sample-ratio mismatch, reshuffled randomization, scorer drift, mid-run edits and censoring. A compromised run is reported as compromised.
The evidence acts. Harmful memories can be withdrawn, proven ones graduated, and a contextual causal gate learns where each memory helps, publishing its allocation as hash-chained schedules.
Measurement and the causal gateGovernance and security at the record level.
Tenant scopes, write-time origin binding and visibility rules apply to every record. Lesson admission uses review receipts and HMAC-authenticated curated records designed against memory-poisoning attacks. Screening covers secrets, PII and prompt injection.
Change control preregisters candidate and incumbent policies before outcomes are observed; certification needs canonical trial records and a passing audit; rollback revokes the certificate. Signed Merkle transparency logs, lineage and subject-key erasure make history inspectable.
The self-hosted Hub adds OIDC single sign-on, SCIM 2.0 provisioning, role-based access, audit export, rate limiting, retention policies and envelope encryption with customer-held keys.
Guarantees and assumptionsMeet every agent and robot where it runs.
Adapters for existing memory stores mean the evidence engine can measure memories that live elsewhere, as long as they have stable identities.
- MCP server with 60+ tools over stdio, SSE or streamable HTTP.
- One-command installs for Claude Code, Cursor, Windsurf, Codex, Copilot, Gemini, Devin and OpenCode.
- Native middleware for LangGraph, OpenAI Agents SDK, Pydantic AI, Google ADK and Microsoft Agent Framework, plus tool factories for LangChain, CrewAI, LlamaIndex, AutoGen and Strands.
- HTTP gateway with a published OpenAPI contract, and TypeScript, Go, Rust and JVM clients.
- A ROS 2 bridge and robot SDK for planner context, outcomes and action shields.
Local first. Scales to an organization.
The core is pure Python with one runtime dependency, runs offline and needs no LLM. JSONL and Markdown are canonical, with SQLite in WAL mode for facts. PostgreSQL with pgvector, LanceDB, Neo4j and FalkorDB are optional backends; the graph databases mirror an authoritative local graph.
Docker, Helm, Kubernetes and Terraform assets ship with the source. The repository includes automated tests for the local store, retrieval, MCP server, gateway, and holdout experiment. The project status table distinguishes core interfaces, thin SDK clients, and experimental features.
Project statusSee the whole loop on your machine.
Try the local loop, or bring one workflow to a pilot conversation.
Technical details link to the inspected source. Check deployment requirements before enabling optional features.