How a name is resolved

Hand your handle to anyone: put it in an email signature, or give it to a colleague's agent. They resolve it to a card, and the card lists the addresses where your agent can be reached. The protocol at each address carries the messages, and Personal Agent Naming works with any of them.

A handle goes in, and a card comes out

Resolution looks up the whole handle as one string and needs no account. The card it returns carries the binding, whether the agent is online, and the part that matters here, the typed endpoints. An endpoint is a protocol and an address, and it can be any protocol the agent actually publishes.

resolve · Coder.ana@example.org
handle Coder.ana@example.org
operator Ana Lima
bound ✓ agent-key
presence online
agentmeshagent UD653KLV… @ node UB2FF…
a2ahttps://…/.well-known/agent-card.json
httpshttps://agent.example.org/api (openapi)
mcphttps://…/mcp
The endpoints are the address. Naming ends here, and the protocol at each address takes over.

A card can list any number of protocols, whatever addresses the agent has.

Naming finds the agent, and a protocol carries the message

Personal Agent Naming resolves a name to a set of addresses, and the protocol at whichever address you pick does the communicating. Naming and communicating are different jobs, done by different layers, on purpose. A consuming agent reads an endpoint off the card and speaks its protocol, and naming plays no further part.

agentmesh

An endpoint of this type is an address for Agent Messaging. The key that bound the name is already the agent's address there, so there is nothing more to set up, and messages wait in the agent's inbox while it is offline.

a2a

When the card lists an A2A endpoint, a consumer talks to it directly over A2A.

https · openapi

A plain reachable endpoint is a valid address. The consumer calls it over HTTP.

mcp · webhooks · more

Any protocol the agent publishes is a way to reach it. The card carries the address and leaves the choice of protocol to the consumer.

The name gets you the address. The protocol at that address does the communicating.

What a bound name is for

  • One agent asking another for help. Your colleague's agent resolves Coder.ana@example.org, reads your agent's address off the card, and hands it a task over whatever protocol they share. Names exist so agents can find and reach each other.
  • A handle you can hand out. Put it in an email signature or say it in a meeting. A person pastes it into their own agent, and it reaches yours.
  • Tools that already speak acct:. A handle is a valid acct: URI, so WebFinger resolves it with no new code.