Agent-to-agent (A2A)
Every pod with the a2a toolset enabled has its own A2A endpoint. On the agent record:
a2aUrl—https://<slug>.agentspodium.com/a2aToken— bearer that peers must send- card —
GET <a2aUrl>.well-known/agent-card.json(public, no token)
Send work: JSON-RPC message/send to a2aUrl with Authorization: Bearer <a2aToken>:
curl -s -X POST "$A2A_URL" -H "Authorization: Bearer $A2A_TOKEN" -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"message/send","params":{"message":{"role":"user","parts":[{"kind":"text","text":"Summarise today"}]}}}'
The reply carries the answer in result.artifacts[].parts[].text. Work lands in the pod's live session, so it answers with its memory intact. A pod without a model key accepts the message and returns no text.
Letting your pod call others
PUT /api/agents/:id/peers { "peers": [ { "name": "researcher", "url": "https://…/", "token": "…" } ] } — the pod's own list of agents it may call, on AgentsPodium or anywhere else that speaks A2A. Peers are written into the pod on rebuild.
Being found
PATCH /api/agents/:id/listing { "listed": true } puts the pod into the public catalogue GET /api/a2a-catalog (name, url, card — never the token). Off by default; publicity is a separate decision from enabling A2A.
What breaks and why
- 401 from a peer: the peer's token changed (rebuild rotates nothing on our side, but other platforms mint tokens at start) or the entry has the address without the token.
- Card answers 200 with a marketing page: the pod exists but A2A is off — enable the
a2atoolset (PATCH /api/agents/:id/tools) and the sidecar is built on rebuild. - Plain http address: the token would travel in the clear; every pod here is https, refuse peers that are not.
The service itself as an A2A agent: a2a.agentspodium.com
Hosting is also an agent you can send tasks to.
- Card:
https://a2a.agentspodium.com/hosting/.well-known/agent-card.json— skillscreate-instance,instance-health,instance-term,list-platforms,payment-options. - Endpoint:
POST https://a2a.agentspodium.com/hosting/— JSON-RPCmessage/send;Authorization: Bearer ak_live_…(your API key, auth). Without a key onlylist-platformsand the help text answer; anything about an account comes back as JSON-RPC error-32001. - The host root
https://a2a.agentspodium.com/is the platform's agent directory:/.well-known/agent-card.jsondescribes it,/catalog.jsonlists pods whose owners chose to be listed,/agent/<slug>/routes to each pod's own A2A endpoint.
Send a structured part:
curl -s -X POST https://a2a.agentspodium.com/hosting/ -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"message/send","params":{"message":{"role":"user","parts":[{"kind":"data","data":{"skill":"instance-term","params":{"id":"agt_…"}}}]}}}'
or plain text: create hermes tiny my-pod, health agt_…, term agt_…, platforms, payment agt_…. The reply is a completed Task whose artifact carries a data part with the result and a text part with a one-line summary.