Skip to content

Start building

Trust and control

Human-in-the-loop approvals for AI agents

A human-in-the-loop approval makes an AI agent stop before a chosen action and wait until a person approves or rejects it. The agent reads and prepares on its own, but nothing marked for approval happens without a yes.

Updated · 5 min read

Why do AI agents need approvals?

Language models make mistakes. They pick the wrong record, misread an amount, or follow an instruction hidden in an email they were asked to read. When the output is only words, a mistake is an inconvenience. When the output is a refund, a deleted record or an email to a customer, it costs real money and trust.

Approvals put a person exactly where a mistake would be expensive, without slowing everything else down. The agent still does the reading, searching and drafting. The person spends a few seconds checking the one step that matters.

Which actions should need approval?

A simple rule works for most teams: reading runs freely, changing asks first, deleting always asks. Then adjust for your own risk.

  • Read

    Examples
    Search contacts, read a channel, get an order
    Suggested setting
    Runs on its own
  • Internal change you can undo

    Examples
    Add a note, tag a ticket
    Suggested setting
    Your call; often runs on its own
  • Change others will see

    Examples
    Send an email, create a deal, post to a customer
    Suggested setting
    Ask first
  • Hard to undo

    Examples
    Delete a record, run a database statement, move money
    Suggested setting
    Always ask

Too many approvals cause their own problem: people start approving without reading. Keep them for the actions where a person’s judgment changes the outcome.

How does an approval work, step by step?

This is how it works in MyDeepAgents:

  1. The model asks for a tool call that is set to ask first.
  2. The platform creates an approval task with the tool and the exact arguments, and the run’s status becomes “waiting for approval”.
  3. People with the Operator role or above get a notification in the console and an email.
  4. A person opens the request, reads what the agent wants to do, and approves or rejects it, with an optional comment.
  5. If approved, the call runs. If rejected, the agent is told that the person rejected the call, and it carries on without it: it can explain, ask a question or try another way.

While it waits, the run holds its place. It is a durable Temporal workflow, so a restart does not lose it, and the waiting time does not count toward the run’s limit on active time.

What happens if nobody answers?

In MyDeepAgents a request waits up to 24 hours. After that it expires, and the agent is told the call was not approved in time, just as if it had been rejected. A decision that arrives before the expiry stands. When a run ends for any other reason, its open requests are cancelled, so nobody approves a call for a run that has already finished.

Who can approve, and is the decision recorded?

Approving needs two permissions: the right to approve runs, which the Operator role and above have, and the right to see the run’s content. Nobody decides blind. If two people decide at the same moment, the first decision counts and the second person is told the request was already decided.

Every decision is written to the audit log as approved, rejected or expired, with who made it and when.

How do approvals work for an AI agent on a website?

Visitors never approve an agent’s actions. When the agent behind a website chat reaches a tool that needs approval, the visitor sees a short message saying the team is checking the request, while a person on your team decides in the console. See how to add an AI agent to your website.

How do you set approvals in MyDeepAgents?

Each tool an agent has carries its own approval setting:

  • Never: the tool runs on its own.
  • Always: every call waits for a person.
  • Policy: the platform decides from what the action does. Today that means actions marked destructive, such as deletes, ask first, and other actions run on their own.

When you add a tool in the console, tools that only read are set to run on their own, and tools that change or delete something are set to ask first. You can change that per tool, except for tools that delete: the console keeps those on “ask first”.

The same settings apply to tools from MCP servers. When you add a server, a person reviews each tool’s side effects, which start from the hints the server gives; a tool with no hints is treated as one that writes. When one agent calls another, the other agent’s tools ask for themselves, and their requests appear on the run that started it. Inside a workflow, an agent step waits for its tools’ approvals.

Key points

  • An approval stops an agent before a chosen action until a person says yes.
  • Reading runs freely, changing asks first, deleting always asks.
  • In MyDeepAgents a request waits up to 24 hours, then expires; a rejection is reported to the agent, which carries on.
  • Approvers need permission to approve and to see the run’s content, and every decision is audited.
  • Website visitors never approve; your team does, in the console.

Questions people also ask

Does the agent stop completely while it waits for approval?

Yes. The run pauses at that call and keeps its place. In MyDeepAgents the waiting time does not count toward the run’s limit on active time, and the wait survives a server restart.

Can I approve an agent’s action from an email?

Not yet. The email tells you that a request is waiting. You approve or reject it in the console, where you can read the full request first.

What happens when I reject an action?

Nothing changes in the other system. The agent is told the call was rejected and continues without it, for example by explaining what it could not do.

Can an AI agent skip an approval?

No. The approval is enforced by the platform, not by the model. A call that needs approval is held by the platform until a person decides, whatever the model writes.

Early access

Put an agent to work

Build an agent, connect it to your tools, and decide what it may do on its own. Or tell us what you want it to do.