
AI Agent Approval Policy: Practical Template
Build an AI agent approval policy with action tiers, exact approval payloads, reviewer roles, timeouts, rejection behavior, evidence and tests.
AI Agent Approval Policy: Practical Template
An AI agent approval policy defines which actions are denied, which can run autonomously and which must pause for a named person to review the exact proposed effect before execution. A useful policy also defines who may approve, what evidence they receive, when the decision expires, what happens on rejection or timeout and which record proves the rule was enforced.
“Require human approval for risky actions” is a principle, not an operating policy. It leaves the runtime, reviewer and incident team to guess what “risky,” “approval” and “human” mean at the moment of action.
This template turns that principle into an enforceable contract. It is not a security certification or a substitute for legal, privacy or sector-specific review.
The approval contract in one table
| Policy question | Required answer | Block the action when |
|---|---|---|
| What may happen? | Exact action, target, scope and maximum effect | The requested effect is broader than the rule |
| Who is acting? | Agent, workflow, user and credential identity | Identity or delegated authority is unclear |
| Which tier applies? | Deny, observe, bounded autonomy, single approval or stronger review | No rule matches |
| Who may approve? | Named role with authority and separation where required | The requester can approve its own expansion |
| What must the reviewer see? | Exact arguments, current state, expected change, evidence and recovery path | Only a persuasive summary is available |
| How long is approval valid? | Expiry, change invalidation and replay rule | State or payload changed after approval |
| What happens on no? | Reject, stop, record and require a new request for changed work | The agent retries or rephrases the same action |
| What proves enforcement? | Policy version, decision, identity, timestamp, execution receipt and outcome | The record cannot connect approval to execution |
Approval is only one control. The agent still needs scoped credentials, tool restrictions, validation, audit logs, safe failure and a named operating owner.
1. Inventory actions, not just tools
A tool name is too broad for policy. One CRM tool may read a company name, change an opportunity stage, export every contact or delete a record. These effects need different rules.
Inventory each action using:
- agent and workflow;
- tool and operation;
- resource and data class;
- read, draft, write, send, delete or permission change;
- internal or external effect;
- reversible or hard-to-reverse effect;
- maximum value, volume and frequency;
- customer, financial, legal, security or production impact;
- credential used for execution;
- downstream actions triggered by the change;
- owner and fallback owner.
Start from deny when an action has no owner or no defined business need. A model should not create its own authority because it found a technically available tool.
NIST's AI RMF calls for clear roles, responsibilities, human oversight processes and documented application scope. The action inventory is where those governance decisions become concrete.
2. Assign a decision tier
The following matrix is an implementation starting point. Adapt it to the business and applicable obligations.
| Tier | Default behavior | Suitable examples | Evidence required |
|---|---|---|---|
| 0. Denied | Do not expose or execute | Unowned action, privilege escalation, unsupported legal commitment | Denial event and owner for remediation |
| 1. Observe | Allow scoped read only | Retrieve approved policy, inspect one assigned record | Identity, source and read trace |
| 2. Bounded autonomous | Allow inside deterministic limits | Add an internal tag, create a draft, update a reversible field inside scope | Validation, limit check, receipt and rollback |
| 3. Single approval | Pause for an authorized reviewer | Send external communication, change a customer record, execute a sensitive write | Exact payload, consequence, reviewer and expiry |
| 4. Independent review | Require stronger separation or multiple reviewers | High-value financial action, deletion, production change, authority expansion | Independent decisions, tested recovery and complete receipt |
The policy can also deny an entire class regardless of approval. Some actions should stay outside the agent path because no practical review can make the exposure acceptable.
Do not route every action to a person. AWS's current Agentic AI Lens warns that indiscriminate review creates approval fatigue and rubber-stamping. Human attention should concentrate on decisions where judgment can change the outcome.
3. Classify risk outside the agent
Use deterministic properties that the application can verify:
- action type and target;
- permission required;
- reversibility;
- data sensitivity;
- external visibility;
- financial value;
- number of affected records or people;
- production or customer impact;
- novelty relative to the approved workflow;
- input source and trust level;
- recent anomaly, rate or retry pattern.
The agent may propose a classification, but it should not be the only component deciding whether its own action needs approval. A policy engine, tool wrapper or workflow rule should enforce the tier before the side effect.
AWS explicitly cautions against relying on a risk classifier exposed to the same untrusted content as the request. OWASP similarly recommends least privilege and human confirmation for high-impact or irreversible actions, especially when untrusted input can influence the agent.
4. Show the exact action, not a story
An approver needs a reviewable artifact. The approval request should include:
Request ID:
Policy version:
Agent and workflow:
Requesting user or system:
Tool and operation:
Credential identity:
Target resource:
Current state:
Exact proposed arguments or diff:
Expected external effect:
Downstream effects:
Evidence and source links:
Matched policy rule:
Risk tier and reason:
Reversibility:
Rollback or compensation:
Idempotency key:
Decision deadline:
Approver role:
The current state and exact payload matter more than the agent's explanation. If the payload contains an email, show recipient, subject, body and attachments. If it changes a database record, show the fields before and after. If it runs a command, show the resolved executable and arguments.
Do not expose hidden reasoning or unnecessary personal data. Give the reviewer the facts needed to decide, with access controls appropriate to the underlying record.
OpenAI's Agents SDK pauses before a tool call that requires approval and surfaces the tool name and arguments through an interruption. The implementation still owns the approval interface, reviewer identity, policy and operating record.
5. Bind approval to one immutable proposal
An approval should authorize a specific effect, not a future family of actions.
Bind the decision to:
- request ID;
- action and arguments;
- target and current-state version;
- policy version;
- agent and credential identity;
- approver identity;
- timestamp and expiry;
- maximum value, volume or scope;
- idempotency key when the action can be retried.
Invalidate approval when a material field changes. New recipient, new amount, new attachment, new command argument, changed target state or a different policy version requires a new decision.
Avoid broad “always approve” choices for external or high-impact tools. Platform features that persist a decision for a run are implementation conveniences, not a reason to turn a narrow review into standing authority.
6. Define who can approve
Name roles, not an undefined “human.”
| Action | Requester | Approver | Backup | Separation rule |
|---|---|---|---|---|
| Customer-facing message | Sales or support agent | Account owner or shift lead | Operations lead | Agent cannot self-approve |
| Refund within approved band | Service workflow | Authorized service manager | Finance owner | Amount and customer identity visible |
| Production change | Engineering agent | On-call engineer | Service owner | Reviewer did not author the request when impact is critical |
| Permission expansion | Platform workflow | System owner | Security owner | New authority never inherits prior approval |
The approver must have both authority and enough context. Seniority alone does not make someone qualified to review a database migration, customer promise or financial action.
For the highest-impact operations, the business may require independent reviewers. AWS describes multiple independent reviews as a defense against error and social engineering. The right threshold is a business decision, not a universal number.
7. Make timeout and rejection fail closed
Every approval request needs a terminal path:
- Approved: execute the exact bound action before expiry.
- Rejected: record the decision and stop that action.
- Expired: do not execute, then cancel or create a fresh request.
- Canceled: close the request because the workflow or underlying state changed.
- Escalated: send the same reviewable artifact to an authorized backup.
Silence is not approval. If the reviewer is unavailable, the fallback should be deny, wait or transfer to a defined owner, according to the workflow.
When rejected, the agent must not retry the same effect with different wording. A reviewer can provide a reason or a permitted alternative. Materially changed work becomes a new request with a new ID.
OpenClaw exposes an askFallback setting and documents deny as the safe fallback when an approval route is unavailable. Its execution approvals also remain separate from per-user authorization and broader host isolation.
8. Execute safely after approval
Approval does not guarantee that execution is safe or still appropriate. Immediately before the action:
- authenticate the execution identity;
- confirm the approval is valid and unused;
- recheck the policy and current state;
- validate exact arguments and limits;
- acquire idempotency protection or a transaction boundary;
- execute with the narrow credential;
- capture the provider or system receipt;
- verify the expected post-state;
- alert the owner if the result is partial or different;
- consume the approval so it cannot be replayed.
If the action fails halfway, do not report success. Run the defined rollback or compensation path and preserve the partial result for incident review.
9. Keep an evidence chain
The audit record should connect:
input → proposal → policy decision → human decision → execution → verified outcome
Keep:
- input reference and trusted source links;
- agent, model, instruction and tool versions;
- matched policy rule and risk signals;
- approval artifact and reviewer identity;
- approve, reject, expire or cancel decision;
- exact executed payload;
- external receipt or system diff;
- post-execution validation;
- rollback or incident reference;
- retention and access policy.
Logs should record what actually happened, not only what the agent said it intended to do. Review approval rate, rejection reasons, queue time, expiry rate, overrides, repeated requests and incidents by action class.
Copyable policy template
policy:
id: customer-operations-agent
version: 1
owner: operations
default: deny
actions:
- id: crm.read_assigned_account
tier: observe
limits:
records: 1
assignment_required: true
- id: crm.update_next_step
tier: bounded_autonomous
limits:
fields: [next_step, follow_up_at]
records_per_run: 1
reversible: true
evidence:
- source_record
- validation_result
- execution_receipt
- id: email.send_customer
tier: single_approval
approver_roles: [account_owner, sales_lead]
bind_to:
- recipient
- subject
- body
- attachments
- policy_version
expires_in_minutes: 30
on_reject: stop
on_timeout: deny
retry_requires_new_request: true
- id: access.expand_permissions
tier: independent_review
approver_roles: [system_owner, security_owner]
reviewers_required: 2
prior_approval_inheritance: false
evidence:
record:
- request_id
- agent_id
- workflow_id
- tool_and_arguments
- matched_rule
- reviewer_identity
- decision_and_timestamp
- execution_receipt
- verified_outcome
This is a policy shape, not drop-in configuration for every platform. Translate it into the runtime's policy engine, tool wrappers, identity system and workflow store.
Test the policy before live authority
At minimum, test:
| Scenario | Expected result |
|---|---|
| No rule matches | Denied without tool execution |
| Payload exceeds value or volume | Higher tier or denial |
| Reviewer sees request | Exact target, arguments, evidence and consequence are visible |
| Reviewer rejects | Agent stops and does not rephrase the same request |
| Nobody responds | Request expires and action does not execute |
| Payload changes after approval | Prior decision becomes invalid |
| Same request is delivered twice | One execution at most |
| Credential lacks permission | Action fails safely despite approval |
| Execution partially fails | Compensation or incident path starts |
| Agent requests more authority | Fresh independent review is required |
| Policy changes | Versioned tests run before rollout |
Add real failures to the evaluation set. Approval quality is part of the production pilot, so connect the policy to the AI automation pilot measurement scorecard and the broader AI agent production readiness checklist.
Frequently asked questions
Which AI agent actions need human approval?
Actions usually deserve approval when they create an external effect, change sensitive data, move money, affect production, delete information, expand authority or are hard to reverse. The exact rule should reflect impact, scope, credentials and the business's risk decisions.
Should every AI agent action require approval?
No. Blanket approval can create queues and rubber-stamping. Deny unsupported actions, allow narrow read-only or reversible work under deterministic limits and reserve human attention for meaningful risk.
Is human approval the same as authorization?
No. Authorization determines what the executing identity can access or change. Approval records a decision about one proposed action. The underlying credential should still have the minimum permissions required.
What should an approval request show?
Show the exact target and arguments or diff, current state, expected effect, source evidence, matched policy, reversibility, recovery path, expiry and reviewer role. A generic natural-language summary is not enough for a high-impact decision.
What happens when an approval is rejected?
The action stops and the decision is recorded. The agent should not silently retry the same effect. A materially changed proposal needs a new request and a new approval decision.
Can an approval remain valid after the payload changes?
Not for a material change. Bind approval to the exact proposal and invalidate it when the recipient, amount, target, attachment, command, current state or policy version changes.
Primary references
- NIST AI Risk Management Framework Core
- OpenAI practical guide to building agents
- OpenAI Agents SDK human-in-the-loop guide
- AWS Agentic AI Lens on human review for critical decisions
- OWASP AI Agent Security Cheat Sheet
- OpenClaw execution approvals
An approval policy is useful when the runtime can enforce it and the operation can prove it. Map the policy, tools and human control for a business AI system before granting live authority.