# Agent product files

URL: /code/file-conventions/products/agent · Id: `page:code/file-conventions/products/agent`

> A product file with $type Agent sells one agent to each customer; it names the Role the agent fills and the Verbs it may call.

A product file with `$type: [Agent]` sells one [Agent](/business/nouns/agent) to each [Customer](/business/nouns/customer). It names the [Role](/business/nouns/role) the agent fills, and that Role file holds its instructions, [Limits](/business/nouns/limit), approvals and channels.

```text
products/
└── renewals.mdx      Leaseline's renewal agent, one per property manager
agents/
└── customer/
    ├── success-manager.mdx        the Role it names
    └── success-manager.test.ts    its eval cases
```

## Reference
| Key | Type | Holds | Required | Status |
| --- | --- | --- | --- | --- |
| [`$type`](/code/file-conventions/products) | list | One or more of `App`, `API`, `Agent`, `Dataset`, `Service` | Yes | `live` |
| [`nouns`](/business/nouns/noun) | Noun names | The Nouns it exposes; a Dataset holds Things of exactly one | No | `live` |
| [`verbs`](/business/nouns/verb) | Verb ids | The Verbs a Customer may call | No | `live` |
| [`interfaces`](/business/nouns/interface) | list | The Interfaces it ships on; every kind by default | No | `live` |
| [`role`](/products/agent/anatomy) | Role path | The Role in `agents/` its agent fills: instructions, Limits, approvals, channels and eval cases | Yes | `live` |

## Examples
### Minimal
```mdx title="products/renewals.mdx"
---
$type: [Agent]
role: customer/success-manager
---
```

### Leaseline
```mdx title="products/renewals.mdx"
---
$type: [Agent]
role: customer/success-manager
nouns: [Lease]
verbs: [Lease.notify, Message.create]
---
No renewal slips past its date.
```

## What it builds
The [SoftwareBuilder](/code/builders/software) compiles the file with its Role.

- an agent per Customer on acceptance, minted in that Customer's [Tenant](/business/nouns/tenant)
- one [Tool](/business/nouns/tool) per [Verb](/business/nouns/verb) in `verbs`, and the agent card at `/agents.json`
- the eval gate: every case in the Role's test file passes before an [Offer](/business/nouns/offer) publishes or a [Version](/business/nouns/version) ships

## Good to know
- The book is [an agent sold as a service](/products/agent); [its reference](/products/agent/reference) lists every Verb.
- An Offer sells the agent from an [offer file](/code/file-conventions/offers), billed on graded work.