Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

My agents kept forgetting each other, so I wrote a protocol about it

Description and use

AMP standardizes memory sharing across heterogeneous agents, providing a single JSON schema, a REST API, and an automated decay engine, reducing inter‑agent forgetting.

Problem

Multiple agents built with different frameworks each maintain separate memory layers, causing inter‑agent forgetting and inconsistent data sharing.

Outcome

AMP standardizes memory sharing across heterogeneous agents, providing a single REST API, permissioned cells, and automated decay, reducing inter‑agent forgetting.

Workflow

  • Define a unified JSON memory schema with content, owner, creator, session, importance score, and access policy.
  • Expose a REST API (POST /amp/v1/memories, GET /amp/v1/memories/{id}, etc.) that any language can call.
  • Implement a decay engine that moves cells from active → stale → archived based on importance score and time thresholds.
  • Add permission checks on each cell (readable_by, writable_by, public).
  • Create a conformance test suite that interacts with the server over HTTP to validate spec compliance.
  • Deploy the server locally (Docker Compose) and test with real agents.
  • Iterate on bugs discovered by tests (duplicate rules, unenforced policies, unreachable routes, incorrect benchmarks).

Evidence

A LangChain agent cannot read a LlamaIndex agent's memory, and there is no agreed shape to hand over even if it could.

Source

I wrote AMP, an open HTTP protocol for agent memory.

Source

Three pieces, and I worked hard not to add a fourth.

Source

Permission sits on the cell (readable_by, writable_by, public: false), and a cell you cannot read looks identical to a deleted one, so error codes cannot be used to probe.

Source

Importance decays, cells fall through active to stale to archived on their own, and deletion refuses to beat the retention window the docs advertise.

Source

I wrote a conformance suite that talks to a server over HTTP and imports nothing from my implementation.

Source

  • Record date: 2026-10-04T12:40:59.668Z