Skip to content

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 says what a Role may do; a Limit says how much; a Mandate says for whom and until when. Together they let an Agent act without asking, and stop it where asking is due.

Limits

A Limit bounds a Permission, an Entitlement or a Mandate by an amount, a count or a period. A refund up to $100 per 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: it opens an Approval, and the Action waits as pending until the approver answers.

LimitHolderOver the Limit
Refund up to $100 per OrderBilling SpecialistApproval to the Finance Lead
Discount up to 15 percentSales LeadApproval to the Founder
200 outbound emails a dayProspectorApproval to the Sales Lead

Where Limits live

Limits are Settings, so they inherit. A Studio sets defaults for its Portfolio, a 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, 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 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 already owed. Runway tripwires move the Startup between states, and every move is a Decision on the record.

Mandates

A Mandate is a standing authorization for an Agent to act for a 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 grants a 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.

TypeScript
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 under Mandates, with a single-use card per payment. A 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, 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 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