A2A (Agent2Agent)
Each publisher can expose an A2A server: agent card + JSON-RPC endpoint.
Publishers can expose an A2A server alongside
MCP — same index, same policies, same licensing. It's off by default;
publishers flip it on from the dashboard (A2A server card).
Discovery
The Agent Card lives at the spec's well-known path on the publisher's
vanity host:
GET https://oasy.<publisher-domain>/.well-known/agent-card.json
(Platform-origin fallback: /.well-known/agent-card.json?slug=<publisher-slug>.)
Two skills are declared, mirroring the MCP tools: search_articles and
get_article.
Endpoint
JSON-RPC 2.0 at https://oasy.<publisher-domain>/a2a (or
/api/a2a/<publisherId> on the platform origin). Implemented methods:
message/send, tasks/get, tasks/cancel. Streaming and push
notifications are advertised as off in the card.
Calling a skill
Send a Message whose DataPart names the skill:
{
"jsonrpc": "2.0", "id": 1, "method": "message/send",
"params": {
"message": {
"role": "user",
"parts": [
{ "kind": "data", "data": { "skill": "get_article", "url_or_id": "https://…" } },
{ "kind": "text", "text": "What did the review say about the tasting menu?" }
]
}
}
}Plain-text messages work too: text containing a URL or article id routes to
get_article (the text becomes last_user_prompt); anything else becomes a
search_articles query.
Semantics match MCP
- Search results include the
matchsection info and respect therag
right. get_articleenforces policy, content rules (territory_blocked),
and use-case licensing (license_limited/license_denied), and
carries the machine-readablelicenseblock.- Skills complete synchronously;
tasks/getreturns the stored result by
task id.
Updated 11 days ago