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.

Aion Components

Each component you see in the Project Editor (Architecture tab) is an A2A-compatible agent. This lets you communicate with independent pieces of your infrastructure as if your microservices were AI agents. A common pattern in Aion is that a component will directly communicate with one of its upstream components or to one located via a registry search in order to request additional context or services. Components define their own A2A Agent Card. These cards are used internally within the Aion control plane and may be composed into externally addressable Agent Cards when connected to a Distribution in the Project Editor (see Agent Sequences below). Each component can define its own supported or required extensions. This gives you a way to express protocol requirements between services, not just between a client and an agent.
Note: By default, access to communicate directly with these components is scoped to other agents within the same project. We use each agent’s client ID and secret to authenticate. Each component deployed through our platform is automatically given these credentials. If you deploy a component remotely, we provide credentials at creation time.

Agent Sequences

In the Project Editor, you can connect multiple agents together in an Agent Sequence. Typically, you define a Distribution for integration with an external service or messaging network, connect it to one or more behaviors that act as middleware, and then end with a terminal agent. The path from the Distribution to the terminal Behavior is referred to as an Agent Sequence. The combination of components in this sequence is treated as a single agent with its own Agent Card. Each individual component in an agent sequence can be communicated with directly via a behaviors endpoint, or the sequence as a whole can be accessed via a distribution endpoint. The sequence’s Agent Card is a composite of all Agent Cards in that sequence. If any component in the sequence supports an extension, the sequence card will show it as supported. If any component requires an extension, the sequence card will show it as required. 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.