Agent lifecycle

Concept

The agent lifecycle

Governance isn't a stage you pass through. It's the substrate that Build and Run sit on — always on, never optional — which is what makes proof by construction possible at the end.

        ┌──────────────┐   ┌──────────────┐
        │    Build     │   │     Run      │
        └──────┬───────┘   └──────┬───────┘
               │                   │
        ┌──────┴───────────────────┴──────┐
        │  Govern  (policy · scope ·      │
        │  budget · consent · kill)       │  ← substrate
        └──────────────┬──────────────────┘
                       │
                ┌──────┴──────┐
                │    Prove    │  ← by-product
                │   (AVAR)    │
                └─────────────┘

The Aarmos CLI is not publicly distributed. Commands here are reference examples, not instructions you can run today.

What you do

Build

Scaffold an agent from a starter recipe with aarmos init, or the Agent Build wizard in the app. You get a policy.aarmos.toml, an Ed25519 signing key, connector scopes, and a daily budget — no SaaS account required. BYO-LLM (OpenAI, Google Gemini, Groq, OpenRouter, Ollama, custom base URLs) is wired in here.

Run

The runtime executes the agent locally — from the browser PWA or via aarmos run on the CLI. Tool calls are brokered through the local gateway across MCP, OpenAPI, deep-link, and A2A adapters. Dry-run is the default for destructive verbs; prompts and receipts stay on-device.

What the runtime does

The governance substrate

Governed paths have no unpolicied execution route. Every governed tool call passes through the policy gate — the evaluation point that reads the active bundle, the delegation chain, and the current budget. Scopes, budgets, consent, the kill switch, and delegation bounds all live here. This is what makes Run trustworthy — not a checkpoint you add later.

Proof by construction

Each governed tool call that passes through the gate writes one AVAR receipt. Receipts are hash-chained, Ed25519-signed, and portable. They are a consequence of governed execution on that path, not a separate step you opt into. Verify offline in the browser at /trust/verify or with the public verification library. Verification checks the integrity and signatures of the exported records; it does not show that every action was captured or that a downstream action succeeded.

Why this framing matters

A chat wrapper covers Run. A policy engine bolted on the side covers Govern. A log shipper covers Prove. Aarmos owns all three as one substrate — which is why the receipt at the end can name the exact rule, the exact argument, the exact budget draw, and the exact key that signed it, with no glue code.

Related: How-to guides · Quickstart · Trust