The model's tools
The tools exposed to the model are exactly the tasks of the workflow engine. A task's input and output schema is a tool schema: the conversion is mechanical. A task contributed by a plugin becomes callable by the assistant without a single extra line of code.
API
| Call | Returns |
|---|---|
| K.tools.schemas() | The tasks converted to JSON Schema, ready to be offered to the model. |
| K.tools.tache(name) | The task matching a tool name, or null. |
| K.tools.appeler(name, args, ctx) | A promise. It never throws: errors come back inside the result. |
The notice field
The model reads a tool's description at the moment it decides whether to call it, not the system prompt as a whole. A usage instruction placed in the system prompt is frequently ignored; the same instruction inside notice is read at decision time.
Moving the instruction from the system prompt into notice markedly increased the tool-call rate in testing. When the instruction stays in the prompt, the model sometimes answers that it cannot perform an operation for which a tool exists.
What the model receives from a result
A tool's result is summarised before being passed on. The model receives the shape; the user sees the substance.
| Recipient | Content |
|---|---|
| The model | Row count, column names and types, statistics, twelve example rows. |
| The user | The full table on screen, sortable and exportable. |
The saving is roughly a factor of nine on tokens consumed. Without it, a single tool call on a slightly wide query would push the model out of its 32k window, and the beginning of the conversation would vanish without warning.
core.graphique
The plotting tool is the most used, and the most closely specified.
| Parameter | Values |
|---|---|
| type | bar, line, scatter, histogram |
| couleur | Continuous gradient on a numeric variable, for instance depth_m, using the OCEAN scale |
| erreurs | Uncertainty columns detected automatically |
| axes | Titles and units taken from the element's metadata |
Duplicate samples are aggregated automatically: one bar per sample, not one bar per analysis, with the 2SD of replicates as the error bar.
Exporting figures
Any figure produced by the assistant or by a workflow exports into the formats a journal expects.
| Format | Detail |
|---|---|
| PNG | 300 dpi, re-rendered rather than upscaled, white background, at journal column widths (90 mm and 180 mm). |
| SVG | A separate render. The fact that this is a second render, not a conversion, is stated explicitly. |
| CSV | UTF-8 BOM and semicolon separator, so it opens directly in Excel on a French-locale machine. |
| LaTeX | Formatted table, ready to drop into a manuscript. |
Document search
The assistant consults the sources declared in the Knowledge panel through a tool call, visible in the thread like any other. It reads nothing outside the enabled sources, and a source with a wrong path shows up as a zero counter rather than as an evasive answer from the model.
Inspecting workflows
The assistant can read the automation without touching it. Four read-only tasks let it answer questions about workflows and their runs: core.workflow_liste, core.workflow_detail, core.workflow_passages and core.workflow_simuler. It can say why a workflow failed overnight, or what a workflow would do; it cannot arm, run, or modify one.
Adding a tool from a plugin
No AI-specific API is needed. Declaring a task is enough: it appears in the workflow engine and in the model's tool list at the same moment.
What no tool does
- No kernel task deletes data.
- No tool exposes fetch, the disk, or direct database access.
- The model computes no statistic: they all go through core.resume or core.analyses.