Tools

Tools are built-in capabilities the platform exposes to chat completions. The model can invoke them like any other tool, and the platform handles the execution, the formatting of the results, and the audit trail.

Tools vs. Firewalls

Tools are invoked by the model during the completion (tool calling). Firewalls are a separate mechanism: they are applied before the completion, can rewrite or block the prompt, and never produce a tool call. Both are available on every chat backend.

Compatibility

The same set of tools is available on every chat backend. Pick the backend that fits the workload and enable the tools you need at request time.

BackendTools available
Compute (chat instances)web search, open, find, vector database search
Public Modelsweb search, open, find, vector database search
Smart Balancer routesweb search, open, find, vector database search

The execution happens inside the inference plane, so the model does not need to know which backend it is running on. The tool definitions look identical to the model regardless of source.

Available tools

The current set of tools. Each one is a flat descriptor on the tools array of a chat completion; the type field tells the platform which tool it is. The browser, search, and find tools are re-exposed to the model as standard function tools during the completion; the vector database tool is executed by the platform before the model is called.

Web search

search

Searches the public web and returns the formatted results. The platform injects a function tool definition with `query` (required), `topn`, and `source` parameters; the model invokes it during the completion and the platform executes the search.

FieldRequiredTypeDetail
(none)noJust pass {"type":"search"}. The platform injects the function signature for the model.

Open

open

Opens a URL or scrolls within the most recently opened page. Passed flat to the API and re-exposed to the model as a function tool with the same fields.

FieldRequiredTypeDetail
idnostring | numberLink id from a result page, or a fully qualified URL
cursornonumberPage reference; defaults to the most recent page
locnonumberLine number to position the viewport
num_linesnonumberNumber of lines to show
view_sourcenobooleanRender the page source instead of the rendered HTML

Find

find

Finds exact matches of a pattern in the current page. Passed flat to the API and re-exposed to the model as a function tool.

FieldRequiredTypeDetail
patternnostringText to find in the page
cursornonumberPage reference; defaults to the most recent page

Vector database search

flexible_vector_database_search

Semantic search over a private Vector Database. The platform executes the search itself before the model is called and feeds the hits back as context — the model never sees the tool call.

FieldRequiredTypeDetail
vector_databaseyesstringSlug of the database
queryyesstringSearch query
top_knonumberNumber of hits to return

Request shape

Tools go in the standard tools field of a chat completion, alongside any user-defined function tools you want to register. The type field tells the platform which kind of tool each entry is.

request.json
1{
2  "model": "public:deepseek-v3.2",
3  "messages": [
4    { "role": "user", "content": "What's our refund policy?" }
5  ],
6  "tools": [
7    { "type": "search" },
8    {
9      "type": "flexible_vector_database_search",
10      "vector_database": "support-kb",
11      "query": "refund policy",
12      "top_k": 5
13    },
14    {
15      "type": "function",
16      "function": {
17        "name": "open_ticket",
18        "description": "Open a support ticket in the CRM",
19        "parameters": {
20          "type": "object",
21          "properties": {
22            "subject": { "type": "string" },
23            "body": { "type": "string" }
24          },
25          "required": ["subject"]
26        }
27      }
28    }
29  ]
30}

A tool whose type matches a built-in (one of search, open, find, flexible_vector_database_search) is handled by the platform. A tool with type: "function" is a user-defined tool that is passed through to the model unchanged. You can mix the two in the same request.

Limitations

  • Chat workloads only: tools are available on chat completions. Embeddings and other workloads do not expose them.
  • No tool result persistence: the platform executes each tool call inline; results are not cached across requests.
  • One vector database per call: eachflexible_vector_database_search tool targets a single database. To search across multiple databases, register one tool descriptor per database in the same tools array.

Where to go next