Skip to main content
The Agent-to-Agent (A2A) protocol is an open standard that enables secure, framework-agnostic communication between autonomous AI agents. Instead of building bespoke integrations whenever you want agents to collaborate, A2A gives Corti and other systems a common language agents can use to discover, talk to, and delegate work to one another. For the full technical specification, see the official A2A project docs at a2a-protocol.org.

Why Corti uses A2A

We chose A2A because it:
  • Standardizes agent communication: Agents can talk to each other without siloed, point-to-point integrations. That makes composite workflows easier to build and maintain.
  • Supports real workflows: A2A includes discovery, task negotiation, and streaming updates, so agents can coordinate long-running or multi-step jobs.
  • Preserves security and opacity: Agents exchange structured messages without sharing internal memory or tools. That protects intellectual property and keeps interactions predictable.
  • Leverages open tooling: There are open source SDKs in multiple languages and example implementations you can reuse.

A2A v1.0 in Corti

The Agentic Framework supports A2A v1.0 only. The previous v0.3 protocol version is no longer supported. All requests and responses follow the v1.0 specification.

A2A-Version header

The server returns an A2A-Version: 1.0 header on every A2A response, indicating the protocol version used to handle the request. Client SDKs may also send this header on requests.

Protocol bindings

A2A v1.0 defines two protocol bindings. Corti supports both, and they share the same base URL:

JSON-RPC binding

The JSON-RPC binding sends a JSON-RPC 2.0 envelope to the base URL. The method field determines the operation:

HTTP+JSON binding

The HTTP+JSON binding uses path-suffixed endpoints. Each JSON-RPC method maps to a specific HTTP endpoint:
The HTTP+JSON binding is simpler for most use cases. Use the JSON-RPC binding if your client or tooling expects a JSON-RPC envelope.

REST query parameters

The HTTP+JSON binding supports query parameters on certain endpoints:

Agent discovery

A2A enables agent discovery through agent cards. Every agent exposes its card at the .well-known/agent-card.json location, describing its capabilities, skills, and supported protocol bindings. You can retrieve a card to inspect an agent before integrating. The agent card endpoint requires the same authentication (bearer token and tenant header) as all other v2 endpoints.

Relationship to MCP

MCP (Model Context Protocol) and A2A serve different purposes in the Agentic Framework:
  • A2A is the conversational surface: how clients talk to agents, send messages, receive tasks, and stream responses
  • MCP is a connector type: how agents call external tool servers to retrieve data or perform actions
In v2, MCP servers are attached as connectors (type mcp) to an agent. The agent runtime calls the MCP server when it needs data or actions from that tool. A2A is the protocol the client uses to talk to the agent itself.
The v1 MCP protocol and authentication pages are preserved in the v1 archived documentation. In v2, MCP concepts are covered by the connectors and connector auth pages.

Open source SDKs and tooling

For links to Corti’s official SDK and the official A2A project SDKs (Python, JavaScript/TypeScript, Java, Go, and .NET), see SDKs and integrations.

Next steps

  • Learn about agent cards for A2A discovery
  • Read about connectors and how MCP fits as a connector type
  • Follow the quickstart to send your first A2A message