tools.toolSearch.
Wanneer dit is ingeschakeld voor OpenClaw-runs, ontvangt het model standaard één tool_search_code-tool.
Die tool voert een korte JavaScript-body uit in een geïsoleerd Node-subproces
met een openclaw.tools-bridge:
Hoe een beurt wordt uitgevoerd
Tijdens de planning bouwt de ingesloten OpenClaw-runner de effectieve catalogus voor de run:- Los het actieve toolbeleid op voor de agent, het profiel, de sandbox en de sessie.
- Geef geschikte OpenClaw- en Plugin-tools weer.
- Geef geschikte MCP-tools weer via de MCP-runtime van de sessie.
- Voeg geschikte clienttools toe die voor de huidige run zijn geleverd.
- Indexeer compacte descriptoren voor zoeken.
- Stel de OpenClaw-codebridge, de gestructureerde fallbacktools of het compacte directoryoppervlak beschikbaar aan het model.
openclaw.tools.call(...) gaat over de bridge terug naar de Gateway, waar het
normale beleid, goedkeuring, hooks, logging en resultaatverwerking nog steeds van toepassing zijn.
Modi
tools.toolSearch heeft drie modelgerichte modi:
code: stelttool_search_codebeschikbaar, de standaard compacte JavaScript-bridge.tools: stelttool_search,tool_describeentool_callbeschikbaar als gewone gestructureerde tools voor providers die geen code moeten ontvangen.directory: stelttool_search,tool_describeentool_callbeschikbaar plus een begrensde promptdirectory met beschikbare toolnamen en beschrijvingen voor providers die toolnamen moeten zien zonder elk volledig schema. OpenClaw kan ook een kleine begrensde set waarschijnlijke of vereiste toolschema’s direct voor de huidige beurt beschikbaar stellen.
code-modus terug op tools vóór cataloguscompactie.
In directory-modus blijven door de client geleverde tools direct zichtbaar
voor de huidige run, terwijl OpenClaw-tools, Plugin-tools en MCP-tools achter
de directorycatalogus kunnen worden gecompacteerd. Een directe aanroep naar een exacte verborgen
directorynaam wordt vóór uitvoering vanuit dezelfde geautoriseerde catalogus gehydrateerd.
Alle modi zijn experimenteel. Geef de voorkeur aan directe toolblootstelling voor kleine OpenClaw-toolcatalogi,
en geef de voorkeur aan de Codex-native stabiele oppervlakken voor Codex-harnessruns.
Er is geen aparte configuratie voor bronselectie. Wanneer de toolzoekfunctie is ingeschakeld, bevat de
catalogus geschikte OpenClaw-, MCP- en clienttools na normale beleidsfiltering.
Waarom dit bestaat
Grote catalogi zijn nuttig maar duur. Elk toolschema naar het model sturen maakt de aanvraag groter, vertraagt de planning en verhoogt de kans op onbedoelde toolselectie. De toolzoekfunctie verandert de vorm:- directe tools: het model ziet elk geselecteerd schema vóór het eerste token
- code mode van de toolzoekfunctie: het model ziet één compacte codetool en een korte API-contract
- tools-modus van de toolzoekfunctie: het model ziet drie compacte gestructureerde fallbacktools
- directorymodus van de toolzoekfunctie: het model ziet een begrensde directory plus zoek-/beschrijf-/aanroepbediening en een kleine begrensde set waarschijnlijke of vereiste schema’s
- tijdens de beurt: het model kan resterende schema’s laden wanneer nodig
API
openclaw.tools.search(query, options?)
Doorzoekt de effectieve catalogus voor de huidige run. Resultaten zijn compact en veilig
om terug te plaatsen in de promptcontext.
openclaw.tools.describe(id)
Laadt volledige metadata voor één zoekresultaat, inclusief het exacte invoerschema.
openclaw.tools.call(id, args)
Roept een geselecteerde tool aan via OpenClaw.
tool_searchtool_describetool_call
tool_searchtool_describetool_call
tool_search om ze te vinden. Als
het model direct een exacte verborgen directorytoolnaam opvraagt, hydrateert OpenClaw
deze vanuit de geautoriseerde catalogus vóór normale uitvoering.
Toolnamen van clienttools in directorymodus mogen niet botsen met OpenClaw-, Plugin- of MCP-
toolnamen, omdat exacte uitgestelde dispatch die namen gebruikt.
Runtimegrens
De codebridge draait in een kortlevend Node-subproces. Het subproces start met Node permission mode ingeschakeld, een lege omgeving, geen bestandssysteem- of netwerktoekenningen, en geen child-process- of worker-toekenningen. OpenClaw dwingt een wall-clock-time-out van het bovenliggende proces af en stopt het subproces bij time-out, inclusief na async-voortzettingen. De runtime stelt alleen beschikbaar:console.log,console.warnenconsole.erroropenclaw.tools.searchopenclaw.tools.describeopenclaw.tools.call
- beleid voor toestaan en weigeren van tools
- toolbeperkingen per agent en per sandbox
- toolbeleid van kanaal/runtime
- goedkeuringshooks
- Plugin-
before_tool_call-hooks - sessie-identiteit, logs en telemetrie
Configuratie
Schakel de toolzoekfunctie in voor OpenClaw-runs met de standaard codebridge:Prompt en telemetrie
De toolzoekfunctie registreert voldoende telemetrie om deze te vergelijken met directe toolblootstelling:- totaal aantal geserialiseerde tool- en promptbytes dat naar de harness is verzonden
- catalogusgrootte en uitsplitsing naar bron
- aantallen zoek-, beschrijf- en aanroepbewerkingen
- uiteindelijke toolaanroepen uitgevoerd via OpenClaw
- geselecteerde tool-id’s en bronnen
- hoeveel toolschema’s het model vooraf zag
- hoeveel zoek- en beschrijfbewerkingen het uitvoerde
- welke uiteindelijke tool werd aangeroepen
- of het resultaat afkomstig was van OpenClaw, MCP of een clienttool
E2E-validatie
Het QA Lab Gateway-scenario bewijst beide paden met de OpenClaw-runtime:- Directe modus kan de nep-Plugin-tool aanroepen.
- De toolzoekfunctie kan dezelfde nep-Plugin-tool aanroepen.
- Directe modus stelt de schema’s van de nep-Plugin-tool direct beschikbaar aan de provider.
- De toolzoekfunctie stelt alleen de compacte bridge beschikbaar.
- De aanvraagpayload van de toolzoekfunctie is kleiner voor de grote nepcatalogus.
- Sessielogs tonen de verwachte aantallen toolaanroepen en telemetrie van bridged aanroepen.
Foutgedrag
De toolzoekfunctie moet fail-closed zijn:- als een tool niet in het effectieve beleid staat, mag zoeken deze niet retourneren
- als een geselecteerde tool onbeschikbaar wordt, moet
tool_callfalen - als beleid of goedkeuring uitvoering blokkeert, moet het aanroepresultaat die blokkade rapporteren in plaats van deze te omzeilen
- als de codebridge geen geïsoleerde runtime kan maken, gebruik dan
mode: "tools"of schakel de toolzoekfunctie uit voor die deployment