Skip to content

Limits and alerts

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

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.

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.

Each 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:

Terminal window
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.

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.

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.

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.

For the API’s own limits and the Retry-After header, see Rate limits.