> ## Documentation Index
> Fetch the complete documentation index at: https://www.adaline.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Tools

# Tools

Tool types for function calling with LLMs.

## ToolType

Tools allow LLMs to invoke external functions. Define tools with a name, description, and JSON Schema parameters.

```typescript theme={null}
const tools = [
  {
    type: "function",
    definition: {
      schema: {
        name: "get_weather",
        description: "Get the current weather for a location",
        parameters: {
          type: "object",
          properties: {
            location: {
              type: "string",
              description: "City name, e.g. San Francisco",
            },
            unit: {
              type: "string",
              enum: ["celsius", "fahrenheit"],
              description: "Temperature unit",
            },
          },
          required: ["location"],
        },
      },
    },
    handler: async (args) => {
      // Your function logic here
      return { temperature: 72, condition: "sunny" };
    },
  },
];
```

### Fields

**type** `string` *required*

The tool type. Currently only `"function"` is supported.

**definition** `object` *required*

**Properties**

**schema** `object` *required*

The function schema following JSON Schema format.

**Properties**

**name** `string` *required*

The function name. Must be a-z, A-Z, 0-9, underscores, or dashes.

**description** `string` *required*

A description of what the function does. Helps the model decide when to call it.

**parameters** `object` *required*

JSON Schema object describing the function parameters.

**handler** `function`

An async function that executes when the tool is called via `gateway.getToolResponses()`. Receives the parsed arguments and returns the result.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.