Managing enabled tools and groups
Managing tools
The AI > Operation > Tools module lists every registered tool
with its global enable state and lets an admin toggle it. A disabled tool
is refused on every run, everywhere — the runtime gate is fail-closed, so a
disabled tool can never be offered to the model regardless of a skill's
allowed- or the per-run selection in the playground. Some built-in
tools (for example get_ and get_) ship disabled
by default because they return unredacted, secret-bearing output; enable
them only deliberately.
An imported tool whose name is already registered is dropped; the existing tool keeps its name. A failing tool provider retains the rows it supplied before the failure, and healthy providers remain available. Optional logging failures do not change either outcome.
A tool that is refused never reaches the model, so by itself the model cannot
tell it from a tool that does not exist. An extension that runs a chat can ask
Netresearch for
the tools one configuration and one backend user will NOT be offered, each
with the gate that holds it back — tool, requires,
configuration, configuration or trust — and pass
that to the model, which
can then say "there is a tool for that, it is not enabled for you"
(ADR-201). A builtin tool the trust-zone gate only
observes is offered, and is not in that list; a remote (MCP) tool is always
enforced by that gate, so above the ceiling it is listed in either mode.
Remote tools are listed for administrators only.
The Tools module — each registered tool with its global enable state and a
toggle. The _raw variants show as Disabled, the redacted
tools as Enabled; the Default badge marks a tool
sitting at its shipped state.
A tool that carries an editor action declaration
(ADR-152) reads differently in that list: it shows an icon,
its translated name, one sentence written for a human, and the record types it
addresses — instead of the wire name and the description written for the
language model. Ten of the twenty-three writing tools declare one —
create_ has no subject record and declares none
(ADR-197), attach_ declares none for the
same reason (ADR-212), and the six of
ADR-198 and set_
(ADR-230) and the four site tools of ADR-257
are reached through the assistant only — and the wire name stays
visible as the technical detail the toggle acts on. A read-only tool is
unchanged.
The declaration is presentation only. It does not decide whether a tool writes — that is the tool's declared effect — and it changes nothing about how a call is fenced, approved or audited.
A declaration that throws leaves its row under the wire name and preserves healthy declarations beside it. Failure to deliver its optional warning also preserves module rendering and the tool's availability (ADR-152).
Tool groups
Every tool belongs to a group (its get value). The built-in
groups carry a translated name in the module header beside their identifier; a
group a third-party extension brings has no translated name and shows its
identifier alone. The built-in taxonomy:
| Group | Tools |
|---|---|
content | search_, get_, read_,
get_, ask_,
highlight_ |
structure | get_, get_, read_,
get_, get_, get_,
resolve_, validate_ |
system | get_ (+ raw), get_ (+ raw),
fetch_, probe_, list_,
list_, get_,
list_, list_ |
accounts | list_ (+ raw), list_ |
configuration | get_, get_, fluid_,
check_, get_,
load_, list_ |
code | get_, read_, search_ |
files | list_, browse_,
search_, get_,
find_ |
rag | site_, site_ |
web | fetch_ — the only group that reaches hosts
outside the installation |
editing | update_, set_,
set_, update_,
set_, attach_,
attach_, move_,
create_, create_,
create_, create_,
update_, publish_,
delete_, copy_, move_,
replace_,
set_,
create_, update_,
disable_, clear_
— the only WRITING group |
load_ loads an approved skill into an agent run's system message
(ADR-214). It is offered only to a run whose configuration has skills attached
as loaded on demand and at least one of them is an approved instruction; its
description lists those skills by uid, name and description. The skill
allow-list and the configuration's allowed tool groups do not restrict it, so
a skill declaring allowed- does not switch it off; the global tool
state and the trust zone do. Loading a skill grants no tools. It does not
require admin: a non-admin backend user's run may load a skill, because the
text it adds is an approved version an administrator vouched for, attached
to the configuration, and it widens nothing the user may do. In a run that
invokes a process skill the exemption does not hold; there the process
skill's approved declaration decides whether load_ is offered.
Groups can be switched on three levels, and the result cascades fail-closed — a tool is offered only when every level permits it:
- Centrally in the Tools module: each group header carries an Enable/Disable group toggle. A disabled group refuses all of its tools — including same-group tools installed later — and a per-tool override can not re-enable a tool inside a disabled group (predictable, fail-closed). Per-tool toggles keep working but take effect only once the group is enabled again.
- Per configuration: the Allowed tool groups field on an
LLM configuration restricts agent runs with that configuration to tools of
the selected groups (empty = all groups). This intersects with a skill's
allowed-declaration.tools - Per run in the playground: the tool checkboxes are grouped, and each group checkbox (de)selects its children.
Below the group level, a configuration can also exclude single tools — see Excluding single tools per configuration.
Third-party extensions declare their own group per tool; the recommended value is the extension key, so an admin can disable an extension's whole tool family with one toggle. The design is recorded in ADR-043.
Excluding single tools per configuration
The Excluded tools field on an LLM configuration (tab
Access Control, below Allowed tool groups) withholds single
tools from agent runs with that configuration. A configuration that may use
every tool of editing except delete_ keeps the group and excludes
that one tool. The field lists the registered tools by group; a name stored
earlier whose tool is no longer registered appears under No longer
registered and can be removed there.
An exclusion only narrows. It applies on top of the global state, the allowed
tool groups, a skill's allowed- and the trust zone, and can never
enable a tool any of them refuses. It also applies to load_, which the
skill allow-list and the group gate leave alone.
- An excluded tool is not offered to the model. A call the model sends anyway is refused when it is executed.
- Other configurations are not affected: they keep the tool.
- A tool registered later is not excluded until it is selected here.
- A run that waits in the queue, for an approval or for input is continued against the exclusions it started under together with the ones that apply when it resumes. An exclusion added meanwhile takes the tool away; one removed meanwhile does not give it back to that run.
The tools a configuration excludes are shown in two places: the Tools module
names, under each tool, the active configurations that exclude it, and the
Governance tab of AI > Overview lists the excluded
tools per active configuration. The list of tools not offered to a chat
(above) reports such a tool with the
reason configuration. The design is recorded in
ADR-261.