Skip to main content

Overview

Extensions in the Agent-to-Agent Protocol allow agents to declare additional capabilities. They are intended to provide a client with metadata about which capabilities are supported, which are required, and documentation about the extension itself.

A2A-capable Ions

A Composer Project can contain Deployment, Behavior, and Distribution Ions. Only Ions configured with an A2A agent surface publish an Agent Card or participate in A2A extension negotiation. Appearing in Composer does not, by itself, make an Ion an A2A-compatible agent. An A2A-capable Behavior Ion can define a component Agent Card with supported or required extensions. A compatible A2A Distribution can aggregate those cards into the externally addressable card for its Sequence. This expresses protocol requirements between components as well as between an external client and the Sequence.
Note: By default, direct access to these component agents is scoped to other agents within the same Project. We use each agent’s client ID and secret to authenticate. Each A2A-capable component deployed through our platform is automatically given these credentials. If you deploy a component remotely, we provide credentials at creation time.

Sequences

A Sequence is the ordered list of Ions used for one runtime flow. A common A2A Sequence begins at an A2A Distribution Ion and continues through one or more A2A-capable Behavior Ions. The Distribution can present that Sequence as one composite A2A agent surface with its own Agent Card. Each A2A-capable Behavior Ion is addressed through its configured environment endpoint. The Sequence as a whole is addressed through the A2A Distribution endpoint. Its Agent Card aggregates the component cards: an extension supported by any component is supported by the Sequence, while an extension required by any component is required by the Sequence unless another component fulfills it. Example aggregation:

Distributions

External access to a Distribution’s agent sequence endpoint is isolated to the Aion control plane. If a component defines a required extension, the sequence will require it as well. Because a Distribution depends on an external service, that service may be unable to fulfill a requirement. As a result, you cannot connect components that require an extension with a Distribution that cannot satisfy it. The middleware/fulfills extension allows middleware agents to declare extensions they can fulfill on behalf of downstream components. This allows you to connect components that require an extension to a Distribution when a middleware can satisfy that requirement. Some Distributions may also use this extension to declare what it can fulfill directly.

Special Case: the A2A Distribution

The A2A Distribution does not connect to an external service. Instead, it provides external Agent-to-Agent access points for direct API integration. If an agent sequence connected to this Distribution requires a specific extension, that requirement is echoed in the sequence’s agent card for clients to activate. You can configure any set of extensions within a sequence connected to an A2A Distribution, as long as external clients can fulfill the requirements.