Safety / Governance

Human Approval Gates Every AI Agent Needs

An approval gate is a pause before an AI agent takes an action that needs your decision. It should show exactly what will happen, which account or person it affects and whether it can be undone. The examples below help you design a review a person can actually use.

01

What a gate has to put on screen

For an email, show the recipient, subject, full message and sending account before asking for approval. A vague “Proceed?” gives the reviewer too little information. The review should happen before the action is taken.

  • Target: the exact address, repository, table, account, or URL
  • Payload: the final text or command, never a summary of it
  • Blast radius: rows touched, dollars committed, who will see it
  • Reversal: the undo path, or plain words saying there is none
02

Which actions need a gate?

Set review requirements by consequence. Saving a draft in a test folder differs from changing the settings of a live website. The same tool may do both, so its name alone is not enough to decide.

LevelExample actionGate
R0 adviceDraft a plan, explain a fileNone
R1 readRead an inbox, query analyticsScope by directory or account
R2 local writeEdit a repo file, save a draftBatch review before commit
R3 externalSend email, publish a page, deployPer action, payload shown
R4 irreversibleDelete records, spend money, rotate credentialsPer action, second reviewer
Risk ladder Monolith applies when scoping agent work for a client account.

The table distinguishes work you can review privately from actions that affect customers, money or public information. Use that distinction to decide where the process must stop for approval.

03

Where do the gates live in each harness?

Put the rules into the permission controls supported by your agent software, then test them. A policy document alone does not enforce a stop.

HarnessControlDefault posture
Claude Codeallow, ask, and deny rules under permissionsManual mode prompts on first use of a tool
Claude Code hooksPreToolUse returns a permission decisionNo decision leaves the normal prompt in place
HermesApproval mode set to manual, smart, or offCron, single query, and unattended runs deny
OpenClawExec approvals set to deny, allowlist, or fullPresets named yolo, cautious, and deny-all
MCP toolsA tool marked as requiring user interactionPrompts on every call, ignores allow rules
Approval controls read from each product's own documentation and CLI in September 2026.

Two details earn their keep. Claude Code will not auto-approve a tool matched by an explicit ask rule in any mode, including the mode that skips prompts, which makes an ask rule the strongest gate available without writing a hook. Hermes evaluates user deny patterns before the yolo bypass, so a deny entry survives an operator who is moving fast at the end of a long run.

Claude Code: gate the verbs, allow the noisejson
{
  "permissions": {
    "allow": ["Read", "Bash(npm run test *)", "Bash(git status)"],
    "ask":   ["Bash(git push *)", "Bash(vercel deploy *)"],
    "deny":  ["Read(./.env)", "Read(./.env.*)", "Bash(rm -rf *)"]
  }
}
Hermes: prove the gate fires before you trust itbash
hermes approvals test -- git push --force origin main
# exit 0 allow, 2 ask-approval, 3 deny

hermes config get approvals
# cron_mode: deny  single_query_mode: deny  unattended_mode: deny

hermes approvals suggest --days 90 --min-count 3
04

How do you test a gate before you trust it?

Test the approval step on sample data before using it for client work. Try approving, rejecting and changing the proposed action, and check whether the software respects each decision.

The fourth case is the one teams skip. A web page, an inbound email, a pull request comment, and a scraped PDF are all data. None of them can approve anything. The current MCP specification says the same about the servers themselves: treat a tool description as untrusted unless the server is trusted, and require explicit user consent before invoking any tool.

An operator at a studio workstation reviewing a pending agent action before approving it
Review the payload, not the summary of it.

Fix fatigue by widening the bottom of the ladder, never by loosening the top. Let read-only commands, test runs, and formatters through without a prompt. Hermes will mine your session history for commands you approved repeatedly and propose allowlist entries, while refusing to propose destructive classes such as recursive deletes, credential edits, or anything run under elevated privileges.

05

What a first pass looks like

Write down prohibited actions first, then actions requiring approval. Allow routine work only within the agreed project boundaries. Test the full process again after changing the settings.

Can an agent approve its own action if I told it to handle everything?

Set explicit rules for the actions you want to review. An agent should not treat text in a webpage, email or document as your approval. Test that the software waits for the required decision.

How many approval gates are too many?

Review whether prompts are asking for meaningful decisions or routine steps. Repeated low-value prompts can encourage careless approval. Keep important actions clear and distinct.

What should a gate do when the agent runs overnight with nobody watching?

It should stop or skip the action that requires approval and report what remains. Define this behavior before scheduling the work, then test it without a reviewer present.

Put it to work

Write the gates before the first run

Start with the risk ladder in this guide and name who approves each consequential action. Bring one proposed workflow to a call, and we can help separate safe preparation from steps that need a person.

Continue the field manual

Related guides