Skip to main content
Aion, or the All-In-One Network, is a network harness, event fabric, and meta-orchestration tool that allows you to:
  • implement modular AI agents in your framework of choice
  • standardize on a single, normalized messenging protocol (A2A)
  • link agents to identities for addressing and permissions
  • connect agents both to each other and to other networks
Aion treats the agent as the core primitive in what we call an Agentic Application, where the application itself is simply a subnetwork of specialized agents that know how to discover and communicate with each other. Think of it like a microservices architecture where we replace services with agents and APIs with A2A, MCP, and other agent-native surfaces. In the following sections we’ll illustrate this concept from the bottom-up so you can see how it works.

The Core Primitive: Agents

The fundamental unit of Aion is the agent. However, we are neither an agent-builder nor orchestrator. Instead, you build agents using your preferred framework or tooling, and we provide the network infrastructure to connect them. Our SDKs currently support agents built in Python using LangGraph or Google’s ADK, and the Aion control plane can dispatch to any agent exposing an A2A endpoint.

Diagram showing the Aion agent primitive across frameworks, SDKs, and the A2A network.

Defining an Agent

In Aion, an agent is composed of three key components:

  • Behavior - an agent’s static logic; it’s source implementation
  • Environment - the agent’s runtime configuration
  • Identity - the agent’s unique identifier and permissions
Your agent’s Behavior, such as a LangGraph implementation, is what gets deployed into Aion, and its packaged aion.yaml allows you to specify what configuration options you’d like to expose. In the Aion control plane, a Behavior is paired with an Environment so you can optionally configure runtime configuration and an Identity to define how the agent is addressed and authorized.

Agent Capabilities

Agents may expose multiple capabilities used to independently interact with them:

  • A2A - an Agent-to-Agent protocol endpoint for natural language communications
  • MCP - an Model Context Protocol endpoint for direct tool access
  • Events - a subscription-based event stream for real-time updates

Agentic Applications

An agentic application is a collection of agents that work together to achieve a common goal.

In the Aion control plane, a Project is the unit of organization for an agentic application. Projects are composed of nodes, each of which is an agent.

Nodes representing a deployed behavior are called Behavior Nodes. These shouldn’t be confused as only containing an agent’s Behavior. In a project, every node also contains Environment and Identity configuration.

Integrating With Other Networks

Behavior Nodes can be connected to other networks by connecting them to a Distribution Node.

Distribution Nodes act as normalized bridges to different networks, allowing agents to communicate across heterogenous network boundaries.

Connecting Agents in Sequences

Aion allows you to connect agents in sequences to define the request/response path from a Distribution node to a terminal Behavior node.

Agents defined in Behavior nodes can act as middleware for other agents to enable specialization and reuse through decomposition. In this example, a request follows this path:

  • Distribution Node: Telegram
  • Behavior Node: Brand Policy Agent
  • Behavior Node: x402 Agent
  • Behavior Node: Stock Portfolio Agent
  • Behavior Node: x402 Agent
  • Behavior Node: Brand Policy Agent
  • Distribution Node: Telegram

At each step, a request or response can be augmented or rejected.

Connecting Agents through Discovery

Agents are not required to follow a strict request/response flow. Since agents expose a set of Capabilities (A2A, MCP, Events) and a unique Identity, other Application agents can communicate with them in a few ways:

  • Direct Addressing: a2aMessage("@s3", "store this file", fileContent).
  • Events: subscribe("@bug-recon", "critical-error-detected")
  • Discovery: toolSearchTool("file storage") or a2aSearchTool("linear")