# Limits and alerts

> Spending caps, rate limits, and the alerts that fire before a limit is hit.

Three kinds of limit protect your spend: **spending limits** set in LightHouse, **caps** held by your deployment’s gateway, and your **cloud budget**.

## Spending limits

**Spend → Limits** (`client_admin`, signed in as a person), or `/api/v1/limits`.

| Setting | Values                                                   |
| ------- | -------------------------------------------------------- |
| Scope   | The tenant, a pack, an agent, a person, or the assistant |
| Period  | A day or a month, in UTC                                 |
| Alerts  | Up to five thresholds; 50%, 80% and 100% by default      |

A limit is **enforced by your deployment’s gateway**: LightHouse sends it as a signed `limit.set` command. Until your tenant’s command settings and your deployment’s policy both allow `limit.set`, the limit shows as **not sent**, and nothing enforces it. See [Handlers](/concepts/handlers/#both-sides-must-allow).

For calls made through a provider’s own console (for example, an Anthropic workspace limit), LightHouse keeps a reminder to set the matching limit there by hand, and records when you confirm it.

## Caps in the gateway

Each [gateway](/concepts/gateway/) scope has a cap per period (`total`, `month` or `day`); a call that would pass it is refused before it is made. A handler sets an agent’s cap with `budget.set`. In the deployment, an operator can set one directly:

```bash
python -m aal_engine.gateway --store var/gateway.sqlite budget <scope> 50 --period month --by ops@example.com
python -m aal_engine.gateway --store var/gateway.sqlite status
```

Every change names who made it.

## Your cloud budget

Each cloud stack creates a budget in your account that emails the addresses you give it at 80% of the forecast and at 100% of actual spend. It alerts; it does not stop anything.

## Alerts

LightHouse checks every limit every 15 minutes and records an alert once per threshold per period, in your tenant’s audit log (**Setup and admin → Audit**). Sending those alerts by email or to a chat channel is \[Coming].

`GET /api/v1/attention` lists budgets and pre-approvals at 80% of their limits or more, beside failing agents, for your own monitoring to poll.

## Raising a limit: people only

A limit or cap is raised only by a person: a `client_admin` under **Spend → Limits**, or a handler with the role your deployment’s policy names for raising, never above its ceiling. A machine key, an MCP client or an agent can never raise a limit. Lowering is always allowed.

## Rate limits

For the API’s own limits and the `Retry-After` header, see [Rate limits](/api/rate-limits/).

Source: https://docs.atlanticagenticlabs.com/operations/limits-and-alerts/
