Skip to main content

Agent-to-Agent Protocol (A2A)

Discover, invoke, and expose AI agents across application boundaries using the Agent-to-Agent (A2A) protocol.

What Is A2A?

The Agent-to-Agent (A2A) protocol, developed by Google, is an open standard that enables AI agents running in different applications to discover each other, negotiate capabilities, and delegate tasks — all over HTTP. Unlike tool-calling protocols that expose individual functions, A2A operates at the agent level: a remote agent is a self-contained entity with its own reasoning, tools, and context.

Key concepts:

ConceptDescription
Agent CardA JSON document published by a host that describes the agent's name, description, skills, and endpoint URL. Clients fetch this to discover what a host offers.
SkillA named capability advertised on an Agent Card (e.g., "translate-text", "summarize-document"). Each skill becomes an invokable tool on the client side.
HostAn application that exposes one or more AI agents to remote clients.
ClientAn application that discovers and invokes remote agents hosted elsewhere.
MessageThe unit of communication — a client sends an AgentMessage to the host and receives a response containing text, artifacts, or task status.

When to Use A2A vs MCP

Both protocols connect AI systems across boundaries, but they solve different problems:

CriteriaA2AMCP
Abstraction levelAgent-level (send a task, get a result)Tool-level (call a function, get a return value)
Best forDelegating complex, multi-step work to a remote AI agentExposing individual functions, data sources, or resources
Remote agent has its own AI model?✅ Yes — the remote agent reasons independently❌ No — tools are stateless functions
Conversation contextMaintained via contextId across messagesStateless per tool call
DiscoveryAgent Cards with skillsTool lists with JSON schemas
Use when"Ask the legal team's agent to review this contract""Call the weather API to get today's forecast"

Rule of thumb: If the remote system needs to think (use an AI model, maintain context, choose its own tools), use A2A. If it just needs to do (execute a function and return data), use MCP.

You can use both in the same application — A2A for agent delegation and MCP for tool access.

Architecture

┌─────────────────────────────────┐          ┌──────────────────────────────────┐
│ A2A CLIENT │ │ A2A HOST │
│ │ │ │
│ ┌───────────┐ │ HTTP │ ┌──────────────┐ │
│ │ AI Model │ │ ◄──────► │ │ AI Profiles │ │
│ └─────┬─────┘ │ │ └──────┬───────┘ │
│ │ tool call │ │ │ │
│ ┌─────▼──────────────────┐ │ │ ┌───────────────────▼────────┐ │
│ │ A2AToolRegistryProvider│ │ │ │ Agent Card Generator │ │
│ │ (discovers skills as │ │ │ │ (profiles → agent cards) │ │
│ │ tool entries) │ │ │ └───────────────────┬────────┘ │
│ └─────┬──────────────────┘ │ │ │ │
│ │ │ │ ┌──────────────────▼─────────┐ │
│ ┌─────▼──────────────────┐ │ fetch │ │ /.well-known/agent.json │ │
│ │ A2AAgentProxyTool ├─────┼──────────┼──► (Agent Card endpoint) │ │
│ │ (proxies messages │ │ │ └───────────────────────────┘ │
│ │ to remote agent) │ │ send │ │
│ │ ├─────┼──────────┼──► /a2a (message endpoint) │
│ └────────────────────────┘ │ │ │
│ │ │ Authentication: │
│ Authentication: │ │ • OpenID Connect │
│ • API Key, Basic, OAuth2, │ │ • API Key │
│ mTLS, Custom Headers │ │ • None (dev only) │
└─────────────────────────────────┘ └──────────────────────────────────┘

Quick Start

As a Client (invoke remote agents)

builder.Services
.AddCoreAIServices()
.AddCoreAIOrchestration()
.AddCoreAIA2AClient();

→ See the A2A Client page for connection setup, authentication, and tool registry details.

As a Host (expose your agents)

// Host configuration is done via A2AHostOptions
builder.Services.Configure<A2AHostOptions>(options =>
{
options.AuthenticationType = A2AHostAuthenticationType.ApiKey;
options.ApiKey = "your-secret-key";
});

→ See the A2A Host page for authentication modes, agent card generation, and endpoint configuration.

Sub-Pages

PageDescription
A2A ClientDiscover and invoke remote A2A agents — connection management, tool registry, authentication, built-in discovery tools
A2A HostExpose your AI agents to remote clients — host configuration, authentication modes, agent card generation

The framework-level A2A support documented here is protocol infrastructure. For the full admin UI experience: