---
title: "Running tools"
manual: "LLM Foundation"
version: "0.44"
permalink: "https://docs.typo3.org/permalink/netresearch/nr-llm:administration-tools@0.44"
source: "Administration/Tools.rst"
rendered: "2026-11-12T17:35:48+00:00"
---

# Running tools {#administration-tools}

*Tools* are small, admin-curated PHP functions the model may call
mid-generation. Where a normal completion answers in one shot, a **tool run**
is a bounded *agent loop*: the model may ask to call a tool, nr-llm executes
it, feeds the result back, and re-asks — until the model answers or an
iteration cap is reached. The interactive
[Tool Playground](https://docs.typo3.org/permalink/netresearch/nr-llm:administration-tools-playground@0.44) is one consumer.
Editor actions and prepared tasks can also use the managed runtime under
their grants and configuration policy.

The playground and tool management are **admin-only**. Tool execution uses
the acting user stored in the run context, including in workers.
`ToolLoopService` excludes tools whose `requiresAdmin()` returns
`true` for non-admins. Tools that read or write user-scoped records must
also enforce that user's page, table and storage permissions inside
`execute()`. Missing user context fails closed. Provider-facing result
text leaves the installation; backend-only artifacts need the same
redaction even though they are not sent to the model.

> [!NOTE]
> The runtime design and its security and cost rationale are recorded in
> [ADR-038](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-038@0.44). Skill ingest and injection — which can steer
> *which* tools a run may use and *what arguments* the model chooses — are
> [ADR-035](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-035@0.44) / [ADR-036](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-036@0.44) and the
> [Managing skills](https://docs.typo3.org/permalink/netresearch/nr-llm:administration-skills@0.44) guide.

## Arguments that do not fit {#administration-tools-argument-check}

Before anything of a turn runs, nr-llm checks the arguments of each call
against the schema the tool was offered with ([ADR-246](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-246@0.44)). A
call that does not fit is answered with what does not fit, for example
`"uid" is required.` or `"table" must be one of: "pages", "tt_content".`,
and the model corrects it in the next round. Nothing of that turn runs: no
tool, no approval card, no question to the editor, and no external tool call
is charged to the run's budget. A fitting call beside a refused one is
answered with "Not run" and is sent again with the corrected call.

The check refuses a missing required argument, a value of the wrong kind (a
list where text is declared, an object where a list is declared), a value
outside an `enum`, and an argument the schema excludes with
`additionalProperties: false`. It lets through what a tool commonly reads
after a cast, such as the text `"5"` for an integer, and it does not judge a
schema part that uses `$ref`, `oneOf`, `anyOf`, `allOf` or `not`,
which MCP servers may send. The run timeline shows a refused call as a failed
tool step whose answer starts with `Refused: the arguments do not match`.

Choose the task below. Editors use [What editors see](https://docs.typo3.org/permalink/netresearch/nr-llm:administration-tools-editor-actions@0.44);
administrators enable tools and groups before they are offered. The
[Tool extension API](https://docs.typo3.org/permalink/netresearch/nr-llm:api-tool-extensions@0.44) is the developer contract for new PHP tools.

-   [Managing enabled tools and groups](https://docs.typo3.org/permalink/netresearch/nr-llm:managing-enabled-tools-and-groups@0.44)
-   [Editor action catalogue and batches](https://docs.typo3.org/permalink/netresearch/nr-llm:editor-action-catalogue-and-batches@0.44)
-   [Using the Tool Playground](https://docs.typo3.org/permalink/netresearch/nr-llm:using-the-tool-playground@0.44)
-   [Tools, languages and workspaces](https://docs.typo3.org/permalink/netresearch/nr-llm:tools-languages-and-workspaces@0.44)
-   [Read and interaction tool catalogue](https://docs.typo3.org/permalink/netresearch/nr-llm:read-and-interaction-tool-catalogue@0.44)
-   [Write-tool authorization and previews](https://docs.typo3.org/permalink/netresearch/nr-llm:write-tool-authorization-and-previews@0.44)
-   [Redirects and cache tools](https://docs.typo3.org/permalink/netresearch/nr-llm:redirects-and-cache-tools@0.44)
-   [Tool network policy and external pages](https://docs.typo3.org/permalink/netresearch/nr-llm:tool-network-policy-and-external-pages@0.44)
-   [Skill tool grants](https://docs.typo3.org/permalink/netresearch/nr-llm:skill-tool-grants@0.44)
-   [Registering tools](https://docs.typo3.org/permalink/netresearch/nr-llm:registering-tools@0.44)
