# Agent.retired

URL: /business/events/Agent.retired · Id: `event:Agent.retired`

> Emitted each time an Agent is retired.

[Agent.retire](/business/nouns/agent/retire) emits `Agent.retired` when it completes on an [Agent](/business/nouns/agent).

| Property | Value |
| --- | --- |
| Emitted by | [Agent.retire](/business/nouns/agent/retire) |
| Noun | [Agent](/business/nouns/agent) |
| Moves | [Agent](/business/nouns/agent) `seated` to `retired`; [Agent](/business/nouns/agent) `paused` to `retired`; [Role](/business/nouns/role) `filled` to `vacant` when the Agent filling this Role is retired |
| Wakes | None. |

### Payload
Each delivery is an [Event](/business/nouns/event) record. `data` holds what [Agent.retire](/business/nouns/agent/retire) returns, and `previous` holds the state it left.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | `string` | Yes | `Agent.retired`. |
| `at` | `datetime` | Yes | When it happened. |
| `seq` | `integer` | No | Its position in the namespace, one more than the Event before; any seq is a cursor into the history. |
| `data` | `json` | Yes | The Thing as the Action left it. |
| `data.agent` | [Agent](/business/nouns/agent) | Yes | The retired Agent. |
| `data.agent.instructions` | `text` | Yes | What the Agent does and how. |
| `data.agent.model` | `string` | Yes | The model the Agent runs on. |
| `data.agent.tools` | `string[]` | No | The tools the Agent may call. |
| `data.agent.skills` | list of [Skill](/business/nouns/skill) | No | The Skills it loads. |
| `data.agent.memory` | `string` | No | One of `tenant` (one Memory per Customer Tenant) or `startup` (one Memory for the Startup). |
| `data.agent.maxSteps` | `integer` | No | The most steps one Task may take. |
| `data.agent.budget` | `money` | No | The most one Task may spend; the Mandate’s Limits apply as well. |
| `data.agent.handoffs` | list of [Role](/business/nouns/role) | No | The Roles it hands work to. |
| `data.agent.status` | `string` | Yes | One of `standby`, `seated`, `paused` or `retired`: whether it fills a Role and is working. |
| `data.previous.status` | `string` | Yes | The `status` before this Event: `seated`. |

### Example
```json
{
  "$id": "https://api.sb/shiftnote.app/events/event_1",
  "$type": "Event",
  "name": "Agent.retired",
  "at": "2026-10-22T12:00:00Z",
  "data": {
    "agent": {
      "$id": "https://api.sb/shiftnote.app/agents/agent_1",
      "$type": "Agent",
      "instructions": "Example instructions",
      "model": "Example model",
      "tools": [
        "Example tools"
      ],
      "skills": [
        "skill_1"
      ],
      "memory": "tenant",
      "maxSteps": 1,
      "budget": {
        "amount": 79,
        "currency": "USD"
      },
      "handoffs": [
        "role_1"
      ],
      "status": "retired"
    },
    "previous": {
      "status": "seated"
    }
  },
  "seq": 1
}
```