A2A: laat AI-agents uw site aanroepen
Gepubliceerd:
Een AI-agent heeft deze site zojuist gevalideerd zonder een browser te openen, op een knop te klikken of een pagina te scrapen — hij las een klein JSON-bestand, stuurde één getypeerd verzoek en ontving een gestructureerd resultaat. Die uitwisseling is A2A, en elke website kan dit aanbieden.
Wat A2A is
A2A (Agent2Agent) is een open protocol — nu ondergebracht bij de Linux Foundation — waarmee AI-agents elkaar kunnen ontdekken en aanroepen via gewone HTTP. Beschouw het als het agent-naar-agent-equivalent van een publieke API: in plaats van een mens die uw documentatie leest en een integratie schrijft, leest een andere agent een machinebeschrijving van wat uw service doet en roept die rechtstreeks aan.
Het bestaat uit twee delen: een ontdekkingsdocument (de agent card) en een aanroepbaar eindpunt (de skill).
1. De agent card — ontdekking
U publiceert een JSON-bestand op /.well-known/agent-card.json dat beschrijft wie u bent en wat u kunt doen. De verplichte velden zijn name, description, version, url (uw A2A-eindpunt) en ten minste één skill:
{
"protocolVersion": "0.3.0",
"name": "llms.txt Validator",
"description": "Validate a website's llms.txt and return a score with findings.",
"url": "https://llms-txt-validator.dev/a2a",
"skills": [{ "id": "validate_llms_txt", "name": "Validate llms.txt",
"description": "Given a domain or URL, fetch and validate its llms.txt." }]
}
2. Het eindpunt — een aanroepbare skill
De url in de card verwijst naar een JSON-RPC 2.0-eindpunt. Een agent roept de methode message/send aan met een bericht; u verwerkt het verzoek en geeft een Task terug. Hier is een echte aanroep naar onze agent:
POST /a2a
{ "jsonrpc": "2.0", "id": "1", "method": "message/send",
"params": { "message": { "role": "user",
"parts": [{ "kind": "text", "text": "validate llmstxt.org" }] } } }
…en het antwoord — een voltooide taak met een leesbare samenvatting en gestructureerde data:
{ "result": { "kind": "task", "status": { "state": "completed" },
"artifacts": [{ "parts": [
{ "kind": "text", "text": "Validated llmstxt.org: score 100/100..." },
{ "kind": "data", "data": { "ok": true, "report": { "scores": { "overall": 100 } } } }
] }] } }
Geen browser, geen HTML-parsing — de agent krijgt precies de data waarnaar hij vroeg.
A2A vs WebMCP vs MCP
- A2A — netwerk-agents die uw service aanroepen via HTTP (orchestrators, andere agents). Deze pagina.
- WebMCP — een agent die binnen de browser draait en tools aanroept op uw geopende pagina.
- MCP — tools verbinden met één enkel model of app, doorgaans lokaal.
Ze vullen elkaar aan: A2A bereikt netwerk-agents, WebMCP bereikt in-browser-agents. Zie hoe de drie samen passen.
Hoe elke site er één kan toevoegen
U hoeft niet het volledige protocol te implementeren om te beginnen — kies één echte functie die uw service biedt:
- Publiceer een geldige agent card op
/.well-known/agent-card.jsonmet één skill. - Implementeer de synchrone methode
message/senddie die functionaliteit omhult, en geef een voltooideTaskterug met het resultaat als artifact. - Streaming, taakgeschiedenis en push-notificaties zijn optioneel — stel
capabilities.streamingin op false en voeg ze alleen toe wanneer u ze nodig heeft.
De ene regel: ondersteun de card met een echt eindpunt
De card is een contract, geen meta-tag. Als u een card publiceert waarvan de url niet daadwerkelijk reageert op message/send, loopt elke agent die erop vertrouwt vast. Bied A2A alleen aan voor functionaliteit die u werkelijk kunt leveren — zo hebben wij de onze gebouwd, en daarom markeert ons eigen rapport het signaal alleen als aanwezig wanneer er een werkend eindpunt achter zit. Wilt u het live zien? Haal onze agent card op.