A2A AI agent
Defines an AI agent designed to perform tasks on behalf of a Client (orchestrator) agent. It uses the A2A protocol and is intended exclusively for Agent-to-Agent interoperability where requests are issued by a Client agent and the (A2A) AI agent is responsible for completing the task.
Note
The AI agent node has no Execution in or Execution out ports, which means that when it’s used in a Flow, no other executable nodes can be included in that Flow.

Properties
| Name | Type | Description |
|---|---|---|
| Name | Required | A human-readable name for the agent. The name helps users and other agents in understanding its purpose. |
| Instructions | Required | Defines the behavior of the agent and rules it should follow. |
| Description | Required | A human-readable description of the agent, assisting users and other agents in understanding its purpose. |
| Skills | Required | The set of skills, or distinct capabilities, that the agent can perform. |
Skills
| Name | Type | Description |
|---|---|---|
| Name | Required | A human-readable name for the skill. |
| Description | Required | A detailed description of the skill, intended to help clients or users understand its purpose and functionality. |
| Tags | Recommended | A semicolon separated list of keywords describing the skill's capabilities, for example billing; customer support |
| Input modes | Recommended | The set of supported input Media types for this skill, for example text, application/json, or image/png. This describes the format of the data that the agent accepts. |
| Output modes | Recommended | The set of supported output Media types for this skill, for example text, application/json, or image/png. This describes the format of the data that the agent returns to the client agent. |
| Examples | Recommended | Example prompts or scenarios that this skill can handle. Provides a hint to the client on how to use the skill. Example: "What is the total amount for sales in region West?" |
Enabling Client agents to use the AI agent as a remote agent
A2A enables agent-to-agent interoperability, where a Client Agent acts on behalf of a user or process, issuing requests and commands to remote agents.
To use a Flow A2A AI Agent as a remote agent, the Client Agent must first discover it by retrieving its Agent Card. The Agent Card contains information about the agent—such as its API endpoint and authentication requirements. The discovery request itself does not require authentication.
Once the Client Agent has discovered the remote agent, it can use the information in the Agent Card to make authenticated requests. Flow A2A AI Agents support API key authentication, so an API key must be included in the HTTP request sent by the Client Agent.
The Agent Card specifies the name of the authentication header so it can be resolved dynamically. For Flow, the header is always x-api-key.
private static async Task<AIAgent> CreateAgentAsync(AgentInfo agentInfo)
{
var url = new Uri(agentInfo.Url);
var httpClient = new HttpClient
{
Timeout = TimeSpan.FromSeconds(60)
};
var agentCardResolver = new A2ACardResolver(url, httpClient, agentCardPath: agentInfo.AgentCardPath);
var agentCard = await agentCardResolver.GetAgentCardAsync();
var securityScheme = ((ApiKeySecurityScheme)agentCard.SecuritySchemes["apiKey"]);
// This should be looked up from some sort of storage, like a database or environment variable.
string apiKey = "my-api-key";
// Flow A2A agents always expects auth header to be named 'x-api-key',
// however, you can avoid hard coding by getting it from the SecurityScheme in the Agent Card.
httpClient.DefaultRequestHeaders.Add(securityScheme.Name, apiKey);
return await agentCardResolver.GetAIAgentAsync(httpClient);
}
Finding the API key for an A2A AI agent.
To find the API key for an A2A AI agent, click the Agent Card discovery addresses in the agent's property editor, or open the Resources -> Flow properties window in the application toolbar (upper right corner).
Note
If the API key field is empty, go to the Portal and generate an API key for A2A.
