Skip to main content
Manage agents — reusable, versioned configurations.

Commands

create

Money. --budget-usd (and --max-task-usd) take a decimal-dollar string and are converted client-side to integer micro-USD; the wire field is cap_micro_usd (1 USD = 1_000_000 micro-USD). Amounts in JSON output are integer *_micro_usd.

Config as a file

The declarative way to manage an agent is a checked-in .agent.yaml — the whole config in one reviewable, diffable file. create, update, and apply all read it; show --format yaml writes it back out. See Define an agent as a file for the full schema.

apply (declarative / CI)

apply upserts an agent by name: it creates one if none exists, otherwise updates it, omitting --expected-version so the file is the source of truth (last write wins). This is the GitOps path — a CI job that syncs your checked-in definitions.

update, versions & rollback

Pass --expected-version <n> for optimistic concurrency; a mismatch exits non-zero (HTTP 409, version_conflict). Omit it (or use apply) for unconditional, last-write-wins updates. rollback also accepts --expected-version to guard against a concurrent change. versions --version <n> returns the full immutable snapshot (model, system, window, tools, skills, budget, created_by, …) so you can diff two versions before rolling back.

tools

--tools on create declares the whole enabled set. To change one tool on an agent that already exists — including the tool’s own settings — use agent tools. It reads the current configuration and sends it back with that one entry changed, so nothing else is disturbed.
Pass at least one of them; a command that would change nothing exits 2 rather than minting an identical version. Config flags merge — setting a cap does not clear a domain filter you set earlier. The same settings can be written declaratively in a .agent.yaml under tools.configs.<tool>.config; see Tools.

spend