Open Standard · v0.1 Draft · CC-BY 4.0

The Open Agent Memory Standard.

A vendor-neutral protocol for agent memory portability. Your memories, your graph, your dreams — portable across every AI provider.

Read the canonical spec → Comment on GitHub
Markdown source at /OAMS-SPEC.md · License CC-BY 4.0 · Comments to dev@remlabs.ai
Why it exists

Every provider reinvents memory. Agents speak different dialects.

We have shared standards for authentication (OAuth), for schemas (JSON Schema), for transport (HTTP). We have nothing for the most important piece of an agent's identity: its memory. OAMS fixes that.

01
Vendor lock-in is the #1 friction.
Teams pick an agent framework and discover their memory is trapped inside it. Switching providers means starting from scratch. A year of agent context, gone. OAMS makes memory a first-class asset you own — not a feature you rent.
02
Every provider reinvents memory differently.
One vendor stores embeddings. Another stores triples. A third stores raw text with tags. The shapes, the scoring, the consolidation semantics — all incompatible. OAMS defines a minimal object every implementation can speak.
03
Agents need a common tongue.
Multi-agent systems route tasks across vendors: one for reasoning, another for code, a third for the long-horizon planner. Without a shared memory protocol, every hand-off leaks context. OAMS is the lingua franca for the agent mesh.
The spec

Four primitives. That's the whole protocol.

OAMS is intentionally small. The protocol defines the shape of a memory, the envelope for cross-agent federation, the contract for consolidation, and the discovery surface. Everything else — storage, indexing, policy — is implementation choice.

OAMS.MEM
Memory Object
v0.1

The atomic unit. Every memory, from every vendor, reduces to this shape. Embeddings are optional and dimension-agnostic. Confidence is a calibrated scalar in [0, 1]. Metadata is open-ended.

type OAMSMemory = {
  id: string;              // stable, unique
  namespace: string;       // agent scope
  content: string;         // canonical text
  embedding?: number[];     // optional
  confidence: number;      // 0.0 - 1.0
  created_at: string;      // ISO 8601
  metadata: Record<string, unknown>;
}
Required fields: id, namespace, content, confidence, created_at.
Embedding contract: absent means the store owns vectorization. If present, dimension is declared at namespace scope.
Stability: id is an opaque string. Implementations MAY use UUIDv7 but MUST NOT rely on ordering.
OAMS.FED
Federation Envelope
v0.1

When one agent shares memory with another — across frameworks, across vendors — the payload travels in a federation envelope. Scope is explicit. TTL is enforced. Audit lineage is preserved through the hop.

type OAMSEnvelope = {
  source_agent: string;       // DID or URL
  target_agents: string[];     // recipients
  scope: "read" | "read_write" | "mirror";
  ttl: number;                 // seconds, 0 = session
  payload: OAMSMemory[];
  audit: AuditTrail;
}
Scope semantics: read is a view, read_write lets the target update originals, mirror forks a local copy.
TTL: expired envelopes MUST be purged at the receiver. ttl: 0 means ephemeral — never persist.
Transport-agnostic: A2A, MCP, plain HTTPS, or a queue. The envelope is the contract.
OAMS.PIPE
Consolidation Pipeline
v0.1

Consolidation is how raw memories become knowledge. OAMS does not dictate the algorithm — it defines the contract: named strategy, declared inputs, declared outputs, and a verifiable audit trail.

type OAMSPipeline = {
  strategy: string;            // e.g. "synthesize"
  version: string;             // semver
  inputs: string[];             // memory ids
  outputs: string[];            // resulting ids
  audit_log: {
    started_at: string;
    finished_at: string;
    actor: string;              // model + version
    reason: string;
  };
}
Deterministic lineage: every derived memory points back to its inputs. Full provenance, every hop.
Reserved strategies: synthesize, contradict, compress, associate, forecast. Vendors add their own.
Replay: audit log is sufficient to re-execute a pipeline and verify outputs. No black boxes.
OAMS.CAP
Capability Negotiation
v0.1

Before two systems exchange memory, they handshake. A well-known URL describes what the provider supports: which pipelines, which transports, which scopes. Discovery is static. No SDK required.

GET /.well-known/oams-capabilities
Accept: application/json

// Response
{
  "oams_version": "0.1",
  "strategies": ["synthesize", "compress"],
  "transports": ["https", "a2a", "mcp"],
  "embedding_dim": 1536,
  "max_payload": 10485760,
  "auth": ["bearer", "mtls"]
}
Static discovery: one unauthenticated GET reveals everything a peer needs to know.
Graceful degradation: unknown strategies MUST be ignored, not rejected. Forward-compatible by design.
Zero SDK: any HTTP client can participate. Language, framework, and runtime are out of scope.
Contributors

Drafted by REM Labs. Owned by the community.

The initial draft is ours. The final standard is not. We are actively recruiting two co-author organizations to ratify v1.0. Below are the governance commitments this group has already made.

REM Labs
Founding author
Drafted the v0.1 spec. Reference implementation ships inside the REM memory layer. Spec text contributed under CC-BY 4.0.
Partner TBD
Co-author slot
Open slot for an agent framework or runtime vendor committed to memory portability. Active conversations in progress.
Partner TBD
Co-author slot
Open slot for an enterprise platform or observability provider with production-scale memory workloads.
License
CC-BY 4.0 (spec)
The spec text is CC-BY 4.0 — copy, fork, adapt, redistribute with attribution. Reference implementations carry their own licenses (the REM Labs reference is dual-licensed AGPL-3.0 / commercial).
Process
RFC + Working Group
Proposals enter as RFCs. A quorum of co-authors ratifies. Rejected proposals keep their paper trail. No private votes.
Versioning
Semantic Versioning
Breaking changes mean a major bump and a migration guide. Every capability document declares the version it speaks.
Adoption path

From draft to reference implementation in four quarters.

We publish the ratification path so teams can plan against it. No hidden schedules. No surprise breaking changes.

Step 01
2026 Q2
Draft v0.1
Four primitives defined. Schemas public. Reference tests on GitHub. Open call for feedback from agent framework authors.
Step 02
2026 Q3
RFC period
Co-author slots ratified. Open RFC period for breaking changes. Compliance test suite published. Interop day scheduled.
Step 03
2026 Q4
v1.0 final
Spec frozen under semver guarantees. Badge program for compliant implementations. Public conformance reports.
Step 04
2027 Q1
Reference impl
Open-source reference server in Python and TypeScript. Language-agnostic conformance harness. Public interop registry.
Get involved
The spec is public. The working group is open.

Read the full RFC for v0.1, file comments against the schemas, or start implementing today. OAMS succeeds when every agent platform speaks the same memory protocol — help us get there.

Standards disclosure

OAMS v0.1 is a draft published for comment. Field names, schemas, and semantics may change before v1.0 is ratified. REM Labs implements the spec internally as the public working reference, but no production SLA is attached to draft versions. Track changes in the changelog and open discussion on.