openclaw/docs/gateway/config-tools.md
Vincent Koc 008cf5d9b0
docs(gateway): split the tools configuration reference by domain (#142960)
docs/gateway/config-tools.md was 59,564 characters across two H2 topics
that mixed reference keys, a long explanation of the managed GitHub
identity, and how-to provider recipes. Split by reader job into
docs/gateway/config-tools/, keeping the parent as a short index.

Children:
- tool-policy — tool profiles, tool groups, the sandbox tool gate,
  tools.codeMode, and the allow/deny, byProvider, toolsBySender, and
  elevated layers (14,547 chars)
- github-identity — tools.github: the shared managed gh identity, token
  refresh, and the execution boundaries that receive it (10,641 chars)
- built-in-tools — tools.exec, tools.loopDetection, tools.web,
  tools.media, tools.updatePlan (6,254 chars)
- sessions-and-subagents — tools.agentToAgent, tools.sessions,
  tools.sessions_spawn, agents.defaults.subagents (7,033 chars)
- custom-providers — models.providers registration, base-URL trust, and
  the provider field reference (12,309 chars)
- provider-examples — worked configurations for nine providers
  (8,980 chars)

Anchor strategy: per-anchor routes are impossible here because
redirectSource() rejects any source containing [?#], so every id the
page published stays alive on the parent index as an authored
<a id="..." /> stub next to a link to its new home. parseDocsDocument
reports 58 ids before the split; 57 are stubbed and `related` is still
published by the index itself, so no duplicate authored/canonical ID is
raised. Backticked headings emit both a dotted and a dashed id
(tools.github and tools-github) and both are preserved, as is the
percent-encoded tools.allow-%2F-tools.deny, the pre-existing authored
toolsupdateplan stub, and the ten Accordion-minted ids. All 58 resolve
through resolveDocsFragment against the new index, and all 40
index-to-child fragment links resolve on their destination child.

Losslessness (source body vs. the six children, measured mechanically
against the base sha, not against a working copy): 54 fence markers
before and after with identical info strings; 47 table rows before and
after; all 12 original outbound links still present; each child's body
byte-identical to its source line range after H3-to-H2 promotion.
Two thematic breaks that separated the former H2 sections are dropped
because those sections are now separate pages, and the empty container
heading "## Tools" is not reproduced — its anchor is stubbed.

One prose change, the declared orphaned-cross-reference exception:
"See the llama.cpp example below" in the compat table pointed at a
section that now lives on another page, so it became a real link.
The other six directional references stayed within a single child and
were re-verified there.

taxonomy.yaml references this page without a fragment, so
validateTaxonomyDocsReferences still resolves it; maturity:check passes.
The eight qa/scenarios docsRefs and the two src/ docs URLs also target
the surviving route.

Closes audit findings: r3-0337, r3-1539
2026-09-09 17:24:29 +09:00

7.3 KiB

summary read_when title sidebarTitle
Tools config (policy, experimental toggles, provider-backed tools) and custom provider/base-URL setup
Configuring `tools.*` policy, allowlists, or experimental features
Registering custom providers or overriding base URLs
Setting up OpenAI-compatible self-hosted endpoints
Configuration — tools and custom providers Tools and custom providers

tools.* config keys and custom provider / base-URL setup. For agents, channels, and other top-level config keys, see Configuration reference.

What each page covers

Where each section moved

Every heading this page used to publish keeps its anchor here, so an existing link such as /gateway/config-tools#tools-agenttoagent still resolves. Each entry points at the page that now holds the content.