Skip to main content
Identities establish stable subjects for an Aion’s public presence, runtime work, and external service accounts. An identity can remain stable while its Ions, Sequences, or runtime configuration change.

Aion Identity

Aion uses two record families:
  • An Agent Identity represents an agent inside Aion. Its immutable type is Personal, Principal, or Daemon. Personal identities represent Aion users; Principal identities represent an Aion’s outward presence; Daemon identities represent configured runtimes.
  • A Service Identity represents an account on an external service, such as a Telegram bot, Slack account, or telephone number. The associated service connection supplies its credentials.
An Aion is an identity-rooted Agentic Application. A Personal or Principal Agent Identity can root that application and provide a durable address in the Catalog. A Distribution’s Identity tab assigns these records to different roles: Telegram Bot distribution Identity tab with a bot account, Principal Identity, and Daemon Identity selectors The screenshot shows a service account and receiving principal selected, with the daemon still unassigned. A2A and Aion Chat distributions do not need an external Service Identity.

Principal Identity

The Principal Identity answers: Which Aion receives this request? An active Distribution requires one. A Daemon identity cannot occupy this field. Reusing the same principal across different distribution types makes the same Aion reachable across those networks. For example, @support can receive requests through Slack, X, and Voice. Each distribution uses its own service account while representing the same Aion: The receiving principal also owns that conversation’s contextual files. The File Service explains when a runtime may act on those files.

Daemon Identity

The Daemon Identity answers: Which configured runtime is authorized to perform this operation? Assign a Daemon-typed Agent Identity to the runtime’s daemon field. Principal identities do not occupy daemon fields. Roles on that identity determine whether the runtime may invoke a model, call an MCP tool, send A2A requests, or use the File Service. Being an owner or receiving principal does not supply the executor’s action permissions. A deployment has its own daemon for direct SDK requests and autonomous calls to Aion. This avoids selecting an arbitrary behavior’s daemon when the request did not pass through a configured behavior Ion. A missing required daemon is a configuration error, not permission to act as the reported caller. See Roles & Permissions and Runtime callbacks for assignment and callback authorization.

Service Identity

The Service Identity answers: Which external account carries this interaction? It connects a distribution to a provider account. It is not the person who sent a message to that account and is not the daemon that executes internal work. For example, a message from Bob to the @support Telegram bot involves three distinct subjects: the bot’s Service Identity, the receiving @support Principal Identity, and Bob as the caller. The runtime additionally has an executing Daemon Identity.

Request attribution

Aion records three roles plus the paying organization. They describe a request’s work; they are not interchangeable authorization credentials. For a distribution request, the receiving principal and originator stay the same as execution moves downstream. Each executing behavior uses its own daemon for permission checks. Model and MCP usage retain all three roles, so work appears against the receiving agent even when a downstream daemon performs it. Contextual File ownership follows the receiving agent too. An authorized SDK callback forwards signed usage attribution; it does not substitute the executing daemon as the file owner. Storage billing uses the established payer. See File Service for the separate rules for personal and service-account images. When an Ion originates work without an incoming request, its daemon can supply agent and originator attribution as well as execution. A direct deployment call uses the deployment daemon and deployment organization; a known reported caller can still be the originator. Reported caller information is attribution, not independent authorization.

Scheduled work

A Cron attachment has an optional Principal Identity in its Identity tab. Set it to attribute scheduled work and contextual files to that principal. The same principal can serve multiple schedules. Without a selection, the attached target behavior’s daemon remains the agent principal. Cron inherits execution from the behavior it is attached to; it does not need a second Cron daemon. Selecting a receiving principal does not change execution permissions or payer, or authorize File updates on its behalf.

Conversation ownership and caller access

A conversation belongs to its receiving agent in the relevant environment. Separate caller bindings identify who can retrieve it as a participant. A person having access to one conversation does not gain access to every conversation owned by that agent. File ownership is separate from these caller bindings. Deleting a conversation does not itself erase independently retained files or stop their storage charges.

Resource discovery

For project-scoped and cross-project tool discovery, see Aion Meta Tools. Discovery scope does not replace execution permissions.

Agent Cards and identities

An Agent Card describes one addressable A2A surface:
  • A public Distribution card describes an A2A distribution and its connected Sequence.
  • A component card describes capabilities available to authenticated internal automation.
A component card does not turn its Daemon Identity into a public distribution. See Behavior Ions and Distribution Ions for the surrounding model.