ghostcorpnet

Home · Articles

How to Add Human Approval Gates to AI Agents: A Step-by-Step Setup Guide

· · 1 min read

Last reviewed

Updated

On this page

An approval gate is a pause built into an AI agent's execution path: before the agent performs certain actions, it stops, shows a person exactly what it is about to do, and waits for a yes. Done well, gates are almost invisible — the agent runs freely on routine work and only interrupts a human when an action is expensive, irreversible, or aimed outside the system. Done badly, they are either a rubber stamp that approves everything or a bottleneck that teaches people to switch the agent off. This tutorial builds a gate that lands in the middle: sorted by consequence, specific about what is being approved, and closed by default when nobody answers.

Step 1: List every action the agent can take

You cannot gate an action you have not named. Start with the agent's tool list and write down every distinct thing it can do in the world: read a record, write a record, send a message, move money, change a permission, delete something, call an external API, publish content. For each action, note the target it acts on and whether the effect can be undone. This inventory is the raw material for the whole design, and it usually surprises the team that wrote the agent — tools accumulate, and yesterday's harmless helper can become today's write path.

Step 2: Sort actions by consequence

Gate by what an action can cost, not by how the agent happens to call it. Three questions sort almost any action:

Actions that are reversible, internal, and cheap belong in the lowest tier. Actions that are irreversible, external, or expensive belong behind a gate. Actions your team would never accept — an agent changing its own permissions, for example — belong on a deny list, not behind a gate at all. A gate is for judgement calls, not for things that should never happen.

Step 3: Assign each action a tier

A workable scheme has four tiers:

  1. Run freely. Reads, lookups, drafts, and other reversible internal work. The agent proceeds; the action is logged like everything else.
  2. Run, then notify. Low-risk writes the team wants visibility on — a summary filed, a ticket created. The agent proceeds and posts a notice a human can review after the fact.
  3. Approve first. The gated tier. The agent prepares the action, presents it, and does nothing until a named person approves the exact request.
  4. Never. Hard-denied regardless of who asks. No approval can unlock these; changing the list is a policy change, not an in-the-moment decision.

Thresholds can sharpen a tier: an action might run freely under a stated value and require approval above it. Write the threshold into the policy, not into the agent's prompt, so it cannot be talked around.

Step 4: Make the approval request decidable

An approver can only judge what they can see. A request that says "the agent wants to send an email" forces the approver to either blind-trust or go digging — both end in rubber stamps. Every gated request should carry, in one place:

A request in that shape looks like this:

{
  "request_id": "appr-2026-10-25-014",
  "agent": "agent:ops/summarizer",
  "action": "email.send",
  "target": "customer-success-list@example.com",
  "payload_summary": "Weekly digest, 3 items, draft attached in full",
  "reason": "Scheduled digest run for plan plan-2291",
  "cost": "0 external spend; 1 outbound message",
  "expires_at": "2026-10-25T18:00:00Z",
  "status": "pending"
}

The approval must bind to this exact payload. If the agent changes the message after approval, that is a new request. Approving a summary and executing something else is the failure mode the gate exists to prevent.

Step 5: Fail closed when nobody answers

Decide, in advance and in writing, what a timeout means. For gated actions the safe default is: silence means no. The request expires, the action does not run, and the expiry is logged like any other outcome. The tempting alternatives — auto-approve after an hour, or let the agent retry until someone clicks — quietly convert the gate into a delay. If some class of action genuinely must proceed unattended, move it to the notify tier deliberately; do not let a timeout move it for you.

Step 6: Record every decision

Approvals and denials are both evidence. Log the request, who decided, when, the decision, and any reason given. Denials matter as much as approvals: a pattern of denials is how you learn a tier is mis-set or an agent is mis-scoped. Store the record outside the agent's own write access — an agent that can edit its approval history has no approval history, only a story. This record is the seed of the audit trail covered in our companion guide to building an agent audit trail.

Step 7: Keep gates few enough to stay real

A gate that fires forty times a day will be approved forty times a day, thoughtfully zero times. Protect the approver's attention like the control it is:

The mistakes that kill gates

Three patterns undo approval workflows in practice. First, the gate sits outside the execution path — the agent asks for approval in one tool and executes in another, so a "no" is advisory. The check must live in the dispatch path itself, where the action cannot proceed without an approved request on file. Second, the request hides the payload, so the human approves a description and the agent executes a document. Third, the gate approves a category ("sending email is fine") instead of an instance, which is just the notify tier with extra clicks. If your gate has any of the three, fix the plumbing before adding more tiers.

Start small: inventory the actions, gate only the irreversible ones, make each request fully visible, expire on silence, and log everything. That is a gate a team can actually run — and one that still means something the hundredth time it fires.

Put this into practice

The Governed Agent Mesh Playbook — Studio Edition ($29) gives you the full system: tiering, approvals, spend controls, and incident response, ready to run.

Get the Studio Edition — $29

Start free: the Agent Bounds Checklist walks through the nine bounds every agent needs, on one page — $0.

Or browse the full catalog of 63 products →