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, plus custom middleware hooks for logging, retries, and error handling. ## Core Features & Use Cases - HumanInTheLoopMiddleware: Pause before dangerous tool calls with per-tool policies controlling allowed decisions (approve, edit, reject) in both Python and TypeScript. - Command Resume Patterns: Continue agent execution after human decisions, including editing tool arguments and rejecting calls with feedback. - Custom Middleware Hooks: Intercept tool calls with before_model, after_model, wrap_tool_call, before_agent, and after_agent hooks for logging, retry logic, and error handling. - Use Case: An agent that sends emails on behalf of users pauses before each send, shows the draft to a human who can edit the recipient address, then resumes execution with the corrected arguments. ## Quick Start Ask the AI to add human-in-the-loop approval to your LangChain agent so it pauses before calling a specific tool and resumes after approval.