class RubyLLM::Question

A question a tool call waits on until a person answers it: the approval a tool declared with Tool.requires_approval asks before it runs, a question the tool asks itself with Tool#ask, or one an MCP server asks while it works on the call. Chat#pending_questions returns the questions a chat waits on.

question = chat.pending_questions.first
question.message               # => "Window or aisle?"
question.fields.first.choices  # => ["window", "aisle"]
question.answer "window"
chat.complete

An approval asks whether its call may run, so it is answered yes or no:

question.approval?      # => true
question.tool_call.name # => "issue_refund"
question.approve        # or question.decline("Not on this account")

A server can also ask the person to visit a page, such as to connect an account: url? is true, and answering says they agreed to go. Before a server’s question reaches the chat, MCP.before_input_request callbacks can answer it.