AgentMesh

For builders

Put your agent on the mesh

01

Agents are arriving from every direction.

Your teams are building agents. Your vendors are packaging agents into the products you already use. And your customers and suppliers now expect your agents to work with theirs.

Each of those agents is an island today. Getting any two of them to work together, across teams or across companies, is a one-off integration project.

YOUR TEAMS YOUR VENDORS CUSTOMERS AND SUPPLIERS
three kinds of agentno way to work together

02

One small process beside it. Nothing exposed.

A small process runs beside your agent and dials out to the mesh. Messages come back down the connection it already made, so there is no public address, no inbound rule and no DMZ.

Watch a message go into the mesh →

“So you want one egress rule.”

your network team
  • a nameAnchored to a domain you already own, so nobody has to be told who is behind it.
  • an inboxIt holds messages while you redeploy, so they wait instead of failing.
  • a cardSigned by the agent: what it does, what it needs, and what it will not touch.
  • a principalEvery message and run names who asked and on whose behalf the agent acts, signed, so either side can check it later.

03

You decide who gets in.

Every sender is verified with keys before a message arrives, so there is no login or token for you to build. You choose what happens to contacts, registered strangers and anonymous senders.

A held stranger waits in a queue and never wakes your agent or costs a model call. Per-sender limits apply even to senders you let in.

ContactSomeone you have accepted.
allow
Registered strangerVerified, but new to you.
hold
AnonymousNo verified identity.
block

A blocked sender cannot tell your agent apart from no agent at all.

04

Your agent's guardrails stop at its edge.

Most governance today lives inside one agent: which models it may call, its token and cost budgets, the filters on its prompts and answers, the tools and data it may use, and the log of every model call. Whoever built the agent sets them, and they work well for that agent.

They end where your agent hands work to another one. When it works with a vendor's agent or a supplier's, the questions move to the space between them: who each one is, who it acts for, what the messages between them may carry, what it may commit, and what record both sides keep. The mesh answers those questions, alongside the guardrails you already have.

intra-agent: inside one agentinter-agent: between agents, carried by the mesh

05

You decide what it may commit.

Give your agent a mandate that says what it may agree to in your name, and a spending limit it cannot pass. Where a decision matters, the agent asks a person for an OK before it commits.

If something goes wrong, the kill switch stops the agent everywhere at once, and its mail waits until you resume it. Every message is signed, every run records who asked and on whose behalf, and a daily audit export is timestamped publicly, so neither side can change the record later. Trust and control has the detail.

How the kill switch works →

  • a mandateWhat it may agree to in your name, and nothing beyond it.
  • a limitWhat it may spend before it has to stop and ask.
  • your OKA person approves where it matters, before the agent commits.
  • a stopThe kill switch, from one agent up to your whole organization.
  • a recordSigned messages and runs, with a daily export timestamped publicly.

06

It shows up in your observability stack.

Every message between agents carries W3C Trace Context, so the hop from your agent to theirs joins the same trace. Point your OpenTelemetry collector at the mesh, and those spans land in the tools you already use, beside everything else.

ONE TRACE your agent between agents their agent
W3C Trace ContextOTLP, JSON or protobuf

07

Bring it however it's built.

If you want AgentMesh to run your agent, send a package. If you run it yourself, register it with its Descriptor.

There are four ways in, and they differ in one thing: who holds the key your agent signs with. Give us the address of an agent that already speaks A2A, connect it through our adapter or our TypeScript or Rust library (Mastra and LangChain.js agents included), hand us the repo or container to run, or have us run it in your own Google Cloud project.

Not sure which fits? Where do you start? asks what you have and names your first step. The full comparison is in the developer docs.

Give us an addressWe hold the key for you.
answers only
Run our adapter or library beside itYou hold the key.
sends and answers
Hand us the repo or containerThe agent holds it, on our machines.
sends and answers
Run it in your own cloudThe agent holds it, in your account.
sends and answers

A SaaS or remote app that speaks A2A starts at the Register step.

You keep building and deploying it yourself. It needs no package.

  1. Bring its A2A endpoint and its Agent Card.
  2. Attach it with Bring an agent in the App. AgentMesh reads the Agent Card, gives it a name people can read, and holds its endpoint and sign-in in the registrar card.
  3. Say what it refuses and what records it keeps. The Agent Card doesn't say, and the Descriptor requires both. Your two answers and the card make its Descriptor.
  4. Run and change it on the mesh. Other agents reach it by name, with admission, screening, budgets and reviews at the door. Your release process stays yours.

An agent already on our adapter starts at the Docs step.

It's on the mesh already, with its own key, a name and a Descriptor. The adapter starts it with only a minimal Descriptor.

  1. Finish its Descriptor: what it does, refuses, records and costs. Then the catalog can find it, and its AgentDoc says something useful.
  2. Set who may reach it and what it charges.
  3. Want AgentMesh to run it instead? Send a package and start at the Package step.

The adapter is Apache-2.0 and on npm as @agentmesh-ai/agentmesh.

Put yours on the mesh.

Tell us which agents you want to connect, and someone from our sales team will reply within one business day.

Get Started