Interrupt agent built with native create_agent + HumanInTheLoopMiddleware (tool approval).
Before the agent runs a sensitive tool (here send_email), HumanInTheLoopMiddleware pauses and
surfaces the pending call for human approval. The toolkit’s service resumes it through the normal
interrupt flow — reply approve to run the tool, reject: <reason> to decline, or any other text
to send guidance back to the model (the executor maps the reply to a HITL decision; see
agent_executor.build_resume_command).
Contrast with blueprints/interrupt_agent — a hand-built StateGraph using raw interrupt().
This one gets human-in-the-loop purely by composing a middleware onto create_agent.