Human-in-the-loop: which AI agent actions need approval
Why do some actions need human approval?
Because an agent can be manipulated by the text it reads, and a human is the last control that is independent of the model. OWASP phrases it for LLM06:2025 (Excessive Agency): use human-in-the-loop control to require a human to approve high-impact actions before they are taken. The same page also recommends complete mediation, meaning authorization enforced in downstream systems rather than left to the LLM's judgment.
The EU AI Act (Article 14) points the same way for high-risk systems: human oversight proportionate to the risks, level of autonomy and context, with the ability to disregard, override or stop the system, and vigilance against automation bias. These obligations apply from December 2, 2027 for Annex III systems.
Human approval is therefore both a security measure and, in some cases, a compliance requirement.
How do you rank actions by risk level?
With three questions: is the action reversible, what can it touch, and who bears the consequences. The graver the answer, the stronger the control.
| Level | Criteria | Examples | Recommended control |
|---|---|---|---|
| 0, low | Read-only, non-sensitive data, no side effects | Search a public base, summarize an internal document | Automatic, logged |
| 1, moderate | Reversible write, scope limited to the user | Create a draft, add a note, edit a personal ticket | Automatic with undo, rate limits |
| 2, high | Write visible to third parties or hard to undo | Send an email, publish a message, edit a customer record | Human approval with a full preview |
| 3, critical | Irreversible, financial, rights or bulk data | Payment, transfer, deletion, permission change, data export, production deployment | Named human approval, sometimes by two people |
| 4, forbidden to the agent | Major impact and no need for autonomy | Creating admin accounts, disabling logging, changing approval rules | Outside the agent's scope |
The level depends on context. An internal email to yourself is level 1. The same email sent to a customer list is level 2 or 3. So assess the action with its arguments (recipients, amount, volume) and not by the tool name alone.
Which actions always require approval?
Those where a mistake or manipulation is costly and cannot be recovered. Here is the starting list we use to review an agent.
- Money: payment, refund, change of bank details, purchase order creation.
- Outbound communication: emails, messages and posts addressed to third parties, especially in volume.
- Deleting or overwriting data without a restorable backup.
- Rights and identities: user creation, role change, sharing a file externally, issuing tokens.
- Data export to a domain, account or service that is not already approved.
- Code or command execution outside a sandbox: shell, write SQL, deployment.
- Changes to its own configuration: allowed tools, approval rules, MCP servers.
The last point is far from theoretical. In CVE-2025-54135 (Cursor), the agent could create an MCP configuration file without approval, and in CVE-2025-53773 (Copilot and VS Code), an injection could switch on auto-approval mode in the settings. In both cases, human approval was bypassed by editing what governs it. See our article on coding agent security.
How do you design an approval that actually protects?
By having the system enforce the approval, on the real action, with a presentation that lets a person decide. A badly designed approval gives a false sense of security.
- Enforce server-side. The tool refuses to run without an approval token bound to the exact action. The model cannot decide that an approval is "already given".
- Show the real action. The human sees the effective parameters: recipient, amount, SQL query, file. A summary written by the model can be manipulated.
- Bind the approval to the action. If the arguments change after approval, a new approval is required. An approval is short-lived and single-use.
- Identify the approver. A named person with the required rights, distinct from the requester when the stakes justify it.
- Log the request, what was shown, the decision and the timestamp. See what to log.
- Provide a simple refusal and a way to stop the agent.
What pitfalls make human approval fail?
The main one is approval fatigue: if a human approves dozens of benign requests, they end up clicking without reading. The others are more mechanical.
- Too many requests. Reserve approval for levels 2 and 3, and automate levels 0 and 1 with limits. A rare approval is an approval that gets read.
- Misleading presentation. Long text with the key element buried, a shortened link, a truncated recipient.
- "Always allow" option. It turns a one-off approval into a permanent authorization, including for an action triggered by an injection.
- Interface-only approval. If the tool's API can still be called without a token, the control is worthless.
- Automation bias. The human trusts the agent because it is often right. Article 14 of the EU AI Act asks precisely to stay alert to this bias.
- Bypass through content. The agent is led to rephrase a dangerous action as a series of small actions, each under the threshold. Assess call sequences as well.
How do you test that human approval holds?
By trying to bypass it with harmless payloads, from the viewpoint of an attacker who controls text the agent reads. The basic tests:
- Direct call. Call the level 3 tool through the API without an approval token: it must be refused.
- Substitution. Get approval for a benign action, then change the arguments: execution must fail.
- Splitting. Break a sensitive action into level 1 steps and see whether a cumulative limit exists.
- Injection. Put in a document an instruction asking to approve or skip the step, and verify it has no effect.
- Self-modification. Ask the agent to change its approval rules or create a tool without approval.
- Readability. Show the approval screen to a third party: can they say what will happen in ten seconds?
These are classic scenarios of our work on tool calls and MCP. The full framework is in our AI agent security pillar.
Where do you start this week?
List every tool your agent can call, give each a level from 0 to 4 using the table, and look at levels 2 and 3 first. For each one, check three things: is approval enforced server-side, does the approver see the real parameters, and is the decision logged. Fixing those three points on your five riskiest tools removes most of the exposure.
How does CleanIssue review an agent's actions?
We map the tools, assign a level to each action with its real arguments, then try to get past the controls. The Agent Red Team Express at €1,900 delivers in 5 days the ranking of your agent's actions and any bypass evidence. If several agents are involved, the Custom Red Team is quoted based on scope. The first conversation is a free 30-minute discovery call.
Does your product ship an AI agent? CleanIssue tests what a stranger can make it do with the Agent Red Team Express (5 days, €1,900), or a custom red team for several agents and MCP servers.
Related articles
Three adjacent analyses to keep exploring the same attack surface.
Function Calling: The AI Agent Attack Surface
Function calling and AI agents: five families of tool attacks, safer tool design and a testing protocol to limit unauthorized actions.
AI agent security checklist before production
The 20-point checklist to validate before putting an AI agent into production: permissions, inputs, outputs, human approval and observability.
Meta: AI Agent Posts Bad Advice, Sev 1 Incident
In mid-March 2026 a Meta internal agent posted wrong advice without approval; data was exposed for about two hours. Verified facts and controls.
Sources
Related services
If this topic maps to a real risk in your stack, these are the most relevant CleanIssue audits.