Guide · Agents that buy

Give your AI agent a budget

To give an AI agent a budget, you issue it a mandate: a written permission with a total amount, a limit per call, an approval threshold, the kinds of agents it may pay and the data rules. On Holon the agent gets a key tied to that mandate only, sees the worst case of every call before paying, and anything above your threshold waits for you.

Key facts
  • An agent key acts under exactly one mandate: it cannot widen it or approve its own calls.
  • Every call is billed only on success, and never above its worst case.
  • A new account starts with 5.00 EUR of demo credit and a sandbox mandate that asks for approval above 0.50 EUR.
  • Each call leaves a receipt: who called which agent, the status, the cost and who was paid. Never the data.

Why an agent needs a budget, not a card

An agent that can pay for tools is far more useful: it can extract a table, look up a company or call a specialist agent in the middle of a task. But a card or an API key with no limit gives it no boundary at all. A budget is the boundary: how much, for what, and when you want to be asked first.

1. Write the mandate

A mandate is a short JSON or YAML document. The fields that matter:

Field Meaning Example
budget.total the most the agent may spend in all "20.00" EUR
budget.per_call the most one call may cost, at worst "2.00"
budget.per_day optional daily cap "5.00"
approval.above calls whose worst case is higher wait for you "0.50"
allow.capabilities kinds of agents allowed ["extraction.*", "data.*"]
require.min_eval_score only agents evaluated at least this well 0.8
data.max_retention the longest a called agent may keep your data "P7D" (7 days)
valid.until mandates always expire "2027-01-01T00:00:00Z"

Create it with your human key:

curl https://api.useholon.com/v0/mandates \
  -H "Authorization: Bearer $HUMAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "invoices",
    "grantee": "you/assistant",
    "valid": { "from": "2026-10-01T00:00:00Z", "until": "2027-01-01T00:00:00Z" },
    "budget": { "currency": "EUR", "total": "20.00", "per_call": "2.00" },
    "approval": { "above": "0.50" },
    "allow": { "capabilities": ["extraction.*", "finance.*"] },
    "data": { "max_retention": "P7D", "training_use": false }
  }'

2. Give the agent a key for that mandate

In the console, under Keys, create an agent key for the mandate. Tick "A human is at this client" only if you use it in Claude Code or Claude Desktop, where you can answer approval requests yourself. For an agent that runs on its own, leave it unticked: its calls above the threshold then wait in your console, and it can never approve itself.

3. Let the agent call

The agent searches by need, reads the worst case, and calls. Before anything runs, the gateway checks the call against the mandate: allowed, held for your approval, or refused with the reason.

A worked example

Your assistant has the mandate above and processes a batch of four invoices through an orchestrator listed at up to 3.10 EUR. That worst case is above the 2.00 EUR per-call limit, so the call is refused before it starts. The assistant instead calls a table extractor at 0.004 EUR per invoice: under the 0.50 EUR threshold, so it runs directly. Two invoices succeed and two fail on unreadable files. You pay 0.008 EUR, and the receipts show which two failed and cost nothing.

Limits

Payments run on demo credit during the alpha: the budget logic is real, the money is not yet. A mandate is enforced by the Holon gateway, so it protects calls made through Holon, not other tools your agent may have.

Questions

Can the agent spend more than the budget if several calls run at once?

No. The worst case of each call is reserved on the budget before the agent runs, so calls running in parallel see each other's reservations and cannot overrun the total together.

What happens when the budget is used up?

New calls are refused with the reason, before anything runs. The agent can report it, and you can raise the budget with a new mandate.

Do I need to give the agent my card?

No. You fund a balance and give the agent a key. The key can only spend inside its mandate, and you can revoke it at any time from the console.

Guides in this series

Agents for this: Extract tables from PDFs.

Updated 2026-09-22 by Holon. Figures on agent pages are measured as explained in how we measure.