- Home
- AI agents
- Orchestration and multi-agent systems
- 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
- Gate by risk tier. Safe read-only tools run, writes above a threshold pause, prohibited actions never run.
- 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).
- 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.
- 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.
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.
| Pattern | What happens | Where it ships |
|---|---|---|
| Pre-action approval | A 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 reject | Microsoft 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 approval | Ask only when a condition holds: an amount above a limit, a low-confidence result | ADK require_confirmation as a function; OpenAI needs_approval as a per-call function; Copilot Studio multistage approvals with conditions between stages (preview) |
| Return of control | The agent hands the proposed call back to your application, which runs it or not | Bedrock Agents Classic RETURN_CONTROL with an invocationId, including from collaborator agents |
| Request for information | The agent asks a person for missing input mid-task | Copilot Studio request for information (Outlook actionable message, first response wins); MCP elicitation in form or URL mode (spec 2025-11-25) |
| Out-of-band approval | The approver is away from the chat and answers on another channel; the run suspends | Step Functions .waitForTaskToken with HeartbeatSeconds; Lambda durable functions callbacks; Auth0 asynchronous authorization (CIBA push) |
| Escalation to a person | The conversation and its context transfer to a human agent | Copilot Studio hand off to a live agent (session marked Escalated); Customer Conversation harness sub-agents; Strands handoff_to_user |
| Four-eyes | Two different people, or a separate requester and approver | Copilot 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 review | Low-risk actions run; a person reviews a sample or the flagged ones | Annotation 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
| Capability | Microsoft | AWS | |
|---|---|---|---|
| Pre-action approval | Agent Framework approval-required tools; Foundry MCP tool require_approval | Bedrock Agents Classic user confirmation and return of control; AgentCore Policy for rule-decidable cases | ADK require_confirmation (experimental); human-input node in ADK 2.0 graph workflows |
| Conditional and multistage | Copilot Studio multistage and AI approvals (preview) | A condition in the state machine before a .waitForTaskToken callback | ADK require_confirmation as a function |
| Out-of-band wait | Copilot Studio request for information by Outlook; Agent Framework Durable Extension waits | Step Functions task token with HeartbeatSeconds; Lambda durable functions callbacks | Not verified on 2 Nov 2026 |
| Escalation to a person | Copilot Studio hand off to a live agent with context variables | Strands handoff_to_user | Not verified on 2 Nov 2026 |
| Record of decisions | Power Automate Approvals History; Agent Framework binds responses to requests | CloudTrail and AgentCore Observability traces | Agent 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
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.
- AI Red Teaming Agent (prohibited, high-risk and irreversible actions)
- Using function tools with human in the loop approvals (Agent Framework)
- Model Context Protocol tool in Foundry Agent Service
- Multistage and AI approvals in agent flows (Copilot Studio)
- Request for information in agent flows (Copilot Studio)
- Hand off to a live agent (Copilot Studio)
- Overreliance on AI: a framework
- User confirmation for actions (Bedrock Agents Classic)
- Return control to the application (Bedrock Agents Classic)
- Step Functions service integration patterns (wait for a callback)
- Amazon SageMaker A2I human review loops
- Amazon Bedrock AgentCore Policy now generally available
- LangGraph interrupts
- Human in the loop (OpenAI Agents SDK)
- MCP elicitation (specification 2025-11-25)
- Tool confirmation (Google ADK)
- Asynchronous authorization (Auth0 for AI Agents)
- Risks and mitigations for Copilot cloud agent
- How DKB runs its banking assistant with Langfuse
- EU AI Act, Article 14: human oversight
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