Skip to Content
Agent computeOverview
Raw

Aetherfy agent compute

What Aetherfy agent compute is

Aetherfy agent compute runs your code on managed machines. You bring a directory containing your program and one configuration file; Aetherfy builds an image, places machines in one or more regions, injects your secrets as environment variables, and keeps a record of every version you deploy.

An agent is the compute primitive. An agent has a name, a runtime, a type, resource configuration, and optionally a schedule and a link to a GitHub repository. Agent names on Aetherfy are lowercase letters, digits, and hyphens only, 1–64 characters — they must match ^[a-z0-9-]+$.

There is no framework to adopt and no handler signature to implement. Aetherfy executes your entrypoint file and observes what it does.

The two Aetherfy agent types

Aetherfy has exactly two agent types, chosen with the type field in aetherfy.yaml. The default is service.

TypeLifecycleHTTP serverHealth checkScheduling
serviceLong-lived, supervisor styleYes — your program serves requestsYesNot applicable
jobRuns once and exitsNoNoYes — this is the type used for scheduled tasks

A service agent on Aetherfy is always-on in the supervisor sense: it gets a health check, an idle watcher, and is auto-started when a request arrives. Use it for anything that answers requests.

A job agent runs once and exits. It has no HTTP server, no health check, and no exposed port. Every scheduled task on Aetherfy is a job agent — see /agents/scheduled-tasks.

The type is set in configuration, not chosen at deploy time:

name: nightly-report runtime: python3.12 type: job

How Aetherfy agents are configured

One file describes an Aetherfy agent: aetherfy.yaml, at the root of the code you upload. It is required. Aetherfy also accepts the filenames aetherfy.yml, .aetherfy.yaml, and .aetherfy.yml, in that priority order.

The file declares the runtime, the type, memory, the entrypoint, an optional schedule, and an optional workspace. It is applied as an RFC 7396 merge patch, so a field you omit keeps whatever value the agent already has rather than reverting to a default. The complete field table and the merge-patch rules are on /agents/aetherfy-yaml.

Aetherfy supports these runtimes, and only these:

FamilyValues
Pythonpython3.11, python3.12, python3.13
Nodenode20, node22, node20-ts, node22-ts
Bunbun
Containerdockerfile

python on its own is not a valid runtime on Aetherfy. Older published examples showed runtime: python; that value fails the deploy. Write the full version, for example runtime: python3.12.

The runtime is immutable once an agent exists. Changing it is rejected with RUNTIME_IMMUTABLE (HTTP 422); to move an agent to a different runtime, delete it and recreate it.

Deploying to Aetherfy

Aetherfy offers two deploy paths, and they produce the same result.

PathHow it startsBest for
CLIafy deploy uploads the current directoryLocal development, CI steps, first deploy
GitHubA push to the tracked branch triggers a deploymentOngoing delivery from a repository

The CLI binary is afy. Install it by following /cli; the command surface for agents is catalogued at /cli/agents. To go from an empty directory to a running agent in one sitting, follow /agents/quickstart.

The GitHub path uses an Aetherfy GitHub App. Once a repository is linked to an agent, a push to the tracked branch makes Aetherfy clone the repository at the pushed commit, re-parse aetherfy.yaml, and deploy. Setup is on /agents/github.

Deployments, runs, and workspaces on Aetherfy

Three nouns carry most of the meaning in Aetherfy agent compute.

NounWhat it is
DeploymentOne version of an agent. Building an image produces a deployment.
RunAn ephemeral execution of a job agent. A run reuses the agent’s existing image — there is no build step.
WorkspaceA group of agents that share secrets and can discover each other.

Every Aetherfy run carries a trigger source that records why it happened:

trigger_sourceMeaning
cronFired by the agent’s schedule
manualStarted on demand, with afy agents run
spawnStarted by a parent agent

An agent belongs to at most one workspace, and workspace names are immutable after creation. Secrets set on a workspace are visible to every agent in it; secrets set on an agent override workspace secrets with the same key. See /agents/secrets.

Regions and plans for Aetherfy agents

Where an Aetherfy agent runs depends on your plan. The regions Aetherfy accepts are us-east-1, eu-central-1, and ap-southeast-1.

PlanRegional behaviour
FreeSingle region — fixed by the first resource you create
StarterSingle region — fixed by the first resource you create
PerformanceMulti-region
EnterpriseMulti-region

Multi-region placement begins at the tier named Performance. On Free and Starter, an Aetherfy account operates in one region, and that region is decided by the first resource you create rather than chosen per agent. Your plan also bounds the memory an agent may request and whether it may stay always-on. See /platform/regions and /platform/limits.

Map of the Aetherfy agents documentation

PageWhat it covers
/agents/quickstartGet an API key, install nothing else, deploy a working agent, read its logs
/agents/aetherfy-yamlEvery configuration field, the merge-patch rules, archive limits, lockfile requirements
/agents/scheduled-tasksThe schedule: field, the 5-field UTC expression format, what Aetherfy rejects
/agents/task-contractHow your code runs and exits, how it reads its input payload, the at-most-once guarantee
/agents/managingRunning on demand, pausing and resuming a schedule, overlaps and missed windows
/agents/runs-and-logsRun history, run and agent states, log retrieval flags and retention limits
/agents/secretsAgent-scoped and workspace-scoped secrets, key rules, reserved names
/agents/githubConnecting the GitHub App, linking a repository, what a push does
/agents/rollbackReturning an agent to an earlier deployment without rebuilding
/examples/agent-with-memoryA worked example combining an agent with the Aetherfy vector database
Last updated on