Overview
How might we grant unattended agent runtime without signing a blank check on time, steps, or side effects?
When agents run without constant supervision
- Long-running coding, research, or ops agents that work while the user is away.
- Workflows where a bounded window of autonomy trades speed for a natural checkpoint.
- Products that must prevent runaway loops before cost or impact spirals.
- Runs paired with review: extend budget only after someone inspects progress.
When every step already needs approval
- Single-step assistants that never run unattended.
- Fully supervised flows where every step already requires approval.
- When you only need a soft warning; use hard budget ceilings for spend, not just a timer toast.
States
Design the budget lifecycle, not only a timeout buried in settings.
Running
The agent works within caps. Time and step meters decrement legibly as work proceeds.
Approaching limit
Remaining budget is visible before exhaustion. Users can intervene early if the run drifts.
Paused
Either cap is hit. Execution stops with a clear status, not a silent stall or hidden cancel.
Review
The user inspects what the agent did during the budget window before granting more autonomy.
Extended
Explicit approval adds time or steps. The run resumes only after a deliberate gesture.
Complete
The task finishes within budget or the user ends the run. Meters reflect final usage.
Key UX elements
The parts that must be present for bounded unattended runs to feel trustworthy.
State the hard bounds up front.
Time and step limits are visible before and during the run, not only in a settings drawer.
Show used versus cap in flight.
Progress bars or counters update as the agent works so exhaustion never surprises.
Surface what is left before pause.
Minutes and steps remaining help people intervene before the checkpoint, not after.
Stop with an unmistakable status.
When a cap hits, label the pause clearly and disable further unattended steps.
Require explicit approval to continue.
Adding budget is a deliberate act. Never auto-renew silently when limits expire.
Offer a checkpoint before more autonomy.
Summarize what happened in the window so extend-or-stop is an informed choice.
Anti-patterns to avoid
Unbounded agent loops with only a cancel buried in a menu.
Budgets that expire silently and keep going.
No visible remaining time or step count during the run.
Extending the budget automatically without an explicit user gesture.
How products use it
| Product | Implementation |
|---|---|
| Cursor Agent | Max iterations / run bounds before the agent stops for review. |
| Claude Code | Session and tool-use caps that surface when limits approach. |
| Devin | Work units and scoped runs instead of open-ended autonomy. |
| GitHub Actions | Job timeouts as a hard ceiling on unattended execution. |
Implementation
Copy this prompt to generate a production-ready implementation in Cursor, Claude Code, Lovable, or any AI coding agent.
Generate a production-ready implementation of the "Autonomy Budgets" AI interface design pattern.
Pattern Definition:Frequently asked questions
What are autonomy budgets in agent UX?
Autonomy budgets are visible limits on how long or how many actions an agent may run without human review. When the budget is exhausted, the agent pauses for approval instead of continuing indefinitely.
How are autonomy budgets different from hard spend ceilings?
Autonomy budgets bound time or steps of unattended work. Hard budget ceilings bound money or tokens and stop execution at a spend cap. Strong agent products often use both.
What should users see during a budgeted run?
Show remaining time or actions, current goal, and an obvious Stop. When the budget hits zero, pause with a summary of what changed and a clear Extend or Review choice.
When should I use autonomy budgets vs human-in-the-loop?
Use budgets to allow a burst of unattended progress. Use human-in-the-loop to gate individual high-impact actions inside or after that burst. They solve different failure modes.