ART Framework API Docs
    Preparing search index...

    Interface ToolSchema

    Defines the schema for a tool, including its input parameters. Uses JSON Schema format for inputSchema.

    ToolSchema

    interface ToolSchema {
        blockingConfig?: BlockingToolConfig;
        description: string;
        displayConfig?: DisplayToolConfig;
        examples?: { description?: string; input: any; output?: any }[];
        executionMode?: "functional" | "blocking" | "display" | "immediate";
        inputSchema: JsonSchema;
        name: string;
        outputSchema?: JsonSchema;
    }
    Index

    Properties

    blockingConfig?: BlockingToolConfig

    Configuration for blocking tools (HITL). Only applicable when executionMode is 'blocking'.

    description: string

    A clear description of what the tool does, intended for the LLM to understand its purpose and usage.

    displayConfig?: DisplayToolConfig

    Configuration for display tools (Generative UI). Only applicable when executionMode is 'display'.

    examples?: { description?: string; input: any; output?: any }[]

    Optional array of examples demonstrating how to use the tool, useful for few-shot prompting of the LLM.

    executionMode?: "functional" | "blocking" | "display" | "immediate"

    Defines 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.

    inputSchema: JsonSchema

    A JSON Schema object defining the structure, types, and requirements of the input arguments the tool expects.

    name: string

    A unique name identifying the tool (used in LLM prompts and registry lookups). Must be unique.

    outputSchema?: JsonSchema

    An optional JSON Schema object defining the expected structure of the data returned in the output field of a successful ToolResult.