AMCP Public Draft

Agent Memory Continuity Protocol

AMCP is a minimal interoperability protocol for portable, long-term agent memory. This page is the public protocol-shaped summary: canonical record shape, current HTTP surface, auth scopes, delete semantics, portability model, and reference implementation status.

On this page

Status

Canonical public draft

Server

Nexus reference server

Client

@nunchiai/reference-agent

Surface

/v1/amcp/*

1) What AMCP is

AMCP stands for Agent Memory Continuity Protocol. Its purpose is narrow: save memory in a shared record shape, recall it later, preserve scope and provenance, and move memory between systems through export/import.

In practical terms, AMCP exists so agent memory can outlive a single session. It is meant for long-lived working memory, reusable project memory, and, where retention policy allows, memory that can remain available without a fixed expiration.

AMCP is

  • 1. a protocol for portable agent memory
  • 2. a protocol for long-term agent memory
  • 3. a canonical record shape
  • 4. a public HTTP surface for memory lifecycle operations
  • 5. a portability contract for export/import

AMCP is not

  • 1. a model protocol
  • 2. a prompt format
  • 3. a reasoning standard
  • 4. a general-purpose coding-agent product

Current public position: Nexus is the AMCP reference server implementation, and @nunchiai/reference-agent is the AMCP reference client implementation.

2) Core concepts

Memory record

The atomic memory unit stored and recalled through the protocol.

Session

A work context in which records are created, recalled, or linked. In v0.1, session is represented through origin.session_id, not scope.kind.

Scope

The ownership and visibility boundary of a record. Current values are user, project, team, and org.

Origin and policy

Origin explains where a record came from. Policy covers visibility, retention, and delete behavior.

Current standard record types are task, decision, context, artifact, convention, and error.

3) Canonical record shape

The canonical public shape is a portable JSON record. Current reference implementations shape records like this:

canonical AMCP record
{
  "id": "mem_123",
  "content": "GraphQL schema changed: User.email is now nullable.",
  "type": "decision",
  "scope": {
    "kind": "project",
    "id": "proj_abc"
  },
  "origin": {
    "user_id": "usr_1",
    "agent_id": "cursor",
    "app_id": "cursor-ide",
    "session_id": "ses_9"
  },
  "visibility": "project",
  "retention": {
    "mode": "persistent"
  },
  "tags": ["graphql", "schema"],
  "energy": 0.84,
  "source_refs": [
    {
      "kind": "file",
      "uri": "repo://schema.graphql"
    }
  ],
  "metadata": {},
  "created_at": "2026-03-18T10:00:00Z",
  "updated_at": "2026-03-18T10:00:00Z"
}

Current visibility values are private, project, team, and org. Current retention values are ephemeral, persistent, and ttl.

persistent is the long-term memory mode. When an implementation does not attach an expiration policy, that can function as effectively indefinite memory.

4) Public HTTP surface

The canonical public surface currently implemented in Nexus is:

  • 1. POST /v1/amcp/remember
  • 2. POST /v1/amcp/recall
  • 3. GET /v1/amcp/sessions
  • 4. GET /v1/amcp/sessions/:id
  • 5. POST /v1/amcp/export
  • 6. POST /v1/amcp/import
  • 7. DELETE /v1/amcp/memories/:id

Native Nexus routes still exist underneath as /v1/memory/*. Legacy /v1/amp/* routes remain only as compatibility aliases. The canonical public protocol surface is /v1/amcp/*.

remember
curl -X POST https://gateway.nunchiai.com/v1/amcp/remember \
  -H "Authorization: Bearer sk_write_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "items": [
      {
        "content": "Stripe webhook bug fixed by separating nexus billing fields.",
        "type": "error",
        "scope": { "kind": "project", "id": "p-19" },
        "visibility": "project",
        "retention": { "mode": "persistent" },
        "tags": ["billing", "stripe"]
      }
    ]
  }'
recall
curl -X POST https://gateway.nunchiai.com/v1/amcp/recall \
  -H "Authorization: Bearer sk_write_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "recent billing fixes",
    "scope": { "kind": "project", "id": "p-19" },
    "types": ["decision", "error"],
    "limit": 10
  }'

5) Auth and policy

Current API key scopes in the reference implementation are:

  • 1. memory.read
  • 2. memory.write
  • 3. memory.export
  • 4. memory.delete
  • 5. memory.admin

Current enforcement

  • 1. memory.read gates recall, sessions, and stats
  • 2. memory.write gates remember and import
  • 3. memory.export gates export
  • 4. memory.delete gates soft delete
  • 5. memory.admin allows explicit scope override

Current support boundary

Official baseline is CLI-first. Desktop and IDE variants may be config-compatible, but they are not presented as equally verified unless runtime checks were completed.

6) Delete and portability

Current delete behavior is soft delete. Deleted records are excluded from normal recall, but deletion state is retained throughdeleted_at and deletion_source.

delete response
{
  "id": "mem_abc",
  "status": "deleted",
  "deleted_at": "2026-03-18T10:00:00Z",
  "deletion_source": "user"
}

Current portability model treats export/import as first-class protocol behavior. The reference implementation supports:

  • 1. json export
  • 2. jsonl export
  • 3. import with preserve_ids, preserve_timestamps, preserve_origin, and dedupe

Hard delete or purge is not yet part of the canonical public baseline.

7) Reference implementation status

Current public baseline in Nexus includes:

  • 1. canonical AMCP HTTP surface
  • 2. export/import portability
  • 3. scope, origin, visibility, retention, and soft delete semantics
  • 4. compliance-tested server and reference client surfaces
current compliance commands
RAILS_ENV=test bin/rake amcp:compliance
RAILS_ENV=test bin/rake amp:compliance

npx -y -p @nunchiai/reference-agent@latest amcp-agent compliance

Current success tokens are AMCP_COMPLIANCE_OK and AMP_COMPLIANCE_OK. The public reference client is published as @nunchiai/reference-agent.

The reference client baseline is intentionally narrow: TypeScript, Node.js, OpenAI-compatible BYOK providers, AMCP trace output, and lifecycle verification. It exists to demonstrate the protocol, not to compete as a general-purpose coding agent.