Published on

Google's A2A - Promises vs. Real-World Experience

A2A (Agent-to-Agent Protocol) is Google's answer to agent communication in the evolving AI landscape (read their launch post here). I messed around with it to get some hands-on experience.

What A2A Actually Is (and Isn't)

A2A is a protocol to define how autonomous agents discover and communicate with each other. Like MCP (Model Context Protocol), it's designed to create interoperability between different parts of an AI system.

A2A primarily enables:

  • Agent-to-agent communication
  • Agent capability discovery
  • Task delegation and coordination
  • Structured interaction formats (text, forms, bidirectional audio/video)

This is in contrast to MCP which enables:

  • LLMs to utilise tools
  • Updating LLM context with data from tools

A2A operates at a higher layer in the abstraction than MCP.

My Real-World Experience with A2A

I recently tested one of A2A's sample projects - a form-completion agent that works with an orchestration LLM. The project is designed to handle expense reimbursement by collecting date, amount, and purpose information from users.

Here's what happened:

  • In my first interaction, the system requested a "reference_id" that wasn't explained anywhere (along with the date, amount and purpose of the expense)
  • When I submitted the data with a made up a reference ID, the system complained the expense didn't exist
  • I had to probe the system to understand what a reference ID was (apparently created during request initialization)
  • I suggested "OK use the request_id that was created with this request" and it

The Development Reality Check

This experience made it clear:

Building an agent that works well requires just as much design effort as building traditional software.

The only efficiency gain comes from taking shortcuts in the development process - which inevitably transfers the burden to end users who must then negotiate with an LLM to achieve whatever their task is.

MCP vs. A2A: Key Differences

MCP focuses on connecting LLMs to tools through a client-server model, while A2A creates a communication layer between different agents. In practical terms:

  • MCP is for giving LLMs access to specific tools and data
  • A2A is for orchestrating multiple agents