Approval UI for AI agents: what to show before an agent acts
An approval card should show the exact action the agent wants to take, its inputs and a preview of the result, how risky and how reversible it is, and two clear answers – with keyboard shortcuts. Ask only for actions that are hard to undo, batch similar requests, and keep a record with undo for everything that was approved.
What the card has to show
People approve quickly when they can see what will happen and slowly or blindly when they can't. Every approval needs the same few things, in this order:
- The action in one sentence – "Send this email to 3 people", "Refund $240 to Acme"
- The inputs that matter – recipients, amount, files, target system
- A preview of the result – the email, the diff, the record as it will look
- Risk and reversibility – can this be undone, and who else is affected
- Two answers – Approve and Deny – plus a way to edit before approving
- Approval Card – An agent asks before it acts – risk badge, preview, Approve and Deny with shortcuts, a pausing countdown, and a smooth morph into a resolved row
- Email Draft – Agent-written email for review – switch recipient and tone, edit inline, remove the attachment, send or discard with undo
Risk decides how loud it is
Not every request deserves the same weight. Reading data or drafting text usually needs no approval at all. Sending, paying, deleting and publishing do. Mark the risk on the card, make destructive actions take a deliberate second step, and never pre-select Approve for them.
- Approval Card – An agent asks before it acts – risk badge, preview, Approve and Deny with shortcuts, a pausing countdown, and a smooth morph into a resolved row
- Permission Request – An agent asks for one specific right – who, why and exactly what will happen – and you allow it once, for an hour or always; then it folds into one line with the time left and Revoke
Edit instead of deny
Often the agent is almost right – wrong recipient, wrong tone, one line too many. Letting people fix the draft or the diff in place and then approve saves a full round trip. For changes to text or code, accept and reject parts instead of the whole thing.
- Email Draft – Agent-written email for review – switch recipient and tone, edit inline, remove the attachment, send or discard with undo
- Inline Diff – AI edits to prose shown inline – struck and added words you accept or reject one by one, with keys, a popover and undo
Timeouts and waiting agents
An agent waiting for approval is a paused run. Show that it's paused and since when, and decide what happens if nobody answers – remind, fall back to a safe default, or cancel. If a countdown runs, pause it while the person is looking at the card.
- Approval Card – An agent asks before it acts – risk badge, preview, Approve and Deny with shortcuts, a pausing countdown, and a smooth morph into a resolved row
- Agent Inbox – All your background agent tasks in one calm list – live clocks and status tags, filter tabs with rolling counts, rows that unfold to the last steps with Approve, Reject, Retry or Open, and glide to their new place
Many requests: batch and sort
Agents that work in the background can queue dozens of requests. Collect them in one place, sorted by risk, with two quick answers each – and let people approve similar ones together. When a decision has real trade-offs, show the options and their consequences instead of a yes or no.
- Decision Inbox – Open decisions with two quick answers each – answered ones confirm and fold away
- Review Center – A focused workspace for what your agents want to do – the queue sorted by risk, one item at a time with the shaky spans marked, Approve, Edit, Reject and Skip on single keys, a stamp as each one leaves and the next one rising in
- Decision Tree – An agent stuck on a decision lays out its options as a tree – the consequences of each branch, the risky ones marked, its own pick highlighted – and you choose a path or write your own
After approval: a record with undo
Approval isn't the end. Keep a list of what the agent changed, with before and after and an undo per change, so a wrong approval can be taken back. Once people trust an action, let them raise the agent's autonomy for it so it stops asking.
- Agent Ledger – Everything an agent changed in your systems, each change with an undo – before and after per row, and pointing at Undo shows what builds on it: what would be undone too, and what can't be taken back
- Autonomy Dial – How much an agent may do on its own – a three-stop dial, and its real actions gliding between “Runs on its own” and “Asks you first”, with a lock for what always asks
Questions
Which agent actions need approval?
Actions that are hard to undo or affect other people: sending messages, spending money, deleting or overwriting data, publishing, and changing access. Reading, searching and drafting usually don't.
Where should the approval appear?
Next to the work it belongs to – in the chat, on the task or in the run – and in one inbox for background agents, with a badge so people notice it.
How do I keep people from clicking Approve without reading?
Ask less often and more concretely. When the card shows the exact action and a preview, and routine actions no longer ask, the remaining requests get real attention.
Updated 2026-10-29