# Mandates and limits

URL: /agents/mandates-and-limits · Id: `page:agents/mandates-and-limits`

> Limits bound how much a Worker may do; a Mandate lets an Agent act for a Party without asking, until it expires or is revoked.

A [Permission](/business/nouns/permission) says what a [Role](/business/nouns/role) may do; a [Limit](/business/nouns/limit) says how much; a [Mandate](/business/nouns/mandate) says for whom and until when. Together they let an [Agent](/business/nouns/agent) act without asking, and stop it where asking is due.

## Limits
A Limit bounds a Permission, an [Entitlement](/business/nouns/entitlement) or a Mandate by an amount, a count or a period. A refund up to $100 per [Order](/business/nouns/order), 200 outbound emails a day and $500 of ad spend a month are each one Limit.

Every Limit is checked before the call runs. Crossing one does not fail the [Action](/business/nouns/action): it opens an [Approval](/business/nouns/approval), and the Action waits as `pending` until the approver answers.

| Limit | [Holder](/business/nouns/holder) | Over the Limit |
| --- | --- | --- |
| Refund up to $100 per Order | [Billing Specialist](/agents/finance/billing-specialist) | Approval to the [Finance Lead](/agents/finance/finance-lead) |
| Discount up to 15 percent | [Sales Lead](/agents/sales/sales-lead) | Approval to the [Founder](/agents/founding/founder) |
| 200 outbound emails a day | [Prospector](/agents/sales/prospector) | Approval to the Sales Lead |

## Where Limits live
Limits are [Settings](/business/nouns/setting), so they inherit. A [Studio](/business/nouns/studio) sets defaults for its [Portfolio](/business/nouns/portfolio), a [Startup](/business/nouns/startup) sets its own, and a Role narrows them further.

A child only tightens. A Startup can cut its refund Limit to $50 but cannot raise it above what its Studio allows, and the nearest holder wins.

## Limits on the Agent's own work
An Agent also runs under Limits on its own effort: model steps per [Task](/business/nouns/task), model spend per Task, and output tokens per call. One hard Task never consumes a month of budget.

An Agent that hits one stops and [escalates](/business/nouns/task/escalate) the Task with what it tried. A stuck Agent costs a bounded amount, then asks for help.

## Spend states
Money Limits follow the Startup's cash through three spend states. In `FREE`, spend runs within its Limits; in `TIGHT`, every discretionary spend waits for an Approval.

In `HOLD`, only committed obligations go out, such as payroll, taxes and [Invoices](/business/nouns/invoice) already owed. Runway tripwires move the Startup between states, and every move is a [Decision](/business/nouns/decision) on the record.

## Mandates
A Mandate is a standing authorization for an Agent to act for a [Party](/business/nouns/party), within Permissions and Limits, until it expires. "Book travel under $800 this quarter" is one Mandate, in place of one Task per trip.

[Authorize](/business/nouns/mandate/authorize) grants a Mandate; [revoke](/business/nouns/mandate/revoke) ends it at once. New Actions under a revoked Mandate are refused, running ones finish, and an expired Mandate refuses every money [Verb](/business/nouns/verb).

```ts
const monthly = await $.Limit.create({ amount: { amount: 500, currency: 'USD' }, period: 'month' })

await $.Mandate.authorize({ agent: 'agent_marketing_lead', verb: 'Mandate.spend', limit: monthly.$id })
```

A Startup's own Agents [spend](/business/nouns/mandate/spend) under Mandates, with a single-use card per payment. A [Customer](/business/nouns/customer)'s Agent buys from a Startup under the Customer's Mandate, and the Startup checks that Mandate before it accepts the Order.

## Mandates from a person
A person can grant a Mandate to send as them. It is scoped by [Channel](/business/nouns/channel), volume, topics and Limits, and it names a delay window or an approval rule for one-way sends.

Every Action under it records the Agent as `by`, the person as `for`, and the Mandate. [Personal agents](/agents/personal-agents) covers the full mode.

An Agent that holds seats at forty Startups holds forty Mandates. Each has its own Limits, expiry and history, and revoking one leaves the other 39 untouched.

## Next
- [Escalation and approvals](/agents/escalation-and-approvals): what happens when an Action crosses a Limit.
- [What a Role may call at all](/agents/tools-and-permissions), and how it is checked.
- [Mandate](/business/nouns/mandate) and [Limit](/business/nouns/limit): the reference pages.