# Lifecycle of an agent product

URL: /products/agent/lifecycle · Id: `page:products/agent/lifecycle`

> 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](/business/nouns/product)'s, set by its [Offers](/business/nouns/offer), and each customer's [Agent](/business/nouns/agent)'s, set by its seat. A [Version](/business/nouns/version) runs through both.

## The product

The product is `draft` until a published Offer sells it. [`Offer.publish`](/business/nouns/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](/business/nouns/customer) keeps the agent its [Subscription](/business/nouns/subscription) bought.

## Each customer's agent

| Move | [Verb](/business/nouns/verb) | What changes |
| --- | --- | --- |
| Minted | [`Agent.mint`](/business/nouns/agent/mint) | The agent exists in the Customer's [Tenant](/business/nouns/tenant), bounded by its [Entitlements](/business/nouns/entitlement) |
| Seated | The seat is staffed | It works its [Role](/business/nouns/role)'s [Tasks](/business/nouns/task) |
| Paused | [`Agent.pause`](/business/nouns/agent/pause) | It starts no new [Action](/business/nouns/action); writers get a holding reply |
| Resumed | [`Agent.resume`](/business/nouns/agent/resume) | It picks up where it stopped, with [Memory](/business/nouns/memory), [Mandates](/business/nouns/mandate) and [Limits](/business/nouns/limit) unchanged |
| Retired | [`Agent.retire`](/business/nouns/agent/retire) | It holds no seat again; its Actions, Memory and [Mailbox](/business/nouns/mailbox) history stay on the record |

The Customer pauses its own agent from its [Portal](/business/nouns/portal). The [Startup](/business/nouns/startup) pauses every customer-facing agent at once with one [`Agent.pause`](/business/nouns/agent/pause) call.

## Versions
Every change to the Role, the product file or an [Evaluator](/business/nouns/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](/products/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`](/business/nouns/thing/restore) brings it back. [`Action.undo`](/business/nouns/action/undo) reverses what one Action did, and each record it removes stays restorable.