What problem does it solve? Building production LangChain agents that call dangerous tools (like sending emails or deleting data) without human oversight is risky. This Skill provides patterns for pausing agent execution before sensitive tool calls, letting humans approve, edit, or reject actions before they run. ## Core Features & Use Cases - HumanInTheLoopMiddleware: Pause agent execution before specific tool calls and resume with approve, edit, or reject decisions via LangGraph Command objects. - Per-tool policies: Configure different approval rules per tool, such as requiring approval for delete operations while allowing read operations to run freely. - Custom middleware hooks: Intercept tool calls with before_model, after_model, wrap_tool_call, before_agent, and after_agent hooks for logging, error handling, and retries. - Use Case: An agent that sends emails on behalf of users pauses before each send, a human reviews and edits the recipient address, then resumes execution with the corrected arguments. ## Quick Start Add human approval to my LangChain agent so it pauses before calling the send_email tool and resumes after I approve the action.