# Tool Definitions
URL: /docs/api-reference/tools/definition

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

{/* AUTO-GENERATED PAGE by scripts/generate-api-reference.mts */}

{/* Do not edit manually. */}

{/* api-reference:start */}

{/* AUTO-GENERATED by scripts/generate-api-reference.mts */}

{/* Do not edit this block manually. */}

## API Reference \[#api-reference]

### makeAssistantTool \[#makeassistanttool]

```ts
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]

<ParametersTable />

### ToolDefinition \[#tooldefinition]

<ParametersTable />

### Toolkit \[#toolkit]

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

### Tools \[#tools]

<ParametersTable />

### useAssistantTool \[#useassistanttool]

<ParametersTable />

{/* api-reference:end */}
