MinhVo

Minh Vo

rss feed

Slaying code & making it lit fr fr 🔥 tagline

Hey there 👋 I'm an AI Engineer with 7 years of experience building scalable web and mobile applications. Currently at Neurond AI (May 2025 — present), architecting an Enterprise AI Assistant Platform with multi-tenant RAG on pgvector, multi-provider LLM orchestration, and Azure-native infrastructure. Previously spent 5+ years at SNAPTEC (Sep 2019 — Apr 2025), leading SaaS themes, admin dashboards, and e-commerce platforms — earned the Hero of the Year award in 2021. I specialize in TypeScript, React, Next.js, and AI-Native engineering with Claude Code and Cursor.bio

Back to blogs

A2A Protocol Agent-to-Agent Communication Standard by Google

Google's Agent-to-Agent (A2A) protocol enables AI agents to discover, communicate, and collaborate across platforms and frameworks.

a2aai-agentsprotocolsgoogleinteroperability

By MinhVo

Introduction

Google's Agent-to-Agent (A2A) protocol is an open standard designed to enable AI agents to communicate, discover each other's capabilities, and collaborate on complex tasks. While MCP (Model Context Protocol) connects agents to tools, A2A connects agents to other agents — creating a network of cooperating AI systems.

The need for A2A arises from the proliferation of AI agents built on different frameworks, by different teams, using different models. An enterprise might have a customer support agent built with LangChain, a data analysis agent built with CrewAI, and a code review agent built with AutoGen. Without a standard communication protocol, these agents cannot collaborate — each operates in its own silo.

A2A solves this by defining a standard way for agents to advertise their capabilities (Agent Cards), accept tasks (Task management), exchange messages (Message types), and share artifacts (Artifact exchange). This enables a customer support agent to delegate a technical question to a code review agent, or a data analysis agent to request code generation from a coding agent — all without custom integration code.

The protocol builds on existing web standards: HTTP for transport, JSON-RPC for message formatting, and SSE for streaming. This makes A2A compatible with existing infrastructure and easy to implement in any language or framework.

Understanding A2A Protocol

ai illustration

Google's Agent-to-Agent (A2A) protocol is an open standard designed to enable AI agents to communicate, discover each other's capabilities, and collaborate on complex tasks. While MCP (Model Context Protocol) connects agents to tools, A2A connects agents to other agents — creating a network of cooperating AI systems.

The need for A2A arises from the proliferation of AI agents built on different frameworks, by different teams, using different models. An enterprise might have a customer support agent built with LangChain, a data analysis agent built with CrewAI, and a code review agent built with AutoGen. Without a standard communication protocol, these agents cannot collaborate — each operates in its own silo.

A2A solves this by defining a standard way for agents to advertise their capabilities (Agent Cards), accept tasks (Task management), exchange messages (Message types), and share artifacts (Artifact exchange). This enables a customer support agent to delegate a technical question to a code review agent, or a data analysis agent to request code generation from a coding agent — all without custom integration code.

The protocol builds on existing web standards: HTTP for transport, JSON-RPC for message formatting, and SSE for streaming. This makes A2A compatible with existing infrastructure and easy to implement in any language or framework.

Agent Cards and Service Discovery

The foundation of A2A is the Agent Card — a JSON document that describes an agent's capabilities, supported interaction modes, and authentication requirements. Agent Cards are served at a well-known URL (/.well-known/agent.json) following the convention established by other web standards.

An Agent Card includes the agent's name, description, URL endpoint, supported input/output modalities (text, files, structured data), and authentication schemes. This metadata enables other agents to discover and understand capabilities without manual configuration. An orchestrator agent can query Agent Cards to determine which sub-agents are available for a given task.

Service discovery in A2A can be local (for agents running in the same environment) or distributed (for agents across organizations). Enterprise deployments typically use an agent registry that aggregates Agent Cards from internal agents, providing a central catalog for discovery. Public agent marketplaces are emerging that allow organizations to offer agent services to external consumers.

The Agent Card format is extensible, allowing agents to declare custom capabilities and metadata. This flexibility supports diverse use cases while maintaining interoperability for common interaction patterns.

Task Management and Collaboration

A2A defines a task lifecycle that manages the state of agent-to-agent interactions. Tasks progress through states: submitted, working, input-required, completed, failed, and canceled. This lifecycle enables asynchronous collaboration where agents can submit tasks, continue working on other things, and check back for results.

