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

# Tools

> Connect Perceptron Mk1.5 to your application's data and functions.

Perceptron Mk1.5 can request functions that you define. Give the model descriptions and parameter schemas, then let it choose which functions to call while answering a question. Your application executes the calls and sends the results back so the model can continue.

Use tools to connect visual understanding to information outside the supplied images or videos: look up a product identified in an image, retrieve an inspection record, or search your own document collection.

## How tool calling works

1. Send a question and function definitions to `/v1/chat/completions`.
2. The model returns `tool_calls` with function names, argument strings, and call IDs.
3. Your application validates and executes each call.
4. Send the assistant message and a `role: "tool"` result for every call back to the model.
5. Repeat until the model returns its answer or your application reaches its budget.

One response can request several functions. Each result is paired with its call through `tool_call_id`, so independent functions can run concurrently.

<Note>
  The public API returns function requests. Your application provides the implementations, credentials, and execution. Naming a function `search` does not enable a hosted search service.
</Note>

## Choose the right output

| Goal                                               | Use                                                                      |
| -------------------------------------------------- | ------------------------------------------------------------------------ |
| Look up data or perform an application action      | Function tools and an application execution loop                         |
| Get a final answer matching a JSON Schema or regex | [Structured outputs](/perceptron-mk1.5/capabilities/structured-outputs)  |
| Locate objects or follow them through a video      | [Spatial annotations and tracks](/perceptron-mk1.5/concepts/annotations) |

Function parameter schemas describe the expected arguments; they do not constrain decoding. Validate names and arguments before execution, even if a function declares `strict: true`. Tools cannot be combined with JSON-schema output or regex in the same request; the Perceptron SDK rejects this combination before sending it.

## Build a tool workflow

<CardGroup cols={2}>
  <Card title="Call a function" icon="code" href="/perceptron-mk1.5/guides/tool-calling">
    Run a complete Python example, handle streaming calls, and learn the supported controls.
  </Card>

  <Card title="Build a tool agent" icon="arrows-rotate" href="/perceptron-mk1.5/guides/tool-agents">
    Add execution budgets, return images, and combine retrieval with visual reasoning.
  </Card>
</CardGroup>

For the model ID and capabilities, see [Perceptron Mk1.5](/perceptron-mk1.5/models/perceptron-mk1.5). Applications selecting models programmatically can request `GET /v1/models?extended=true` and check for `tool_calling` in the model's `capabilities` array.
