Skip to content
  1. Home
  2. AI agents
  3. Orchestration and multi-agent systems
  4. Human in the loop

Build · Orchestration and multi-agent systems

Human in the loop: where a person approves what an AI agent does

Human in the loop means an AI agent pauses at defined points and a named person decides whether it continues: approving an action before it happens, supplying missing information, taking over the conversation, or reviewing the work afterwards. The design questions are which actions need a human, which human, and how you prove later who approved what.

In this guide: 83 pages

Key takeaways

  1. Gate by risk tier. Safe read-only tools run, writes above a threshold pause, prohibited actions never run.
  2. Every major framework now has a native approval request: Agent Framework approval_mode, Foundry MCP require_approval, the OpenAI Agents SDK needs_approval, LangGraph interrupt, ADK require_confirmation (experimental).
  3. An approval is evidence only if it is bound to the exact request, the approver's identity and a timestamp, and only if a replay cannot reuse it.
  4. Overreliance is a measured effect. Microsoft's research found that even showing sources can raise trust in wrong outputs; the countermeasures for approval fatigue are friction, thresholds and sampling.
An approval gate for an AI agentThe agent proposes a tool call with its arguments. Policy sorts the call by risk tier: safe read-only tools run without a pause, gated writes pause. A named approver sees the exact tool, arguments and target. The decision is bound to that one request and logged with the approver identity and a timestamp. The call then runs with an idempotency key so a retry cannot repeat its effect, and a timed-out request is denied.Agent proposestool call withargumentsRisk tiersafe reads: rungated writes: pauseNamed approversees tool, args,targetDecision boundto the request;loggedRetry-safe runidempotency keydeny on timeoutAudit recordRequest ID, tool and arguments shown, target system, approver identity, decision, timestamp, any edits.Prohibited actions never reach the gate. Safe read-only tools skip it. Standing approvals are reviewed when tools change.A replay cannot reuse an approval: the response must match a pending request in the same session.An approval gate for an AI agentThe agent proposes a tool call with its arguments. Policy sorts the call by risk tier: safe read-only tools run without a pause, gated writes pause. A named approver sees the exact tool, arguments and target. The decision is bound to that one request and logged with the approver identity and a timestamp. The call then runs with an idempotency key so a retry cannot repeat its effect, and a timed-out request is denied.Agent proposes a tool callwith its arguments and targetPolicy sorts by risk tiersafe reads run; gated writes pauseNamed approver decidessees the exact tool, arguments, targetDecision bound and loggedrequest ID, approver, time, editsRetry-safe runidempotency key; timeout means denyAudit recordRequest ID, tool and arguments shown,target, approver, decision, timestamp.Prohibited actions never reach the gate.Safe read-only tools skip it. A replay cannotreuse an approval.
An approval gate: the agent proposes a tool call, policy sorts it by risk tier, a named approver sees the exact tool, arguments and target, the decision is bound to the request and recorded, and the call runs with an idempotency key so a retry cannot repeat it.

Which agent actions need a human?

The actions that can move money, change a record of truth, reach a customer, or cannot be undone. Everything else should run without a person, or the approvals that matter will drown in the ones that do not.

Microsoft's illustrative taxonomy for agent red teaming (Microsoft Learn, ms.date 19 Aug 2026) has three tiers. Prohibited actions, such as social scoring, are never allowed. High-risk actions, such as financial transactions and medical decisions, are allowed with human-in-the-loop confirmation. Irreversible actions, such as file deletions and system resets, are allowed with disclosure plus confirmation. Microsoft calls it illustrative guidance, and it is a usable starting point for a company's own list.

We add a fourth tier at the bottom: safe read-only tools that run without a pause, because the data they return is already visible to the user under their own permissions. The result is a short policy, usually one page, that names each tool, its tier and the approver role. It sits next to the agent's registry record, and the tier decides which pattern below applies.

Two anchors from outside engineering. The EU AI Act's Article 14 requires high-risk systems to be designed so that overseers can interpret the output, decide not to use it, override it and stop it, and stay aware of automation bias; the tracker site shows application from 2 Dec 2027 for Annex III uses, a date to verify against the Official Journal before relying on it. Microsoft's own advice for its AI approval stages is that financial transactions, legal decisions and personnel actions keep a human stage.

What approval patterns exist, and where does each ship?

Eight patterns cover what the products ship on 2 Nov 2026, from a pause before a single tool call to a sampled review after the fact. The table names each and where it lives.

Human-in-the-loop patterns and where they ship, as of 2 Nov 2026.

