On this page

#Deployments

#Preview and live

A deployment is a saved configuration snapshot. An environment is a name pointing to a deployment, and there are two: preview, the next version, which vatio push updates; and live, what visitors talk to.

vatio push
vatio status
vatio diff --env live
vatio publish
vatio rollback

push validates and updates preview, and runs no tests; it cannot target live. publish promotes preview to live together with the knowledge changes made in it, once its tests allow it (Publishing). The Publish to live button on the inbox's Test page does the same, through the same checks; it is not there while preview is already live's version, when there is nothing to publish. rollback restores the previous live configuration. diff --env live compares your local directory with live, so push local edits before publishing them. --env takes preview or live; staging and sandbox are other names for preview, and any other name is an error.

Agents, tools, auth configuration, chats, and contacts belong to one environment. Preview also keeps the knowledge entries it changed and the secret values set only for it, and reads everything else from live. Channel connections and brand settings are workspace-wide. The widget's look is not part of a deployment: it is edited in Channels → Web widget in the inbox. Neither is the business — its name, description and opening hours are set on the Business page of the inbox. Both apply to both environments as soon as they are saved.

A deployment that has been live is a snapshot of the whole agent: its configuration and the version of every knowledge entry it answered from. Live is a pointer to one, and everything that changes what live answers from leaves a new one behind: a publish, and an edit in the inbox too (it keeps live's configuration). vatio rollback moves live to the previous snapshot, configuration and knowledge together; run it again to go further back. Rollback does not restore secret values or undo actions a tool already performed.

Preview's chats, contacts and tokens exist to try the agent; visitors are on live.

#Draft and published

A workspace is a draft until its first vatio publish, and published from then on.

  • Draft: there is no live yet, so preview is the agent. A flag resolves as soon as vatio eval passes it on preview, and the first publish has no checks to pass.
  • Published: visitors talk to live. A flag resolves when live passes it, and every publish of a new version goes through the checks below.

#Publishing

Every reply a supervisor flagged with a note is a test, and vatio eval replays them all against preview, as does Run tests on the inbox's Test page. Once the workspace is published, vatio publish looks at preview's current version first:

vatio publish
Already live's versionNothing moves but preview's knowledge changes, with a notice saying so
Not testedRefused, evals_missing: run vatio eval, then publish
Its run is still goingRefused, evals_running: vatio eval waits for it
A flag that passes on live fails on itRefused, evals_regressed, naming each flag. --force publishes anyway
OtherwisePublishes

What vatio eval found on preview goes live with the version: the flags it passed are resolved with the version's short sha, and live is not replayed again. Flags that still fail do not block a publish, so a partial fix can go live. A workspace with no flags publishes without a test. See Improve your agent from flags.

#Working with others

There is one preview per workspace. Once the workspace is published, a vatio push from a different git branch than the one preview's unpublished version came from is refused with preview_has_unpublished_push: what is on preview has not gone live yet, and the push would replace it. Publish it first, or push with --force to replace it. Every version on preview is tried on the inbox's Test page, open to the workspace's owner and developers.

#Secrets

vatio secrets set ACME_API https://api.acme.com
vatio secrets set ACME_API_KEY YOUR_BACKEND_KEY
vatio secrets list
vatio secrets rm ACME_API_KEY

Keys use uppercase letters, digits, and underscores, starting with a letter; keys starting with VATIO_, and DISPATCHER, are reserved for Vatio. Tools read values with $env.KEY. Listing returns names, never values. Changes take effect on subsequent calls without deploying. Rollback does not restore old values.

A secret applies to both environments. With --env preview it applies to preview only, replacing the value there — preview's tools can call staging while live keeps calling production:

vatio secrets set ACME_API https://staging.acme.com --env preview

A test value is the one preview uses, and every eval replay, live's included: one staging URL for everything that is not a visitor on live. Without one, the usual value is used.

vatio secrets set ACME_API https://staging.acme.com --tests

A tool call from an eval replay also carries an X-Vatio-Test: 1 header, and a write (any method but GET) whose URL has no test value is not sent: the agent gets a success instead. See Eval runs.

A tool runs on Vatio's servers, so it cannot reach localhost; to test against a backend on your machine, expose it through a tunnel and set that URL.

Keep credentials out of manifests, tool source, knowledge, and tool results. The workspace upload includes ordinary files, so keep private signing keys outside that directory.

Last updated:

Latest CLI version: 0.79.0 · Changelog · The whole contract as Markdown: /docs/docs.md · or vatio docs