---
url: 'https://docs.workato.com/en/connectors/a2a.md'
description: >-
  Agent2Agent (A2A) Protocol is an open standard that enables communication and
  collaboration between AI agents.
---

# A2A Protocol {: #overview :}

[Agent2Agent (A2A) Protocol](https://a2a-protocol.org/latest/) is an open standard that enables communication and collaboration between AI agents. A2A Protocol is the common language for agent interoperability with frameworks and different vendors.

This connector has the following capabilities:

* Workato recipes can communicate with any A2A-compliant AI agent server.
* Invoke AI agents as steps inside an automation workflow, wait for results, and act on the output.
* Cover the full range of integration patterns from synchronous blocking calls, to fire-and-check async workflows.
* Agents built on different frameworks can discover each other, delegate tasks, and exchange results over HTTP/JSON-RPC.

Refer to the [A2A Protocol](https://a2a-protocol.org/latest/topics/key-concepts/) documentation for information about the protocol's core concepts.

## A2A Protocol compatible agents {: #a2a-protocol-compatible-agents :}

The following agents are compatible with the A2A Protocol connector:

| Agent | Framework | Authentication |
|------|------|------|
| Google ADK Purchasing Concierge | Google ADK (Python) | N/A |
| LangGraph / LangSmith A2A Endpoint | LangChain / LangGraph | Bearer token |
| CrewAI + Vertex AI  | CrewAI + Gemini 2.5 | Google OAuth2 / Bearer |
| Amazon Bedrock AgentCore | AWS | AWS SigV4 / Bearer. Bedrock AgentCore connection using A2A Protocol requires additional configuration. |
| Azure AI Foundry A2A | Azure | Azure AD Bearer token |
| a2a-samples (GitHub) | Python or JS | Configurable |

## Multi-agent architecture {: #multi-agent-architecture :}

A2A Protocol supports using multiple agents with the following architecture:

* One Agent Card per domain
* Distinct paths for each agent on the same server
* Separate Agent Cards for each agent on the same server
* One connection per agent. You must create separate connections for each agent.

## Skills {: #skills :}

Skills used in A2A Protocol connections are only shown in hint text on the **Message** input field. The connector doesn't send a skill ID or skill reference in the message payload.

## Install A2A Protocol from the community library {: #community-install :}

Complete the following steps to install the {{ $frontmatter.connector\_name }} connector from the community library:

Complete the following steps to install the {{ $frontmatter.connector\_name }} connector from the [community library](https://www.workato.com/browse/connectors):

<Stepper>

<Step>

Open the recipe editor and search for a connector. Alternatively, you can search for a connector in the [community library](https://www.workato.com/browse/connectors).

![Search for recipe editor](/images/sdk/search-on-recipe-editor.png)
*Search for community connectors in the recipe editor*

</Step>

<Step>

Select the community connector you plan to install.

</Step>

<Step>

Click **Install** to install the connector from the community library.

![Click install](/images/community-library/install-connector.png)*Click **Install***

</Step>

<Step>

Select **Release connector**. Alternatively, select **Review code** to review and modify the connector code before releasing it to the workspace.

![Release connector](/images/community-library/release-and-review.png)*Release the connector*

</Step>

<Step>

Summarize any changes you made to the connector, then click **Release** to allow workspace collaborators to use the connector in recipes.

![The Confirm release dialog](/images/community-library/release.png)*The **Confirm release** dialog*

</Step>

</Stepper>

## Obtain required credentials {: #obtain-credentials :}

Each agent defines its own authentication requirements. Review your agent's documentation to determine which authentication method it supports and how to obtain the required credentials. The following table includes A2A Protocol supported authentication methods:

| Authentication method |When to use | Required credentials |
| --- | --- | --- |
| OAuth 2.0 client credentials | Use for server-to-server authentication. | <ul><li>Client ID</li><li>Client secret</li><li>Token URL</li><li>Scope</li></ul> |
| OAuth 2.0 authorization code | Use for agents that act on behalf of the authenticated user. | <ul><li>Client ID</li><li>Client secret</li><li>Authorization URL</li><li>Token URL</li><li>Scope</li></ul> |
| Bearer token | Use for simple API gateways. | Bearer token |
| API key | Use for self-hosted or internal agents. | API key |
| None | Use if the API is public and doesn't require authentication. | None |

### Register Workato as an OAuth client {: #register-workato :}

OAuth 2.0 connections require you to register Workato as an OAuth client.

Complete the following steps to register Workato as an OAuth client in your A2A Protocol compliant agent:

<Stepper>

<Step>

Go to your application’s **Developer** or **API settings** page.

</Step>

<Step>

Create a new **OAuth client** or **application**.

</Step>

<Step>

Set the **Redirect URI** to:
`https://www.workato.com/oauth/callback`

</Step>

<Step>

Copy the authentication values, such as **Client ID**, **Client secret**, **Authorization URL**, and **Token URL** from your application.

</Step>

</Stepper>

### Verify your credentials {: #verify-your-credentials :}

Test your credentials using a tool such as `curl` or Postman before establishing your connection to confirm your credentials are valid.

Ensure you can:

* Call the `/a2a` endpoint successfully
* Receive a valid JSON response
* Retrieve an access token (for OAuth connections)

## Connect to A2A Protocol in Workato {: #connection-setup :}

Complete the following steps to set up an {{ $frontmatter.connector\_name }} connection in Workato:

<Stepper>

<Step>

Click **Create > Connection**.

</Step>

<Step>

Search for `{{ $frontmatter.connector_name }}` and select it as your app.

</Step>

<Step>

Enter a name for your connection in the **Connection name** field.

![A2A Protocol connection setup](/images/connectors/a2a/a2a-connection-setup.png)*Set up your A2A Protocol connection*

</Step>

<Step>

Use the **Location** drop-down menu to select the project where you plan to store the connection.

</Step>

<Step>

Enter the full URL of the A2A Protocol agent endpoint in the **Agent URL** field. For example, `https://agent.acme.com/a2a/billing`.

</Step>

<Step>

Use the **Authentication type** drop-down menu to select an authentication type and provide the required credentials for your selection.

:::: tabs type:border-card

::: tab OAuth 2.0 client credentials id="oauth-2-0-client-credentials"

<Stepper>

<Step>

Enter your client ID in the **Client ID** field.

</Step>

<Step>

Enter your client secret in the **Client secret** field.

</Step>

<Step>

Enter your token URL in the **Token URL** field.

</Step>

<Step>

Enter the scopes in the **Scope** field.

</Step>

</Stepper>

:::

::: tab OAuth 2.0 (authorization code grant) id="oauth-2-0-authorization-code-grant"

<Stepper>

<Step>

Enter your client ID in the **Client ID** field.

</Step>

<Step>

Enter your client secret in the **Client secret** field.

</Step>

<Step>

Enter your Authorization URL in the **Authorization URL** field.

</Step>

<Step>

Enter your token URL in the **Token URL** field.

</Step>

<Step>

Enter the scopes in the **Scope** field.

</Step>

</Stepper>

:::

::: tab Bearer id="bearer"

<Stepper>

<Step>

Enter your bearer token in the **Bearer token** field.

</Step>

</Stepper>

:::

::: tab API key id="api-key"

<Stepper>

<Step>

Enter your API key in the **API key** field.

</Step>

</Stepper>

:::

::: tab None id="none"

This authentication method does not require additional fields.

:::

::::

</Step>

<Step>

Click **Connect**.

</Step>

</Stepper>