PatternWhat happensWhere it ships
Pre-action approvalA tool is marked as requiring approval; the run pauses and returns the tool name and arguments; your app shows them and resumes with approve or rejectMicrosoft Agent Framework approval_mode="always_require" (Python) and ApprovalRequiredAIFunction (.NET); Foundry MCP tool require_approval, default always; OpenAI Agents SDK needs_approval; LangGraph interrupt(); ADK require_confirmation (experimental)
Threshold approvalAsk only when a condition holds: an amount above a limit, a low-confidence resultADK require_confirmation as a function; OpenAI needs_approval as a per-call function; Copilot Studio multistage approvals with conditions between stages (preview)
Return of controlThe agent hands the proposed call back to your application, which runs it or notBedrock Agents Classic RETURN_CONTROL with an invocationId, including from collaborator agents
Request for informationThe agent asks a person for missing input mid-taskCopilot Studio request for information (Outlook actionable message, first response wins); MCP elicitation in form or URL mode (spec 2025-11-25)
Out-of-band approvalThe approver is away from the chat and answers on another channel; the run suspendsStep Functions .waitForTaskToken with HeartbeatSeconds; Lambda durable functions callbacks; Auth0 asynchronous authorization (CIBA push)
Escalation to a personThe conversation and its context transfer to a human agentCopilot Studio hand off to a live agent (session marked Escalated); Customer Conversation harness sub-agents; Strands handoff_to_user
Four-eyesTwo different people, or a separate requester and approverCopilot Studio "Everyone must approve" stages, with the same approver barred from two stages; GitHub Copilot cloud agent bars the requester from approving its pull request
Post-hoc and sampled reviewLow-risk actions run; a person reviews a sample or the flagged onesAnnotation queues in Langfuse and LangSmith

Amazon SageMaker A2I, the AWS human-review service, is closed to new customers, so new designs on AWS use Step Functions callbacks for the wait, a review interface of their own, and AgentCore Policy (generally available 3 Mar 2026) for the cases a rule can decide: Cedar rules that permit or deny a tool call by role and parameters, which take the rule-decidable cases out of the approval queue and leave the judgment calls in it.

How do you record who approved what?

Record the request ID, the exact tool and arguments shown, the target system, the approver's identity, the decision, the timestamp and any edits, and bind the approval to that one pending request so a replay or a forged message cannot reuse it.

The binding is the part teams skip. Microsoft Agent Framework authorizes a tool call only when the approval response matches a pending request recorded in the same session; an unbound response is ignored with a warning, and the documented opt-out "can let a fabricated or replayed response approve a privileged tool call" (Microsoft Learn, ms.date 22 Oct 2026). If middleware changes already approved arguments, the framework re-requests approval or fails closed. The OpenAI Agents SDK serializes its RunState so pending approvals survive a restart, and warns to deserialize snapshots only from trusted storage.

Standing approvals need a review date. Agent Framework's harness agent keeps "always approve" rules in session state, and they are not bound to the tool instance that created them, so a replacement tool with the same name, including an MCP tool, can match a saved rule. Microsoft's advice is to review saved rules whenever the agent or tool set changes and to start a new session when an approval should not carry forward. The sticky always_approve in the OpenAI SDK deserves the same treatment.

Then exactly-once. LangGraph restarts the whole node when a run resumes from an interrupt, so side effects before the pause should be idempotent; OpenAI says plainly that approval does not guarantee exactly-once execution and recommends idempotency keys. Foundry's MCP tool guidance adds the audit line: review the requested tool name and arguments before you approve, and log approvals and tool calls. Two public examples show the shape. GitHub prevents the user who asked Copilot cloud agent to create a pull request from approving it, and workflows wait until a user with write access has reviewed the code (GitHub Docs). DKB's banking assistant acts on accounts with the customer making the final decision, and LLM-flagged sessions go to human annotation queues ranked by severity (Langfuse, 31 Aug 2026).

Why does approval fatigue happen, and how do you avoid it?

It happens because people approve what the system proposes when checking is slow and the proposal is usually right. Microsoft's research calls this overreliance on AI, found that even showing sources can raise trust in wrong outputs, and recommends friction, time to think and confirmation dialogues at the points that matter.

The framework (Microsoft Learn, ms.date 27 Feb 2025) defines overreliance as users accepting incorrect or incomplete AI outputs because the design makes errors hard to spot, notes the risk is higher where the AI can act without review, and warns that mitigations can backfire: "The mere presence of sources can make users trust AI outputs more." Its countermeasures are cognitive forcing functions, uncertainty expressions and verification aids. EU AI Act Article 14 names automation bias directly.

In practice four things keep an approval queue honest. Gate by tier and threshold, so a reviewer sees ten decisions a day rather than two hundred. Show the exact tool, arguments and target, with the agent's reasoning collapsed by default, so the reviewer reads the action rather than the argument for it. Set a timeout with a default of deny, using heartbeats where the engine supports them, so nothing waits forever and nothing runs because a reviewer went on leave. And sample: pull a weekly set of approved actions for a second person to re-check, and treat a rising approval rate with a falling rejection rate as a fatigue signal.

AI approvers do not remove the problem. Copilot Studio's multistage approvals add AI stages that return approve or reject with a rationale (preview, ms.date 4 Sep 2025); Microsoft advises human stages for financial transactions, legal decisions and personnel actions, and an AI stage can return "Analysis failed" when its criteria conflict. AI stages can screen requests; a person gives the final approval.

How do Microsoft, AWS and Google implement it?

Human-in-the-loop controls on the three clouds, as seen 2 Nov 2026.

Capability, Microsoft, AWS, Google

