Insight · Agent authority
Human Approval for AI Agents: An Authority Model
Define who may act, what approvers need to see, how timeouts stop execution, and the audit evidence needed to review or recover an agent action.
An approval button is useful only when it controls an execution boundary. Define which action needs permission, who may grant it, what their decision authorises, and when it expires. This guide assumes agents using business tools through an application that can enforce policy outside the model.
Classify the action, not the agent.
For each action, ask how many people or records it can affect and how its effects could be repaired. A read can disclose restricted material. An internal update can trigger notifications, invoices or another workflow. Classify the downstream effect rather than the name of the tool call, and apply the stricter class when one proposal combines several actions.
The table scrolls horizontally on small screens. Focus it to scroll with the keyboard.
| Action class | Default autonomy | What the approver sees | Approval timeout | Recovery method | Log evidence |
|---|---|---|---|---|---|
| Read / look up | Act within authorised scope | Query, identity and permitted sources | If approval is required: no action; escalate | No write to reverse; review any disclosure | Case, actor, scope, query and source references |
| Draft inside the system | Act and report; sending is a separate action | Inputs, draft and uncertainty notes | If approval is required: no action; escalate | Discard or replace the draft | Case, draft version, tool and outcome |
| Reversible internal write | Propose and wait initially | Proposed diff, reason and logged before-value | No action; escalate | Restore the before-value after a conflict check | Approval, action key, before/after values and verification |
| Hard-to-reverse internal write | Propose and wait | Downstream effects and recovery limits | No action; escalate | Agreed compensation or human repair | Approval, effects, verification and recovery decision |
| External communication | Propose and wait | Recipient, full message, sources and attachments | No action; escalate | A correction may be possible; delivery cannot be undone | Approver, approved message, recipient and delivery result |
| Financial or contractual commitment | Human execution; no autonomous commitment | Terms, amount or obligation, and responsible owner | No action; escalate | Human-only resolution through the responsible owner | Proposal, human decision and reference to the final record |
These are starting defaults. Read access can itself expose sensitive information. Moving any class to greater autonomy requires evaluation evidence, an owner’s approval and a recorded policy change. A draft stays internal only if its storage and tools are scoped that way.
Start with these six classes, then narrow them to actual operations. “Update a customer record” is too broad: correcting an internal label and changing a billing address may need different authority. Record exceptions in policy, with an owner and test cases. The same authority matrix appears on our AI agent development service.
Give the approver a decision they can inspect.
Show the intended effect, exact target, proposed change or complete message, relevant source references, uncertainty and the limits of recovery. Include downstream effects and the before-value where available. Let the approver inspect the evidence under their own access rights. Do not place sensitive source content in a notification merely because the notification system is convenient.
Bind the approval to the case, target, payload, policy version and expiry. Changing a recipient, amount, attachment or material input creates a fresh proposal. An approval for one case does not grant authority over similar cases. Offer approve, reject and request-more-evidence decisions; treat a request for evidence as pending.
Absence and failure need explicit defaults.
For an action requiring approval, use a fail-closed default: after the agreed waiting window, do not execute it. Record expiry and escalate to an authorised cover person or queue. Define the window from the business process; it is not a delivery commitment. Reaching the end of the escalation chain leaves the action stopped for human resolution.
Name cover for leave and departures, and test that delegated authority has the right scope and expiry. The agent must not approve its own proposal or select a less restrictive policy after rejection. Avoid using the same agent credential for requesting and granting authority. An emergency process needs a human owner and a separate record.
If the approval service, identity check or decision record is unavailable, stop the approval-required action. An undelivered notification is not an approval. On recovery, reconcile the pending case against the durable decision and execution records. Do not replay an old approval until its expiry, payload and current state have been checked.
Check again at execution time.
Immediately before acting, verify that the approver still has authority, the decision is valid, the target is unchanged and policy still permits the action. Use a version or conditional write when the tool supports it. If the approved before-state has changed, return to review rather than applying an old decision to a new situation.
Attach a stable action key across attempts when the downstream system supports idempotency. Confirm how long it retains keys and whether it rejects a different payload under the same key. A timeout after sending may mean an action happened without a response. Query or reconcile the result before retrying; a locally generated key alone does not prevent duplicates in another system.
After acting, check the resulting state or delivery record against the intended effect. Record partial or uncertain outcomes and stop dependent actions where needed. Verification failure should enter the agreed recovery path and alert an owner. Test the case where execution succeeds but writing the local result record fails.
Distinguish rollback from compensation.
Deployment rollback restores application code or configuration. It does not reverse a message, payment or business record already changed. Action compensation is a separate operation, such as a correction or restoring a field after checking for intervening edits. It needs its own authority, evidence and verification.
For an irreversible or disputed effect, preserve the record and route resolution to the responsible human. Do not label a correction as an undo. Practise recovery against representative failures before granting the corresponding write permission, including the case where compensation itself fails.
Keep an audit record that supports reconstruction.
Use related events under a stable case ID rather than overwriting one status field. Capture proposal, decision, attempts, verification and compensation with timestamps. Store protected evidence references when copying raw content would expand access or retention. A payload hash helps check correspondence to retained content; it does not establish who approved it or whether the action was appropriate.
| Field | Purpose |
|---|---|
| Case ID | Join proposal, approval, execution and recovery without relying on message order. |
| Actor and version | Identify the agent, application release, model, prompt and tool versions used. |
| Proposed action | Record the target, operation and bounded payload the approver is being asked to authorise. |
| Evidence references | Point to the source versions, relevant permissions and supporting checks; restrict access to the evidence. |
| Policy decision | Record the policy version, action class, checks passed or failed and reason for escalation. |
| Approver | Identify the authenticated human, their authority for this action and any delegated cover. |
| Decision time and expiry | Record when the decision was made, its validity window and whether it was rejected or expired. |
| Executed payload hash | Bind the execution to a canonical representation of the approved payload; retain a protected payload reference too. |
| Before and after values | Capture the affected fields or protected references needed to reconcile and assess recovery. |
| Action / idempotency key | Relate attempts to one intended action where the downstream system supports this contract. |
| Verification result | Record the observed result, check time and any uncertain or partial effects. |
| Compensation reference | Link the repair, reversal attempt or human resolution, with its own outcome. |
The client decides retention with the people responsible for its data and obligations. Specify retention for decisions, payloads, logs and backups separately, including deletion and access review. Test reconstruction using an authorised reviewer: can they explain what was proposed, who permitted it, what ran and what was repaired without giving them unrelated source access?
Reduce oversight through a recorded policy change.
A possible progression is propose-only, approval on each eligible action, then automatic execution within a narrow reversible class with retrospective sampling. Define the eligible class, evaluation window, evidence threshold, sampling method and owner before changing mode. Use observed errors, near misses and reviewer corrections as evidence; successful easy cases alone are insufficient.
Sample across risky subgroups, tools and uncommon inputs as well as routine cases. Keep high-impact classes under their required approval or human-execution boundary. Return the affected class to per-action approval after a permission breach, failed recovery, material drift or a model, prompt or tool change that has not passed regression checks. Sampled review happens after action and cannot prevent that action’s harm.
Use the acceptance scorecard to agree the evidence for each mode. Bring the action inventory, approver map and recovery limits to an AI agent development discussion.
What to include
Include the decision you are working through, the systems involved and the constraint you need to resolve.