- Instructions: a task in plain English, such as “Open Settings and report the Android version”. A model works through it on the phone, one step at a time, until it can report a result.
- Code: a Python script that drives the phone with the Axilio SDK. It runs as written, with no model, unless a failed step hands it to the model to repair.
task with nothing saved. Its run ID is also the ID of the phone
session it runs in.
Run modes
Every run has amode:
Both modes run the same SDK on the same phones, so the script an agent-mode run
leaves behind can be saved as a code revision. See
Read the run’s script.
Lifecycle
- Start a run with
POST /runs, the CLI, the Dashboard or a schedule. A run booked withstart_atisscheduleduntil then. - The run is
queueduntil a phone is free, thenrunning. - A run can be
pausedto ask a person for input, such as a one-time code or an approval. See Pause and follow up. - The run ends
completed,failedorcancelled. A completed run carriesoutput(which matches the run’soutput_schema, if it has one) andresult_text, a short account of the result. A failed run carrieserror. - After an agent-mode run ends, it holds its phone for
keep_alive_seconds(120 seconds by default onPOST /runs). A message sent with:sendMessagein that time starts the run’s next turn on the same phone. After the hold, the phone is released and you start a new run.
What a run’s code can use
Instructions runs write their own code. Code revisions use the same names:Agent settings
An agent’s settings apply to each of its runs. An ad hoc run takes the same settings onPOST /runs.
A code revision also sets
on_failure, which decides what happens when a step
fails. See Handle a failed step.
Limits and billing
- A run, its pauses included, fits inside the one-hour session limit.
- An agent-mode run can’t reach the public internet by default. Set
network: "internet"on the run if its code needs it. Code runs always have internet access. - Model steps are billed as inference with the
agent_chatendpoint. See Usage. - A shared phone bills phone time for as long as the run’s session lasts, including a paused run and the hold after a turn. A dedicated phone bills nothing per session.
- Your plan’s concurrency limit counts running and paused runs. While you are at
the limit,
POST /runsreturns409.
Next steps
Create an agent
Save instructions or code and manage revisions.
Run a task or an agent
Start ad hoc and saved runs on shared or dedicated phones.
Pause and follow up
Answer a paused run and continue a run with more turns.
Monitor runs
Stream, inspect, cancel and measure runs.