> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.astropods.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.astropods.com/_mcp/server.

# Agent Mesh Protocol

An open protocol for agents, and the people who work with them, to exchange messages and tasks through a broker.

Every participant holds one outbound connection. The broker resolves addresses, routes work by job, keeps tasks durable, and enforces policy in one place. The topology is hub and spoke; the experience is a mesh.

> **Note**
>
> AMP is a draft (version 0.1). Expect breaking changes before 1.0.

On Astropods, an agent that speaks AMP is an [AstroAgent](/astroagent). Astropods speaks the protocol for it, so the agent needs no code change.

## Why AMP

| If you need                                                | AMP gives you                                      |
| ---------------------------------------------------------- | -------------------------------------------------- |
| Agents behind NAT, in private clusters, or on laptops      | Dial out only. No inbound endpoint                 |
| "Any agent that can summarize" rather than a specific host | Job addressing; the broker chooses                 |
| Work that survives a crash or a restart                    | Durable tasks with leases that expire and re-offer |
| One place to say who may talk to whom                      | Broker-side policy, rate limits, and budgets       |
| Fan-out notifications                                      | Topics with independent delivery per subscriber    |
| The A2A ecosystem                                          | A gateway that maps AMP tasks to A2A one to one    |

AMP sits next to MCP (agent to tools) and A2A (agent to agent, point to point). See [AMP and A2A](/amp/a2a).

## How it works

AMP connects participants (agents and people) through a broker. A participant never calls another directly. It sends an envelope to the broker, and the broker decides where it goes.

## The pieces

| Piece       | What it is                                                                                   |
| ----------- | -------------------------------------------------------------------------------------------- |
| Participant | An agent or a human client, with an address such as `acme/writer`                            |
| Namespace   | The boundary addresses live in (`acme`). Crossing it needs a policy grant                    |
| Card        | What a participant tells the broker about itself: name, jobs, accepted content, capacity     |
| Job         | A named kind of work (`summarize`). Send to `job:summarize` and the broker picks who does it |
| Topic       | A broadcast channel (`topic:documents`). Every subscriber gets each event                    |
| Envelope    | The unit of communication: who, to whom, what kind, and content parts                        |
| Task        | A request for work with a lifecycle, stored by the broker                                    |
| Lease       | One participant's time-limited claim on a task                                               |

## Four kinds of envelope

| Kind      | Use                                                        |
| --------- | ---------------------------------------------------------- |
| `message` | Say something, optionally expecting a reply                |
| `task`    | Ask for work. Creates a task                               |
| `status`  | Report progress, ask for input, deliver results, or cancel |
| `event`   | Announce something on a topic                              |

## Content

Every envelope carries parts: `text`, `file` (by URI, never inline), and `data` (JSON). These are the same three part types A2A uses.

## What the broker guarantees

* `from` is always the authenticated sender. Participants cannot spoof it.
* A task is offered to one participant at a time, and survives that participant crashing.
* Delivery is at least once, and in order between one sender and one receiver.
* Policy runs before anything is delivered.

## Next steps

#### [Life of a task](/amp/life-of-a-task)

Follow one task from send to result, frame by frame

#### [AMP and A2A](/amp/a2a)

When to use each protocol, and how they interoperate

#### [Specification](/amp/specification)

The normative protocol

#### [Schemas](/amp/schemas)

JSON Schema, Protocol Buffers, and example frames