Distributions
AEL 1.0.0 is the full distribution of AEL, the Agent Engineering Language. Smaller distributions of the same version leave out components, such as support for other languages or for agents, and refuse a feature they leave out by naming it.
This documentation describes AEL 1.0.0, the full distribution.
The full distribution
AEL 1.0.0 leaves out no component. Two of them are the ones a smaller distribution may leave out:
- Support for agents. Agents and subagents: an agent spawns subagents at run time, short-lived agents that each do one task, return a typed result to the agent that spawned them and end, leaving nothing running. Subagents describes them.
- Support for other languages. Your application can hold private functions written in other languages, with typed AEL signatures, built and run with your own toolchains, pinned by version. Functions in other languages describes them.
Smaller distributions
Smaller distributions of the same version leave out components, such as support for other languages or for agents. What a smaller distribution includes, it includes whole: a component is in it or left out.
| A distribution without | Refuses |
|---|---|
| Support for agents | An agent, a subagent and every spawn. |
| Support for other languages | Every function in another language, in a language file or inline. |
A feature left out is refused by name
A smaller distribution refuses a feature it leaves out by naming it:
- When you check or build. The check fails with a diagnostic that points at your source and names the feature the distribution leaves out.
- Never a quiet change. A smaller distribution never builds your program without the feature it uses, and never puts something else in its place.
Distributions and runtime sizes
A distribution is the toolchain you build with. What your program carries onto its device is its runtime: runtimes come in sizes for each class of device, from servers down to coin-cell-class microcontrollers, and a program that does not fit its device's class is refused when you build it.
The two are separate: the size of the runtime follows from the device your program runs on, not from the distribution you build it with. Supported targets describes the classes of device.
Related
- Subagents: where subagents run, and the distributions that refuse them.
- Functions in other languages: what you install for them, and where the sandbox runs.
- Calling your existing programs: a function in your application, or a program you already have.
- AEL Cloud: the languages a function may be written in there.
- Supported targets: the targets of AEL 1.0.0 and the runtime sizes of their profiles.
- Features: what AEL 1.0.0 includes, area by area.