Tools

Tool Definitions

Define assistant tools, compose toolkits, and expose callable app capabilities to assistant-ui runtimes.

API Reference

makeAssistantTool

type AssistantToolProps = CoreAssistantToolProps<TArgs, TResult> & {
  render?: ToolCallMessagePartComponent<TArgs, TResult> | undefined;
};

const makeAssistantTool: <TArgs extends Record<string, unknown>, TResult>(tool: AssistantToolProps<TArgs, TResult>) => AssistantTool;

tool

tool
tool: Tool<TArgs, TResult>

streamCalldeprecated?: ToolStreamCallFunction<TArgs, TResult>

Deprecated: Experimental, API may change.

type?: "frontend"

description?: string

parameters?: StandardSchemaV1<TArgs> | JSONSchema7

disabled?: boolean

execute?: ToolExecuteFunction<TArgs, TResult>

toModelOutput?: ToolModelOutputFunction<TArgs, TResult>

experimental_onSchemaValidationError?: OnSchemaValidationErrorFunction<TResult>

ToolDefinition

ToolDefinition
streamCalldeprecated?: ToolStreamCallFunction<TArgs, TResult>

Deprecated: Experimental, API may change.

type?: "frontend"

description?: string

parameters?: StandardSchemaV1<TArgs> | JSONSchema7

disabled?: boolean

execute?: ToolExecuteFunction<TArgs, TResult>

toModelOutput?: ToolModelOutputFunction<TArgs, TResult>

experimental_onSchemaValidationError?: OnSchemaValidationErrorFunction<TResult>

render?: ToolCallMessagePartComponent<TArgs, TResult>

Toolkit

type Toolkit = Record<string, ToolDefinition<any, any>>;

Tools

Tools props
toolkit?: Toolkit

useAssistantTool

useAssistantTool
tool: AssistantToolProps<TArgs, TResult>

streamCalldeprecated?: ToolStreamCallFunction<TArgs, TResult>

Deprecated: Experimental, API may change.

type?: "frontend"

description?: string

parameters?: StandardSchemaV1<TArgs> | JSONSchema7

disabled?: boolean

execute?: ToolExecuteFunction<TArgs, TResult>

toModelOutput?: ToolModelOutputFunction<TArgs, TResult>

experimental_onSchemaValidationError?: OnSchemaValidationErrorFunction<TResult>

toolName: string

render?: unknown