Skip to content

Lifecycle of an agent product

An agent product moves from draft to selling to retired by its Offers, and each customer's agent from standby to seated, paused and retired.

An agent product has two lifecycles: the Product's, set by its Offers, and each customer's Agent's, set by its seat. A Version runs through both.

The product

Product lifecycle: draft, selling, retiredFrom draft to selling: on Offer.publishedFrom selling to retired: on Offer.withdrawnFrom retired to selling: on Offer.publisheddraftsellingretired

The product is draft until a published Offer sells it. Offer.publish runs the gate first: every task type the Offer sells passes its eval cases, or nothing publishes. The product is retired when its last Offer is withdrawn, and every Customer keeps the agent its Subscription bought.

Each customer's agent

Agent lifecycle: standby, seated, paused, retired (ends)From standby to seated: on Role.staffedFrom seated to standby: on Role.staffedFrom seated to paused: Agent.pauseFrom seated to retired: Agent.retireFrom paused to seated: Agent.resumeFrom paused to retired: Agent.retirestandbyseatedpausedretired
MoveVerbWhat changes
MintedAgent.mintThe agent exists in the Customer's Tenant, bounded by its Entitlements
SeatedThe seat is staffedIt works its Role's Tasks
PausedAgent.pauseIt starts no new Action; writers get a holding reply
ResumedAgent.resumeIt picks up where it stopped, with Memory, Mandates and Limits unchanged
RetiredAgent.retireIt holds no seat again; its Actions, Memory and Mailbox history stay on the record

The Customer pauses its own agent from its Portal. The Startup pauses every customer-facing agent at once with one Agent.pause call.

Versions

Every change to the Role, the product file or an Evaluator builds a new Version. No Version ships worse than the last on the eval cases. A minted agent runs the Version its Customer bought until that Customer moves.

Moving a Customer to a new Version replays that Customer's own past cases on it first. Agent upgrades has the contract, with status planned.

Nothing is purged

Retiring an agent or deleting a record never erases it. A deleted record leaves every list and keeps its history, and Thing.restore brings it back. Action.undo reverses what one Action did, and each record it removes stays restorable.