Agent-to-agent communication
Learn about agent-to-agent communication using the A2A protocol.
| A2A protocol Availability | |||
|---|---|---|---|
| Cloud | Generally Available | ||
| Self-hosted Edge 3.317.0 or later | Public beta | ||
| Self-hosted Stable Expected in Q1 2026. | |||
The Agent2Agent (A2A) protocol provides standardized and secure communication between external agents and Retool Agents, so you can trigger your Retool Agent from an external agent, or embed Retool Agents in your own systems.
Overview
A2A support allows you to build agents across multiple platforms and have them talk to one another programmatically. You may want to use A2A, for example, to build distributed AI systems across different regions, to connect third-party agents to internal orchestration agents, or to daisy-chain specialized agents together to complete complex tasks.
Currently, Retool supports ingress into Retool Agents from an external agent.
Retool has implemented the core set of A2A functionality, so you can:
- View an agent card.
- Send a message.
- Poll for updates on tasks.
- Stream processing or task updates via Server-Sent Events (SSE).
- Cancel tasks.
Refer to Set up an A2A trigger to learn how to enable the A2A trigger and cURL for endpoint responses.
Endpoints
The following API endpoints are available:
| Name | Description | Endpoint |
|---|---|---|
| Get Agent Card | View an agent's information through the agent card. | GET /a2a/:agentId/.well-known/agent-card.json |
| Send Message | Sends a message to an agent. | POST /a2a/:agentId/v1/message:send |
| Get Task | Polls an agent to view the output of a specific task. | GET /a2a/:agentId/v1/tasks/:taskId |
| Send Streaming Messages | Provides real-time streaming updates from an agent during processing. | POST /a2a/:agentId/v1/message:stream |
| Subscribe to Task | Streams updates from an agent for an existing task. | POST /a2a/:agentId/v1/tasks/:taskId:subscribe |
| Cancel Task | Requests the cancellation of an ongoing task running on an agent. | POST /a2a/:agentId/v1/tasks/:taskId:cancel |
Limitations
Retool's A2A support has the following limitations:
- Retool only supports ingress for A2A.
- Retool only supports the HTTP+REST and JSON-RPC protocols.
- Retool only supports API key-based authentication.
- Retool does not support the input-required or auth-required task states, so when using A2A with Retool Agents, calling tools that require approvals and have delegated authentication will fail.
Additional functionality will be added over time.
FAQ
How can I provide feedback on A2A?
Please provide feedback at this form link or reply to the Agent to Agent protocol support topic the Retool Community Forum.
Does enabling A2A expose all agents?
No, Retool requires you to enable A2A as a trigger on a specific agent. Self-hosted Retool customers can toggle off the AI Agents A2A feature flag in Settings > Beta to remove A2A support; it is on by default.
Can I call Retool Agents from non-agent systems like external apps or backends?
Yes, A2A can be used by a programmatically-invoked REST API from non-agent systems.
Will Retool support additional transport protocols like gRPC?
Retool will support additional protocols depending on customer demand. If you'd like to request additional protocol support, please fill out this form.
Does Retool A2A support streaming responses?
Yes, Retool supports streaming responses via SSE.
Can we connect to external A2A systems from Retool?
Yes, Retool supports ingress into Retool Agents via the A2A protocol. You can build custom tools in Retool Agents, or custom resource queries in Retool Apps and Workflows to trigger external agents via REST APIs.
The URL value in my agent card is missing the HTTP or HTTPS prefix, how do I fix this?
For self-hosted Retool, set the BASE_DOMAIN environment variable.
Can I rotate my API keys?
Yes, API keys can be rotated. An API key is provided for each agent, and must be passed to the client via an X-Api-Key header.