Implementation Guide

    Granting an AI Agent a Temporary Budget Increase Without Disabling Cost Controls

    Treat a temporary budget increase as a policy change enforced at runtime, not as a switch that turns controls off. Create a separate exception tied to one agent identity and one task, set a new finite ceiling, route it through human approval, expire it automatically back to the unchanged baseline, and record the request, approval, usage and expiry. Session caps, rate limits, tool permissions and per-interaction policy stay active throughout.

    1. 1

      Agent identity

      The exception names one agent identity. Other agents, including sub-agents it delegates to, keep their own limits.

    2. 2

      Task scope

      The grant references a specific task such as a named migration or incident, and covers only the tools that task needs.

    3. 3

      New ceiling

      Set a finite limit for tokens, requests or spend. Pick the number from the task's expected volume plus a stated margin.

    4. 4

      Validity window

      Store a start time and a hard end time. Prefer hours to days, and avoid open-ended renewals.

    5. 5

      Approval reference

      Link the exception to the requester, the approver and the decision, and keep the two roles distinct.

    6. 6

      Revocation state

      Allow an operator to revoke the exception before expiry if behavior becomes anomalous.

    7. 7

      1. Request

      The requester submits agent identity, task, proposed ceiling, window and justification.

    8. 8

      2. Approve

      A distinct human approver accepts, narrows or rejects the request. Narrowing is preferable to widening.

    9. 9

      3. Activate

      The enforcement point loads the exception at the approved start time. The baseline policy is not modified.

    10. 10

      4. Monitor

      Watch usage against the ceiling and flag anomalous behavior. Revoke early if needed.

    11. 11

      5. Expire

      At the end time the exception stops matching and the baseline applies on the next request.

    12. 12

      6. Verify

      Confirm that no activity was evaluated under the exception after expiry and close the record.

    Failure modes to test before relying on the pattern

    • Lapsed expiry: advance the clock past the end time and confirm the next request is evaluated against the baseline.
    • Persistence beyond the window: confirm that a long-running session does not keep using the exception after expiry.
    • Over-broad scope: send requests from a different agent identity, a different task and an unlisted tool, and confirm each is evaluated against baseline or denied.
    • Caps at the new ceiling: drive a deliberate loop and confirm loop termination and session caps still stop it at the higher limit.
    • Rate limits: send burst traffic during the window and confirm per-agent and per-tenant limits still apply.
    • Self-approval: attempt to approve as the requester or as the agent, and confirm the request is rejected.

    Why disabling a limit or editing the baseline fails

    Budget limits exist because autonomous agents can loop. OWASP describes Denial of Wallet as an attack that causes excessive API or compute costs through unbounded agent loops. OWASP Cornucopia describes Resource and Budget Abuse as autonomous tool-chaining or recursive planning that exhausts compute budgets, API quotas or financial limits, and it names the lack of a per-session budget, with no cap on API calls, tokens or wall-clock time, as a cause. A migration, backfill or incident response task does not remove that risk. It only needs a larger number.

    Two shortcuts are common. The first disables the cost control, which removes the cap exactly when the agent runs its longest and highest-volume work. The second raises the baseline limit, which changes the ceiling for every future session of that agent until someone remembers to restore it. Both leave an untracked exception with no record of who authorized it, for what scope and for how long.

    The alternative is to leave the baseline alone and layer a bounded exception on top of it. The effective limit is resolved at runtime. While a valid exception exists, the higher ceiling applies. When it does not, the baseline applies again with no manual step.

    What stays enforced at the higher ceiling

    The point of a layered exception is that only one number changes. Per-session hard caps and loop termination stay active. OWASP Cornucopia's mitigations for resource exhaustion include a hard cap on tool calls, API requests and tokens per agent session, with the session terminated when the cap is reached. A higher ceiling should still be a cap that terminates the session.

    Rate limits are a separate control and should remain independent. The same guidance recommends per-user and per-tenant rate limits applied independently of agent-level limits, so a larger agent budget does not remove protection for the rest of a multi-tenant platform. Tool permissions also stay at least privilege. A budget increase is not a reason to grant wildcard or unrestricted tool access, which OWASP lists among the practices to avoid.

    Delegation needs one rule. NIST states that delegated scopes attenuate, so downstream entities cannot claim more authority than the parent. Apply the same logic to budget: a sub-agent should never receive more than the parent's grant, and normally receives less.

    There are tradeoffs. Short windows reduce exposure but may force a second request if the task overruns. A tight ceiling can stop a legitimate job midway. Decide in advance what happens to sessions in flight at expiry: terminate them, or let them finish under baseline limits. Whichever you choose, document it and test it.

    Evidence an auditor can use, and where runtime enforcement fits

    An auditor reviewing an exception needs to confirm two things: that the increase was authorized, and that cost controls were never disabled. The record should therefore hold the requester, the approver, the agent identity and task scope, the new limit, the start and end times, actual usage under the exception, and the expiry or revocation event. These fields are design requirements rather than a published standard. Evidence that enforcement decisions continued throughout the window, including rate limit and tool-permission decisions, is what shows the controls stayed on.

    This is easier when the exception is evaluated in the same place that enforces policy. Trussed enforces policy in the execution path across models, agents, tools and MCP servers, with actions to allow, redact, block, rate limit or escalate for human approval at the level of individual interactions and tool calls. Because enforcement happens at runtime, not after the fact, the decisions it makes produce audit-ready evidence as a by-product. The pattern in this guide can be built in other enforcement layers too. What matters is that the ceiling, the approval and the expiry are evaluated where requests are decided.

    Anatomy of a layered budget exception

    Identity

    Bound to one agent identity, never a group or wildcard.

    Ceiling

    A higher finite limit, not an absent one.

    Approval

    A human who is not the requester approves the grant.

    Expiry

    Hard end time with automatic reversion to baseline.

    Evidence

    Request, approval, usage and expiry recorded together.

    Enforce the exception where requests are decided

    See how policy enforcement and audit-ready evidence work at the level of individual agent interactions and tool calls.

    Explore Agent and Tool-Call Enforcement
    Next step

    How does your AI governance program compare?

    See where your program has gaps in less than 2 minutes.