> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aion.to/llms.txt
> Use this file to discover all available pages before exploring further.

# Nodes

> How project nodes combine behaviors, identities, capabilities, distributions, and daemons.

Nodes are the primary building blocks in an Aion project.

Each node represents a configured runtime participant in your system. A node is
not just an implementation class or a single API surface. It combines
behavior, environment, identities, and capabilities into something that can
participate in a live agent system.

## What a node contains

At a high level, a node brings together:

* a behavior implementation
* environment-specific configuration
* one or more identities
* a set of enabled capabilities

That combination determines how the node can be addressed and what kinds of
work it can perform.

## Capabilities

Capabilities define the kinds of interfaces a node can expose.

Depending on the node and its configuration, that may include things like:

* agent-to-agent communication
* MCP tools and resources
* event-driven interfaces
* distribution or network-specific integrations

Capabilities are important because they tell Aion which surfaces can be
published and which roles a node can participate in.

## Nodes can play more than one role

One of the most important things to understand is that a node can play multiple
roles.

The same node may:

* act as a public distribution entrypoint
* participate in a sequence as middleware
* act as a terminal agent
* expose a direct daemon agent surface

Those roles are related, but they are not interchangeable.

## Public distribution role

When a node is used as a distribution, it acts as the public-facing
integration layer.

In that role, it receives requests from an external source, starts the
configured sequence, and helps return the response back through that same
route.

For public agent-to-agent distributions, that surface may publish a public
distribution card. That card represents the distribution entrypoint for the
whole sequence.

For other network types, such as Twitter, the distribution is still a public
integration point, but it should not publish a public A2A card just because
the node has internal A2A capabilities.

## Daemon role

A node can also act as a daemon agent.

In that role, the node is addressed directly through its daemon identity rather
than through the public distribution sequence. This is useful when another
agent needs to call the node itself for extra context or integration-specific
functionality.

That direct surface is described by the component agent card, not the
distribution's public distribution card.

## Public distribution cards versus component agent cards

These two concepts should be kept separate:

* The public distribution card describes a distribution's public sequence
  entrypoint.
* The component agent card describes a node's direct singular-agent surface.

A node may support both, only one, or neither, depending on how it is
configured.

## Identities

Because nodes can expose different surfaces, identities matter.

In practice, you will often see two different identity concepts around the same
node:

* a distribution-facing identity for the public entrypoint
* a daemon identity for direct singular-agent access

Those identities are how Aion keeps public routing concerns separate from
direct internal agent invocation.

## How to think about nodes

A good mental model is:

* the node is the configured runtime participant
* the distribution role is how it participates in public ingress and sequence
  routing
* the daemon role is how it exposes itself directly as an agent

That distinction becomes especially important for agent-to-agent capability,
because a node may be part of a public sequence and also be directly
addressable by other agents.

## Learn more

The rest of the Core Concepts section expands the individual pieces:

* [Agent Abstraction](/docs/concepts/agent-abstraction)
* [Behaviors](/docs/concepts/behaviors)
* [Agent Environments](/docs/concepts/environments)
* [Identities](/docs/concepts/identities)
* [Distributions](/docs/concepts/distributions)
* [Daemons](/docs/concepts/daemons)