Each task has a unique ID, a set of messages exchanged between agents, and optional artifacts (files, structured data, or other outputs). Messages support multiple parts — text, images, files, and structured data — enabling rich, multimodal communication between agents.

The input-required state is particularly powerful for human-in-the-loop workflows. When an agent encounters a question it cannot answer autonomously, it can pause the task and request human input through the originating agent. This enables semi-autonomous workflows where agents handle routine tasks and escalate edge cases to humans.

Task delegation follows a push model: the orchestrator agent sends a task to a sub-agent's endpoint, specifying the desired capability and providing context. The sub-agent processes the task asynchronously and either returns results immediately (for fast operations) or provides a task ID for polling (for longer operations). Streaming updates via SSE enable real-time progress monitoring.

A2A vs MCP: Complementary Standards

ai illustration

A2A and MCP serve different but complementary purposes in the AI ecosystem. MCP connects agents to tools — external data sources, APIs, and services that extend an agent's capabilities. A2A connects agents to other agents — enabling collaboration between autonomous AI systems.

Think of it this way: MCP is how an agent uses a calculator, reads a database, or sends an email. A2A is how a coding agent asks a security agent to review its code, or how a research agent asks a writing agent to summarize its findings. Both protocols are needed for a complete multi-agent ecosystem.

The protocols can be used together in layered architectures. An orchestrator agent might use A2A to delegate tasks to specialized sub-agents, while each sub-agent uses MCP to access its own set of tools. This creates a hierarchy where A2A handles inter-agent coordination and MCP handles intra-agent tool access.

The key design difference is that MCP is session-based (a client maintains a persistent connection to a server), while A2A is task-based (agents submit discrete tasks and receive results). This reflects their different purposes: MCP provides ongoing access to tools, while A2A provides on-demand collaboration between peers.

Implementing A2A in Your Agent Architecture

Implementing A2A requires building an Agent Card endpoint and a task handler. The Agent Card advertises your agent's capabilities at /.well-known/agent.json. The task handler receives task requests, processes them, and returns results through the A2A protocol.

For Python agents, the a2a-sdk provides a framework for building A2A-compatible agents. Define your agent's capabilities, implement task handlers, and the SDK manages protocol details like message formatting, state management, and streaming. Integration with popular agent frameworks (LangChain, CrewAI, AutoGen) is supported through adapters.

TypeScript developers can use the @a2a/sdk package, which provides similar functionality with type-safe APIs. The SDK includes utilities for Agent Card generation, client-side agent discovery, and server-side task handling.

Testing A2A interactions requires running multiple agents and verifying they can discover each other, exchange tasks, and produce correct results. The A2A Inspector tool provides a web UI for testing agent interactions, similar to the MCP Inspector for tool testing.

Production deployment considerations include authentication (agents must verify each other's identity), rate limiting (preventing abuse from misbehaving agents), and monitoring (tracking task completion rates, latency, and error rates across the agent network).

Real-World A2A Use Cases and Future Outlook

Early A2A adopters are demonstrating the protocol's potential in enterprise environments. Customer support systems use A2A to route complex technical questions to specialized agents, reducing resolution times by 40-60%. Software development pipelines use A2A to coordinate coding, testing, and deployment agents, enabling fully automated CI/CD workflows.

In research and scientific computing, A2A enables collaboration between domain-specific agents. A literature review agent can discover relevant papers and pass them to a data extraction agent, which then feeds results to a synthesis agent. Each agent specializes in one task but contributes to a larger workflow.

The financial services industry is exploring A2A for multi-agent trading systems where specialized agents handle market analysis, risk assessment, and trade execution. A2A's task lifecycle management ensures that each step completes successfully before the next begins, providing the audit trail that regulatory requirements demand.

Looking ahead, A2A is expected to evolve with enhanced security features (mutual TLS, capability-based access control), richer task semantics (conditional workflows, parallel execution), and integration with emerging standards. The combination of A2A for agent communication and MCP for tool access creates a comprehensive foundation for the multi-agent AI ecosystem.

Conclusion

The topics covered in this article represent important developments in modern software engineering. By understanding these concepts deeply and applying them in your projects, you can build more robust, scalable, and maintainable systems. Continue exploring, experimenting, and building — the technology landscape rewards those who stay curious and keep learning.