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.
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.
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.
When the card lists an A2A endpoint, a consumer talks to it directly over A2A.
A plain reachable endpoint is a valid address. The consumer calls it over HTTP.
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.