> ## Documentation Index
> Fetch the complete documentation index at: https://docs.agno.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Human In The Loop

> Browse agent examples for confirmation, user input, external execution, and approval-backed HITL.

| Example                                                                                                                  | Description                                                                                                                                          |
| ------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Agentic User Input](/examples/agents/human-in-the-loop/agentic-user-input)                                              | Let the agent request missing fields at runtime with UserControlFlowTools, then continue the run.                                                    |
| [Confirmation Advanced](/examples/agents/human-in-the-loop/confirmation-advanced)                                        | Confirm or reject tool calls across a custom HackerNews tool and WikipediaTools in one run.                                                          |
| [Confirmation Required](/examples/agents/human-in-the-loop/confirmation-required)                                        | Gate a custom HackerNews tool behind requires\_confirmation and resume the paused run with agent.continue\_run().                                    |
| [Confirmation Required MCP Toolkit](/examples/agents/human-in-the-loop/confirmation-required-mcp-toolkit)                | Require confirmation for an MCP server tool and resume an async streamed run after approval.                                                         |
| [Confirmation Toolkit](/examples/agents/human-in-the-loop/confirmation-toolkit)                                          | Gate a toolkit's web\_search tool behind user confirmation with requires\_confirmation\_tools.                                                       |
| [External Tool Execution](/examples/agents/human-in-the-loop/external-tool-execution)                                    | Pause the run for a shell tool marked external\_execution, execute it yourself, and continue with the result.                                        |
| [User Input Required](/examples/agents/human-in-the-loop/user-input-required)                                            | Mark a tool with requires\_user\_input so the run pauses to collect the to\_address field.                                                           |
| [Approval Async](/examples/agents/approvals/approval-async)                                                              | Async approval-backed HITL: @approval with async agent run.                                                                                          |
| [Approval Basic](/examples/agents/approvals/approval-basic)                                                              | Approval-backed HITL: @approval + `@tool(requires_confirmation=True)` with persistent DB record.                                                     |
| [Approval External Execution](/examples/agents/approvals/approval-external-execution)                                    | Approval + external execution HITL: @approval + `@tool(external_execution=True)`.                                                                    |
| [Approval List And Resolve](/examples/agents/approvals/approval-list-and-resolve)                                        | Full approval lifecycle: pause, list, filter, resolve, delete.                                                                                       |
| [Approval Team](/examples/agents/approvals/approval-team)                                                                | Team-level approval: member agent tool with @approval.                                                                                               |
| [Approval User Input](/examples/agents/approvals/approval-user-input)                                                    | Approval + user input HITL: @approval + `@tool(requires_user_input=True)`.                                                                           |
| [Audit Approval Async](/examples/agents/approvals/audit-approval-async)                                                  | Async audit approval: `@approval(type="audit")` + `@tool(requires_confirmation=True)` with async.                                                    |
| [Audit Approval Confirmation](/examples/agents/approvals/audit-approval-confirmation)                                    | Audit approval with confirmation: `@approval(type="audit")` + `@tool(requires_confirmation=True)`.                                                   |
| [Audit Approval External](/examples/agents/approvals/audit-approval-external)                                            | Audit approval with external execution: `@approval(type="audit")` + `@tool(external_execution=True)`.                                                |
| [Audit Approval Overview](/examples/agents/approvals/audit-approval-overview)                                            | Compare pre-execution @approval records with audit-type approvals logged after the tool runs in SQLite.                                              |
| [Audit Approval User Input](/examples/agents/approvals/audit-approval-user-input)                                        | Audit approval with user input: `@approval(type="audit")` + `@tool(requires_user_input=True)`.                                                       |
| [Confirmation with Session State](/examples/agents/human-in-the-loop/confirmation-with-session-state)                    | HITL confirmation where the tool modifies session\_state before pausing.                                                                             |
| [Mixed External and Regular Tools](/examples/agents/human-in-the-loop/mixed-external-and-regular-tools)                  | Combine a regular tool with an external\_execution tool; the agent auto-runs one and pauses for the other.                                           |
| [User Feedback (Structured Questions)](/examples/agents/human-in-the-loop/user-feedback)                                 | Pause a trip-planning agent with UserFeedbackTools and collect answers to multiple-choice questions.                                                 |
| [Approval Post Hook](/examples/agents/approvals/approval-post-hook)                                                      | Demonstrates the post-hook reading the resolved approval record from run\_output.metadata\["approval"] after a paused run resumes via DB resolution. |
| [Deterministic approval flow for a side-effecting tool](/examples/agents/human-in-the-loop/side-effecting-tool-approval) | This example uses a local mock model, so it runs without provider credentials.                                                                       |
| [Place persistent approval tools on a team leader or member](/examples/agent-os/human-in-the-loop/team-approval)         | AgentOS propagates approval pauses differently depending on where the tool lives.                                                                    |
