Agent-to-Agent Protocol (A2A)

How Agentic Booking uses Google's Agent-to-Agent protocol.


What is A2A?

A2A (Agent-to-Agent) is Google's open protocol for agent interoperability. It defines how AI agents discover each other, negotiate capabilities, and communicate.

Agent Cards

JSON documents describing what an agent can do, published at /.well-known/agent.json.

Skills

Declared capabilities like recommend, book, verify, answer.

Message Format

Standardised request/response patterns for agent communication.

Discovery

Well-known endpoints for finding and validating agents.


Agent Cards in Agentic Booking

Both Venues and Curators publish A2A Agent Cards:

Venue Agent Card

{
  "agentCard": {
    "name": "The Roste",
    "description": "Historic coaching inn in Burnton Market",
    "endpoint": "https://theroste.co.uk/api/agent",
    "skills": ["check-availability", "get-rates", "book", "modify", "cancel"]
  },
  "venue": {
    "schemaVersion": "0.1.0",
    "type": "hotel",
    "identity": {...},
    "vibe": {...},
    "units": [...]
  }
}

Curator Agent Card

{
  "agentCard": {
    "name": "Visit Eastshire",
    "description": "Official tourism authority for Eastshire",
    "endpoint": "https://visiteastshire.co.uk/api/agent",
    "skills": ["recommend", "answer", "getStory", "listVenues", "verify"]
  },
  "curator": {
    "schemaVersion": "0.2.0",
    "type": "curator:dmo",
    "coverage": {...},
    "stories": {...}
  }
}

Discovery Flow

1. Agent receives: "Book a dog-friendly hotel in Eastshire"

2. Find Curator → fetch https://visiteastshire.co.uk/.well-known/agent.json

3. Query Curator → POST /recommend { intent: "dog-friendly", region: "Eastshire" }

4. Receive recommendations with venue endpoints

5. Fetch venue → https://theroste.co.uk/.well-known/agent.json

6. Check availability → POST /check-availability

7. Book → POST /book

Skills

Venue Skills

SkillPurpose
check-availabilityQuery dates/units for availability
get-ratesGet pricing for specific dates
bookCreate a booking
modifyChange an existing booking
cancelCancel a booking

Curator Skills

SkillPurpose
recommendGet venue recommendations based on intent
answerAnswer questions about the region/collection
getStoryRetrieve a specific story
listVenuesList venues matching criteria
verifyCheck certification status

Message Format

A2A uses JSON-RPC style messages:

Request

{
  "method": "recommend",
  "params": {
    "intent": "romantic weekend with good food",
    "region": "Eastshire",
    "party": { "adults": 2 },
    "constraints": {
      "dates": { "checkIn": "2026-03-14", "checkOut": "2026-03-16" }
    }
  }
}

Response

{
  "result": {
    "recommendations": [
      {
        "venue": {
          "id": "the-roste-burnton",
          "name": "The Roste",
          "endpoint": "https://theroste.co.uk/.well-known/agent.json"
        },
        "reason": "Editors' choice for romantic stays",
        "storyUrl": "https://visiteastshire.co.uk/stories/the-roste"
      }
    ]
  }
}

Well-Known Endpoints

EndpointPurpose
/.well-known/agent.jsonA2A Agent Card
/.well-known/did.jsonDID document for identity
/.well-known/ucpUCP profile (if using UCP)

Relationship to Other Protocols

A2A                    Agent discovery + communication
 │
 └── UCP               Commerce orchestration (optional)
      └── AP2          Payment authorization

A2A provides the agent layer. UCP provides commerce orchestration. They can be used together or independently.


Resources