id. See Agents and models for every agent you can pick and the models it accepts.
The environment
Everything the agent works in is fixed when the run starts.
Setup and teardown may run again if Tracks restarts mid-way: write them so running twice does no harm.
The repository is any Git URL the sandbox can clone. For a private one, see Private repositories.
The sandbox is destroyed when the run ends. Anything the agent should keep, it must push or send somewhere, for
example by opening a pull request.
Budget and time limit
Every run has both. Reaching either one ends the run.- The budget counts what the run spends on model calls and sandbox time. A run can go slightly over it, by the requests already in flight when the budget is reached.
- The time limit counts from when the run starts, setup included. It stops the agent even in the middle of a prompt.
One prompt, or a conversation
By default a run is one-shot: it ends as soon as the agent finishes its first prompt. Add--no-one-shot to keep chatting with the agent (one_shot: false in the API). After each prompt, the run waits idle with its sandbox kept, and you send follow-ups:
--idle-timeout, in seconds). Then it ends.
To stop a run yourself:
tracks runs end <id>ends it once its current prompt finishes.tracks runs cancel <id>stops the agent right away, even mid-prompt.
Statuses
End reasons
A failed run has one of these
failure_kind values:
Events and frames
A run records what the agent does in two ways.Events: read these
What the agent did, in one format for every agent: its messages, reasoning, tool calls, subagents, the pages its
browser visited, and why it stopped.
Frames: raw output
Every line the agent printed, exactly as printed, in its own format. Use them to debug or find a detail events leave
out.
stop, saying whether the agent completed, failed or was canceled.
In the web app, a run’s page shows the same thing in its Conversation tab, the tools it used in Agent Tools, and its settings in Configuration.
Labels
Attach labels to a run to find it again, such asticket:ENG-42, with --label ticket:ENG-42 on tracks runs create or labels in the API. Then list runs by label with tracks runs list --label ticket:ENG-42, or GET /runs?label=ticket:ENG-42. Tracks never reads them. Up to 19 labels of yours per run: Tracks adds started_by, the API key that started it.
Tracks sets some labels itself: started_by names the API key that created the run, and runs of an experiment carry experiment, execution and slot.
What it costs
tracks runs usage <id> shows what the run consumed, tokens per model and sandbox time, and what it cost. Runs are paid from your organization’s balance, and start only while it is above $0. See Billing.