Middleware that provides an ask_user tool for interactive questioning.
This middleware adds an ask_user tool that allows agents to ask the user
questions during execution. Questions can be free-form text or multiple choice.
The tool uses LangGraph interrupts to pause execution and wait for user input.
AskUserMiddleware(
self,
*,
system_prompt: str = ASK_USER_SYSTEM_PROMPT,
tool_description: str = ASK_USER_TOOL_DESCRIPTION
)