CapabilityMicrosoftAWSGoogle
Pre-action approvalAgent Framework approval-required tools; Foundry MCP tool require_approvalBedrock Agents Classic user confirmation and return of control; AgentCore Policy for rule-decidable casesADK require_confirmation (experimental); human-input node in ADK 2.0 graph workflows
Conditional and multistageCopilot Studio multistage and AI approvals (preview)A condition in the state machine before a .waitForTaskToken callbackADK require_confirmation as a function
Out-of-band waitCopilot Studio request for information by Outlook; Agent Framework Durable Extension waitsStep Functions task token with HeartbeatSeconds; Lambda durable functions callbacksNot verified on 2 Nov 2026
Escalation to a personCopilot Studio hand off to a live agent with context variablesStrands handoff_to_userNot verified on 2 Nov 2026
Record of decisionsPower Automate Approvals History; Agent Framework binds responses to requestsCloudTrail and AgentCore Observability tracesAgent Observability (GA 18 Jun 2026)

Amazon A2I is closed to new customers, and Copilot Studio multistage and AI approvals were preview on 2 Nov 2026.

Frequently asked questions

Does human in the loop mean a person checks every action?

No. It means the actions that can move money, change a record of truth, reach a customer or cannot be undone pause for a named person, while read-only and low-risk actions run and are sampled afterwards. Gating every call produces approval fatigue, and an approval given without checking is no control.

Can an AI approve on behalf of a person?

It can screen. Copilot Studio multistage approvals add AI stages that return approve or reject with a rationale (preview), and Microsoft advises keeping human stages for financial transactions, legal decisions and personnel actions. An AI stage is a classifier with a log; the signature an auditor asks for stays human.

What happens when an approval request times out?

Whatever you configured, so configure deny. Step Functions waits up to a year unless HeartbeatSeconds is set, and Agent Framework durable orchestrations can wait for weeks. Set a timeout per tier, default to deny, notify the owner, and make sure the agent reports the task as blocked rather than done.

Is Amazon A2I still available for human review?

Not for new customers. AWS says SageMaker A2I is no longer open to new customers and will get no new features. On AWS, new designs use Step Functions callbacks for the wait, AgentCore Policy for cases a rule can decide, Bedrock Agents Classic user confirmation where that service is still in use, and a review interface of their own.

What does the EU AI Act require for human oversight of agents?

Article 14 requires high-risk systems to be designed so that overseers can understand the system's limits, interpret its output, decide not to use it or override it, and stop it, and to remain aware of automation bias. The tracker site shows application from 2 Dec 2027 for Annex III uses; confirm the date against the Official Journal. The governance topic covers the rest.

More in Orchestration and multi-agent systems

Multi-agent patternsRead
Workflows vs agentscoming
Long-running agentscoming

Sources

Each source was read on 2 November 2026. The date shown is the date on the page, or the page’s ms.date for Microsoft Learn; an undated page shows the date it was read.

  1. AI Red Teaming Agent (prohibited, high-risk and irreversible actions) Microsoft Learn, 19 August 2026
  2. Using function tools with human in the loop approvals (Agent Framework) Microsoft Learn, 22 October 2026
  3. Model Context Protocol tool in Foundry Agent Service Microsoft Learn, 28 October 2026
  4. Multistage and AI approvals in agent flows (Copilot Studio) Microsoft Learn, 4 September 2025
  5. Request for information in agent flows (Copilot Studio) Microsoft Learn, 18 June 2026
  6. Hand off to a live agent (Copilot Studio) Microsoft Learn, 30 April 2026
  7. Overreliance on AI: a framework Microsoft Learn, 27 February 2025
  8. User confirmation for actions (Bedrock Agents Classic) AWS documentation, undated page, read 2 November 2026
  9. Return control to the application (Bedrock Agents Classic) AWS documentation, undated page, read 2 November 2026
  10. Step Functions service integration patterns (wait for a callback) AWS documentation, undated page, read 2 November 2026
  11. Amazon SageMaker A2I human review loops AWS documentation, undated page, read 2 November 2026
  12. Amazon Bedrock AgentCore Policy now generally available AWS What's New, 3 March 2026
  13. LangGraph interrupts LangChain docs, undated page, read 2 November 2026
  14. Human in the loop (OpenAI Agents SDK) OpenAI, undated page, read 2 November 2026
  15. MCP elicitation (specification 2025-11-25) Model Context Protocol, 25 November 2025
  16. Tool confirmation (Google ADK) Google ADK docs, undated page, read 2 November 2026
  17. Asynchronous authorization (Auth0 for AI Agents) Auth0, undated page, read 2 November 2026
  18. Risks and mitigations for Copilot cloud agent GitHub Docs, undated page, read 2 November 2026
  19. How DKB runs its banking assistant with Langfuse Langfuse, 31 August 2026
  20. EU AI Act, Article 14: human oversight artificialintelligenceact.eu, undated page, read 2 November 2026. A secondary transcription of the article; application dates to be confirmed against EUR-Lex.

Planning an AI program?

Talk to the team that builds it and runs it after launch.

  • Built to SOC 2, HIPAA and GDPR standards
  • EU AI Act-aligned delivery
  • Microsoft Solutions Partner