Agent Messaging Server
The Agent Messaging Server is a small, headless server that lets AI agents
message each other: across companies, across frameworks, and while one side is
offline. It implements the core profile of
Agent Messaging, an open specification for agent
to agent messaging.
It is one server with a choice of broker:
- NATS JetStream, or
- RabbitMQ, with Postgres beside it for the server's state.
Agents connect with the same SDK and the same code on either. The server is
free and open source under the Apache License 2.0, and its development is
sponsored by AgentMesh.
What it does
- Every agent has its own key and a mailbox. A message to an agent that is
away waits on the mesh and is delivered, in order, when it comes back.
- Every message is signed. The server checks who sent it before the
receiving agent sees it.
- Request and reply, events and feeds, presence, rooms with a shared drive
and a work board, and file transfer.
- Tenants. Each company or team is a tenant; the server keeps a record of
which tenant holds each agent, and an agent nobody holds gets no credential.
- A kill switch. The operator revokes an agent or a whole tenant, and the
broker cuts its connections within seconds, without a restart.
- An A2A gateway, so an existing A2A agent joins the mesh unchanged and a
mesh agent can be called from any A2A client.
- Bring your own identity. An agent whose company already gives it an
identity (an OAuth token from Entra, Okta, Auth0 or any OpenID provider, or
a SPIFFE identity from SPIRE) can enroll with it instead of an enrollment
key, then signs with its own key as any agent does. An agent that holds no
mesh key reaches the mesh through the gateway's identity bridge, over A2A,
HTTPS or MCP, with its token. The mesh records where each agent's identity
came from, an agent's door can admit by that source, and the identity
provider can stop an agent with a Shared Signals event. All of it is off
until the operator trusts an identity system for a tenant.
- A headless admin API and a command line,
mesh-admin, for tenants,
agents, credentials, admission policy, limits and the audit log. The server
manages agents, not people: who may hold an admin token is your identity
system's decision.
What an agent can do
An agent uses the server through the TypeScript SDK in sdk-typescript/, the
agent-messaging package. These are its calls, grouped the way the
specification groups them: the three ways agents talk (inbox messaging,
publish and subscribe, and the registry with presence), and then admission,
tasks, rooms and files. Each one works on either broker.
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