# Agent.taught

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

> Emitted each time an Agent is taught.

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

| Property | Value |
| --- | --- |
| Emitted by | [Agent.teach](/business/nouns/agent/teach) |
| Noun | [Agent](/business/nouns/agent) |
| Wakes | None. |

### Payload
Each delivery is an [Event](/business/nouns/event) record. `data` holds what [Agent.teach](/business/nouns/agent/teach) returns.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | `string` | Yes | `Agent.taught`. |
| `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 Agent with the rule. |
| `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. |

### Example
```json
{
  "$id": "https://api.sb/leaseline.app/events/evt_3j38jCSSBy",
  "$type": "Event",
  "name": "Agent.taught",
  "at": "2026-10-22T12:00:00Z",
  "data": {
    "agent": {
      "$id": "https://api.sb/leaseline.app/agents/agent_tCzKDMorKn",
      "$type": "Agent",
      "instructions": "Write as the property manager’s assistant. Never promise a rent the manager has not set.",
      "model": "claude-opus-5-5",
      "memory": "tenant",
      "status": "seated"
    }
  },
  "seq": 1103
}
```