Skip to content

Ecosystem & positioning

UMP is designed to compose with the emerging agent stack, not compete with it.

StandardLayerRelationship to UMP
MCP (Model Context Protocol)ToolsUMP’s primary binding is an MCP profile. UMP rides MCP instead of defining a new transport.
A2A (Agent2Agent)CoordinationA2A moves work between agents; UMP is the memory they share and carry.
W3C PROV / DIDProvenance & identityReused directly for UMP provenance and operator identity - not reinvented.
OAuth 2.0AuthCapability tokens can be carried over standard bearer auth.

Where UMP differs from existing memory work

Section titled “Where UMP differs from existing memory work”

The memory space already has runtime tool-surfaces (each with proprietary verbs), storage engines, and interchange formats (static files). What it lacks is a transport-neutral, access-controlled memory protocol with an MCP binding. That is UMP’s lane.

ApproachExamplesWhat it isWhat UMP adds
Runtime tool-surfacesMem0/OpenMemory, Letta blocks, vendor memory toolsUseful CRUD+search, but proprietary verbs per productOne negotiated verb set any host speaks
Storage / retrieval enginestemporal KGs, tiered memory OSesGreat recall qualityA standard interface so engines compete underneath
Interchange formatsPAM, MIF, conversation-backup specsPortable files - no runtime, negotiation, or access controlThe runtime middle: capabilities, scoping, consent, signing

There is a separate project named Open Memory Protocol focused on AI conversation backup and portability - exporting and migrating raw chat transcripts (.zip archives) between consumer products. That solves a real but distinct problem: moving transcripts. UMP is about the live memory runtime - the distilled, typed knowledge agents read and write during a task, with bi-temporal validity, provenance, signing, and injection-resistant rehydration. Different layer; the two could even interoperate (transcripts in, distilled memory out).

UMP standardizes structure, provenance, access, and trust. It does not standardize:

  • extraction / salience (what’s worth remembering),
  • ranking algorithms (vector, BM25, graph, hybrid - all conform),
  • decay curves or promotion logic,
  • consolidation / “rethinking”.

Encoding those into the wire format would make it brittle and slow to ratify. They are where implementations compete - UMP only standardizes the interface and the ranking signals they report.

The reference SDK is intentionally store-neutral. It ships dependency-light adapters for the databases and engines teams already use, while keeping vendor SDKs outside the core install.

ImplementationRole
JsonFileStoreportable *.ump.json persistence
MarkdownDirectoryStorehuman-editable *.ump.md records
PostgresStorePostgreSQL persistence via an existing pg-style client
SqliteStorelocal/embedded SQLite persistence via a compatible client
RedisStoreRedis hash-backed persistence
VectorStoregeneric embedding-backed memory store
QdrantStore / PineconeStore / WeaviateStorenamed vector database adapters over the vector client contract
RecallStoreRecall exposed as a UMP-speaking production memory engine

This keeps UMP positioned as the common protocol: the database changes, the agent-facing memory surface does not.

Existing memory systems should not be collapsed into the protocol. UMP treats them as sources that can be translated into the portable record format:

SourceImport path
AGENTS.mdump-import --kind agents or filename inference
CLAUDE.mdump-import --kind claude or filename inference
Recall context/export filesump-import --kind recall
Obsidian vaultsump-import --kind obsidian <folder>
Markdown foldersump-import <folder>

This gives users a concrete reason to try UMP immediately: point it at the memory files they already trust, generate portable records, then serve them through MCP/HTTP without tying UMP to any one source format.