OptionalblockingConfiguration for blocking tools (HITL). Only applicable when executionMode is 'blocking'.
A clear description of what the tool does, intended for the LLM to understand its purpose and usage.
OptionaldisplayConfiguration for display tools (Generative UI). Only applicable when executionMode is 'display'.
OptionalexamplesOptional array of examples demonstrating how to use the tool, useful for few-shot prompting of the LLM.
OptionalexecutionDefines the execution mode (category) of the tool.
Tools are categorized into three modes with different framework handling:
functional (default, also 'immediate' for backward compat): Regular tools that
execute synchronously and return results immediately.
blocking: HITL tools that require human input to complete. They return 'suspended'
status initially. When user provides feedback, the framework programmatically
completes the tool with the feedback as output - no re-execution needed.
display: Generative UI tools that render visual content. They complete immediately
but their output is meant for rendering rather than LLM consumption.
A JSON Schema object defining the structure, types, and requirements of the input arguments the tool expects.
A unique name identifying the tool (used in LLM prompts and registry lookups). Must be unique.
OptionaloutputAn optional JSON Schema object defining the expected structure of the data returned in the output field of a successful ToolResult.
Defines the schema for a tool, including its input parameters. Uses JSON Schema format for inputSchema.
ToolSchema