AI Agent Memory Standards: 5 Key Formats Explained ⚡
Discover the agent memory standard for AI agent memory: 5 key portable formats, Model Context Protocol checks, and interoperability risks—learn fast.

Why AI Agents Need a Shared Memory Format
AI agents can remember project instructions, lessons from past builds, and details about a user's preferences. The snag is that those "memories" often come packaged in whatever format fits the tool that created them. One coding assistant might save a Markdown file, a hosted product might keep repository facts in its own system, and a memory service might store structured graph data. Then you switch tools - or run multiple agents on the same project - and the information doesn't reliably follow.
That fragmentation is more than annoying. It pushes teams to repeat work, leads to stale guidance, and makes context harder to keep when you change vendors. It also creates a real security question: if one agent can write information that another agent later trusts, you need to know where it came from and whether it's still valid.
Observability ran into something similar before OpenTelemetry made vendors align around shared data models and conventions. Agent memory isn't the same problem, but the lesson is familiar: shared interfaces can help tools work together without forcing everyone into the same storage stack.
This article walks through the main kinds of agent memory, what today's proposals cover (and what they don't), and what a practical shared standard would need to define. It also looks at where standardization helps - and where it can't replace the hard product and security decisions.
Why agent memory fragmentation is a business problem
A typical development setup can already include multiple separate memory systems: repository instruction files like AGENTS.md or CLAUDE.md, editor-specific rules, files managed by an agent, facts stored by a hosted assistant, and a memory server that exposes a knowledge graph. Each one can be useful. The problem shows up when an agent in one system can't read, update, or even interpret what another system created.
Take a CI agent that learns integration tests need a local database running. If it saves that lesson into a tool-specific store, an editor agent might repeat the same mistake later. A code review agent might not see the lesson at all. The team ends up paying for the discovery over and over - every new tool adds yet another place to inspect and maintain.
The cost is operational, not just technical
In a small experiment, duplicate memory might be tolerable. In a company running agents across engineering, support, and internal operations, it becomes an actual operating cost. People spend time reconciling guidance, debugging inconsistent behavior, and re-entering context. Switching vendors can also wipe out hard-won knowledge - or force you to migrate it manually.
There's also a quality cost. If an agent can't find the right context, it may produce an answer that sounds reasonable but doesn't fit the project. If it finds an old fact without the right scope or age, it can apply it where it no longer holds. "More memory" isn't automatically better - memories need identity, context, and a lifecycle.
How big the business impact is depends on how widely agents are used. If one assistant works in isolation and its memory can be thrown away, a custom store might be fine. But if several tools act on the same repository, customer record, or workflow, interoperability becomes a reliability and product concern. At that point, it's not only about where notes live. It's about whether different systems agree on what a "note" actually means.
A standard is not a universal memory database
A shared format doesn't need every vendor to use the same database, ranking method, or user interface. It should define a common way to describe and exchange a memory record, and the basic operations needed to read and write it. Vendors can still compete on retrieval quality, privacy controls, storage, analytics, and user experience.
That's the useful part of the OpenTelemetry comparison. Before a common model, changing observability tools often meant redoing instrumentation. OpenTelemetry provided shared conventions for telemetry data and a common way to transmit it, while leaving vendors room for different back ends. Agent memory could take a similar approach - separating shared meaning from proprietary implementation.
It's not a perfect analogy. Memory can change an agent's decisions, so provenance, permissions, and staleness matter in ways that differ from many telemetry records. A format alone won't eliminate those risks. But it can make them visible - and easier for tools to handle consistently.
What today's agent memory formats actually store
"Memory" covers a bunch of different things. Treating them like they're interchangeable causes confusion, because each type has different assumptions about who creates it, how it's addressed, and when it should be forgotten.
| Format family | Typical memory unit | How it is addressed | Common lifecycle behavior |
|---|---|---|---|
| Instruction files | A Markdown document or rule | File path, sometimes with globs | A person edits or removes it |
| Agent-managed files | A file selected by the agent | A path in a memory directory | Usually persists until deleted |
| Hosted repository facts | A fact linked to code | Repository or product account | May expire after inactivity |
| Context blocks | A labeled section of agent state | Agent and block label | Often remains in active context |
| Extracted facts | A fact derived from a conversation | User, agent, run or application ID | May support optional expiration |
| Namespaced stores | A JSON value | Namespace and key | May have a time-to-live |
| Knowledge or temporal graphs | Entities, relations and observations | Entity or graph edge | Can preserve changes over time |
| Addressed records | A record with scope, key and lifecycle | Scope plus key | Depends on configured expiration |
These aren't just different file extensions. A project instruction file is often maintained by a person and meant to guide lots of future work. An extracted fact might be generated automatically from a conversation and should carry more uncertainty. A graph can represent relationships and how they change over time, while a simple key-value store can be easier to run and reason about.
Useful ideas already appear in separate tools
Some design choices are worth preserving in any shared model. Code citations can help people check a fact against its source. Explicit expiration can reduce the chance that outdated info keeps getting used. A small operation model like put(namespace, key, value) is usually easier to implement than a sprawling menu of vendor-specific actions. Temporal graphs can distinguish when something was true versus when a system learned it.
Plain files also have a real advantage: people can inspect, edit, and version them. For small teams, that simplicity can matter more than a more complex database. The trade-off is that concurrent edits, structured queries, and lifecycle management get harder as usage grows.
No single approach fits every agent. The practical requirement is that a consuming tool understands enough about a record to decide whether it applies, who supplied it, and how to treat its lifetime. A common "envelope" can provide that consistency while letting the content itself stay Markdown, structured data, or another declared content type.
What existing proposals solve and what they leave open
Portable memory format work has started from a few different angles. Some proposals package memories so they can be exported between platforms. Others focus on importing data from existing memory products or moving conversations and the memories derived from them. Those efforts matter: if you switch vendors and lose the context you relied on, portability is a real user need.
But export alone doesn't cover what teams need when multiple agents run at the same time. A package can move a snapshot from one system to another without answering how a CI job and an editor agent should safely read and update the same live record. A useful shared approach has to address both portability and live addressing.
Portability and coordination are different jobs
Portability asks: can I take my data out, preserve what it means, and bring it into another product? That typically requires a clear serialization format, a manifest, and rules for preserving information a destination system doesn't recognize. Deletion records and optional signatures can also support data control and provenance.
Live coordination asks: can multiple tools find the same memory, understand whether it applies to their task, and update it without silently creating duplicates or trampling each other? That needs shared rules for scope, identity, and operations. A repository-level fact, for example, shouldn't end up treated like a global instruction. A second write should have a defined outcome: update the existing item, create a new version, or keep both records.
A proposal that solves one job shouldn't be rejected just because it doesn't solve the other. The mistake would be to call an export package a full interoperability standard when teams also need shared semantics and predictable behavior at runtime.
MCP is useful, but it does not define the memory
The Model Context Protocol (MCP) helps applications expose tools and resources to agents. That improves connectivity, but it doesn't guarantee that two tools use the same underlying data model. One server might return facts with citations, another might return graph entities, and a third might assign different meanings to "write" or "delete."
This is the same split you see elsewhere in infrastructure: a protocol can standardize how data moves while leaving open what the data means. Interoperability needs both. MCP can be a useful transport or interface layer, but a shared memory standard would still need common record semantics, field conventions, and operation behavior.
The timing is decent because many agent formats are still new. A neutral standards process could start from existing implementations instead of imposing a model from one vendor. The hard part isn't announcing "yet another format." It's deciding which pieces are already common enough to standardize, and which should remain competitive.
Conclusion
Agent memory doesn't need a single universal storage product. What it needs is enough shared structure for tools to figure out where a record applies, whether it's the same record they've already seen, who wrote it, and when it should stop being trusted. Without those agreements, every new memory tool becomes another island of context.
The practical path is to build on what existing formats already do well, separate portable data from live coordination, and validate compatibility through clear conformance rules. For teams, start by mapping your current memory and testing whether agents can safely share the lessons that matter. For tool builders, the priority should be alignment around a neutral model - not yet another isolated format.