HomeUse cases › How to prevent runaway AI agent spend
Use case

How to prevent runaway AI agent spend

The scariest agent failure is financial: a loop that keeps paying. Bound it before it runs, not after the invoice.

Defense in depth, set in advance

You can't review every action a fast agent takes. So encode the limits into its authority up front:

All four in one warrant

import { issue, attenuate } from 'liceat';

// Issue a scoped root warrant for an agent…
const { warrant, attenuationKey } = issue(issuerSecret, 'kid-1', {
  principal: 'org:acme', agent: 'agent:assistant',
  caveats: [
    { type: 'resource', patterns: ['mcp:github/*'] },
    { type: 'action', actions: ['read'] },
    { type: 'spend_limit', currency: 'USD', max: 5000 },
    { type: 'expires', at: Math.floor(Date.now()/1e3) + 3600 },
  ],
});
// …then hand a NARROWER one to a sub-agent — authority can only shrink:
const sub = attenuate(warrant, attenuationKey, [{ type: 'action', actions: [] }]);

Frequently asked

What is Liceat?

Liceat is permission infrastructure for AI agents. You issue a warrant — a scoped, spend-capped, revocable token — that grants an agent narrow authority; the agent presents it at the point of action; Liceat enforces it (scope, spend, rate, holder-binding, revocation) and records every decision in a tamper-evident log. It is open source with a zero-dependency SDK for TypeScript and Python.

Is it free?

The SDK and self-hosted gateway are free and open source. The hosted gateway at liceat.com gives 10,000 free decisions with no card, then meters at fractions of a cent per decision — payable by card or USDC.

Give your agents permission, not your keys.

Free to self-host. 10,000 free decisions on the hosted gateway — no card.

Get an API key Read the docs