# About A2A Agents

> Agent2Agent (A2A), an open protocol for multi-turn conversations between agents, and how it fits alongside MCP in Agent Gateway.

:::note
A2A Agents is available in preview.
:::

Agent2Agent (A2A) is an open protocol for communication between AI agents. It gives agents built on different frameworks, and by different vendors, a common way to talk to each other.

UiPath uses A2A for conversational agents, where one agent sends a message, the agent on the other side holds the context, and the exchange continues across several turns. A2A also supports single exchanges, but the multi-turn case is what Agent Gateway is built around.

For details about the protocol itself, check the [A2A specification](https://a2a-protocol.org/). For where A2A fits alongside MCP on the platform, check [About Agent Gateway](./about-agent-gateway.md).

## Why calls go through the platform

Registering an agent in Agent Gateway does more than store an address, and gives you more than a proxy to a remote resource. The agent becomes a platform resource that lives in a folder, so:

- Folder permissions govern who can call the agent.
- Guardrails can screen messages before they leave the platform.
- Calls appear in Traces.
- Changes to the agent are audited.
- The agent can be deployed as part of a solution, instead of being reconfigured by hand in each environment.

## Inbound and outbound A2A directions

A2A calls run in one of two directions. They differ in almost everything that follows: what you configure, how many authentications there are, and what can go wrong. The pages below are split along that line, so it is worth being clear which one you are in.

| Direction | What it means | What you configure |
| --- | --- | --- |
| [**Inbound**](./inbound-a2a.md) (external to UiPath) | An external agent or client holds a conversation with a conversational agent that you deployed on the platform. UiPath is the destination. | Nothing on the UiPath side. Every deployed conversational agent already speaks A2A and has an agent card. |
| [**Outbound**](./outbound-a2a.md) (UiPath to external) | An agent hosted outside UiPath is called from the platform, either directly or as a tool inside a UiPath agent. UiPath acts as a governed gateway in front of it. | You register the agent once in **Agent Gateway > A2A Agents**, providing its card and the credentials it expects. |

![The two directions of A2A communication: inbound calls from an external client to a deployed conversational agent, and outbound calls from UiPath to an externally hosted agent](https://dev-assets.cms.uipath.com/assets/images/orchestrator/a2a-inbound-outbound-flows-54cdf88b.webp)

The direction is decided by where the agent lives, not by who places the call. An external client can do both: talk to a conversational agent of yours, and call a remote agent you registered, through its UiPath URL.

## In this guide

- [Inbound (external to UiPath)](./inbound-a2a.md): an external client calls an agent you deployed. Nothing to register.
- [Outbound (UiPath to external)](./outbound-a2a.md): the platform calls an agent hosted elsewhere, through Agent Gateway.
- [Test and troubleshoot A2A](./test-and-troubleshoot-a2a.md): how to call an agent directly, and how to resolve the errors you are most likely to meet.
