Skip to main content
A deployment runs an agent on a schedule. Each scheduled fire wakes the durable runtime, starts a fresh session, runs it to idle, and stops — all within a per-run budget you set. A deployment is just a recurring session factory: everything you already know about sessions (events, files, budgets, outcomes) applies to each fire.

Create a deployment

Scheduled agents are the canonical loose use case: an agent that starts at midnight and delivers at nine has no reason to pay the immediate tariff. See Completion window.

How a fire flows

Every fire is a normal session. It shows up in vetta session list, streams the same events, writes to the same Files API, and is subject to the same budgets. The only difference is that it carries a deployment_id — and, if the deployment sets one, the identity_id of the persona it speaks as.

Receiving results

There are three ways to collect what a scheduled run produced. Use the webhook for push; use listing/polling for pull; use published files for the actual artifacts.
1

Push — subscribe to the run finishing

Set on_idle on the deployment (or a session.idle webhook filtered by deployment_id). When a fire goes idle, Vetta POSTs a signed, enveloped payload:
Read the machine-readable result straight off data.structured_output — no transcript to scrape — when the agent (or deployment) has an output schema set; it is null otherwise. Fetch the deliverables by ID from the Files API. The outcome_evaluations[] array matches the outcomes shape on the session — one { outcome_id, result } per attached outcome.on_idle is a webhook endpoint. Setting it creates one for that URL, so these pushes get the same signing, retries, auto-disable and delivery log as any subscription. It appears in vetta webhook list / GET /v1/webhooks alongside your own, with events: ["deployment.on_idle"] — it is pushed by the deployment rather than subscribed, so it never also receives every other session’s session.idle.
Change on_idle to move the endpoint’s URL (which also re-enables it if a dead target had disabled it); set it to null to stop pushing.
2

Pull — list the runs a deployment produced

Each fire is a session tagged with the deployment_id.
3

Read the artifacts and the transcript

The durable outputs are the files a run published, its typed structured_output, and its event history.
Scheduled runs go idle, not terminated — so their files, events, and outcome scores persist and are retrievable long after the fire. Nothing is lost between the cron tick and when you read it.

Manage runs

CLI
If a run would exceed the deployment budget, its calls are refused exactly as with any budget — the run goes idle early with stop_reason: "budget_paused" and still reports whatever it completed.

Configuration reference

string
required
The agent to run on each fire.
string
required
A standard 5-field cron expression, evaluated in UTC.
number
required
Per-run budget ceiling. Each fire gets a fresh allowance.
string
The instruction sent to each scheduled session.
string
Override the completion window for scheduled runs — loose is often ideal for overnight jobs.
string
The persona every fire speaks as — an idn_ id or the persona’s name, the same value session create --identity takes. The agent must already hold a grant to it. Without one a scheduled fire runs as no persona, which is rarely what you want for an agent that owns an inbox.
string
A webhook URL POSTed when each fire goes idle, carrying an enveloped session.idle event whose data holds the run’s session_id, stop_reason, deployment_id and typed structured_output. Setting it provisions a webhook endpoint for that URL — rotate it for the signing secret, and read its delivery log like any other.
object
A JSON Schema the run’s final result must conform to, exposed as structured_output on each fire’s idle session and webhook payload. Overrides the agent’s default schema.
string
An outcome to grade every fire against a rubric.
object
Arbitrary key-value pairs copied onto each session this deployment creates.

Next: webhooks

The full event catalog, delivery, retries, and signature verification.