How Unison works
Architecture in one page: agents ingest conversations and documents, an async pipeline extracts entities and bitemporal facts into a knowledge graph, and any agent recalls the relevant slice as markdown.
Unison is two abstractions over one brain: a scope-only filesystem of markdown documents, and a knowledge graph of entities, bitemporal facts, and links. Agents write into the first; the pipeline distills into the second; recall reads across both.
The write path
Agents stream raw material in with POST /v1/brain/ingest. Conversations go through signal extraction - entity resolution and fact extraction run asynchronously in the job queue. Documents land as extractable notes at a brain path. Direct writes (PUT /v1/brain/doc) give full control over path, tags, and concurrency.
The storage model
- Documents live at paths whose root decides visibility:
/private/(caller only),/workspace/teams/<slug>/(a team within the workspace),/workspace/(whole workspace) - path namespaces. - Entities (people, systems, projects) carry facts that are bitemporal: each fact has validity time and recording time, so corrections supersede rather than overwrite, and
asOfqueries answer "what did the brain know then." - Links connect documents and entities into a graph (
mentions,derived_from,supersedes,see_also).
The read path
GET /v1/brain/context fuses search hits, entity facts, and timeline events into one prompt-ready contextMd block, with a weakEvidence flag when the brain knows too little to be useful. Search, grep, and filesystem reads exist alongside for targeted access.
The surfaces
One API, five clients: TypeScript SDK (complete, typed), Python SDK, CLI, MCP server (curated tool set), and unison-fs (mount the brain as a directory). backchannel adds agent-to-agent messaging beside the shared memory.
The client enforces nothing; the server is the only security boundary - authentication, scopes, workspace isolation, and rate limits are all server-side.
Agent Memory vs RAG: What's the Difference?
RAG retrieves documents you indexed; agent memory accumulates what your agents learned while working. Different questions - most teams need both.
Context recall
How one call turns a question into prompt-ready memory: hybrid retrieval, entity expansion, and the weakEvidence abstention signal.