GetUserChoiceTool
Built-in long-running tool that presents a list of options and pauses the invocation until the user picks one.
Like RequestInputTool it defers (returns Unit) and pauses until the caller injects a FunctionResponse with the choice. It also sets actions.skipSummarization = true so the pending turn is not summarized, matching Python ADK's get_user_choice.
Properties
The custom metadata of the tool.
The description of the tool.
Whether the tool's final result will be delivered out-of-band. When true, the framework marks the call as long-running and uses the tool's return value as the function-response payload. Returning Unit means "no response yet": the FR event is suppressed so the function-call event (which carries the call id in longRunningToolIds and is thus the turn's final response) ends the turn without re-invoking the model. A non-Unit return -- including an explicit empty Map -- is treated as a real response and emitted. (Unit suppression aligns with Python; Java instead always emits {}.) The longRunningToolIds id also drives the resumable-mode pause gate so the invocation can be resumed later via a user-injected function-response.