tools.toolSearch.
Lorsqu’elle est activée pour les exécutions OpenClaw, le modèle reçoit par défaut un outil
tool_search_code. Cet outil exécute un court corps JavaScript dans un sous-processus Node
isolé avec un pont openclaw.tools :
Déroulement d’un tour
Au moment de la planification, le runner intégré OpenClaw construit le catalogue effectif pour l’exécution :- Résoudre la politique d’outils active pour l’agent, le profil, le bac à sable et la session.
- Lister les outils OpenClaw et de plugin éligibles.
- Lister les outils MCP éligibles via le runtime MCP de session.
- Ajouter les outils client éligibles fournis pour l’exécution actuelle.
- Indexer des descripteurs compacts pour la recherche.
- Exposer au modèle le pont de code OpenClaw, les outils de repli structurés ou la surface de répertoire compacte.
openclaw.tools.call(...) traverse le pont pour revenir dans le Gateway, où la
politique normale, l’approbation, les hooks, la journalisation et le traitement des résultats s’appliquent toujours.
Modes
tools.toolSearch dispose de trois modes visibles par le modèle :
code: exposetool_search_code, le pont JavaScript compact par défaut.tools: exposetool_search,tool_describeettool_callcomme outils structurés simples pour les fournisseurs qui ne doivent pas recevoir de code.directory: exposetool_search,tool_describeettool_call, ainsi qu’un répertoire borné dans le prompt contenant les noms et descriptions des outils disponibles pour les fournisseurs qui doivent voir les noms des outils sans chaque schéma complet. OpenClaw peut aussi exposer directement un petit ensemble borné de schémas d’outils probables ou requis pour le tour actuel.
code par défaut bascule vers tools avant la compaction
du catalogue. En mode directory, les outils fournis par le client restent directement visibles
pour l’exécution actuelle, tandis que les outils OpenClaw, les outils de plugin et les outils MCP peuvent être
compactés derrière le catalogue de répertoire. Un appel direct à un nom exact masqué du
répertoire est hydraté depuis ce même catalogue autorisé avant l’exécution.
Tous les modes sont expérimentaux. Préférez l’exposition directe des outils pour les petits
catalogues d’outils OpenClaw, et préférez les surfaces stables natives de Codex pour les exécutions du harness Codex.
Il n’existe pas de configuration séparée pour la sélection des sources. Lorsque la recherche d’outils est activée, le
catalogue inclut les outils OpenClaw, MCP et client éligibles après le filtrage normal
par politique.
Pourquoi cela existe
Les grands catalogues sont utiles mais coûteux. Envoyer chaque schéma d’outil au modèle augmente la taille de la requête, ralentit la planification et accroît le risque de sélection accidentelle d’outil. La recherche d’outils change la forme :- outils directs : le modèle voit chaque schéma sélectionné avant le premier jeton
- mode code de la recherche d’outils : le modèle voit un outil de code compact et un court contrat d’API
- mode outils de la recherche d’outils : le modèle voit trois outils de repli structurés compacts
- mode répertoire de la recherche d’outils : le modèle voit un répertoire borné, plus des contrôles de recherche/description/appel et un petit ensemble borné de schémas probables ou requis
- pendant le tour : le modèle peut charger les schémas restants selon les besoins
API
openclaw.tools.search(query, options?)
Recherche dans le catalogue effectif de l’exécution actuelle. Les résultats sont compacts et sûrs
à réinjecter dans le contexte du prompt.
openclaw.tools.describe(id)
Charge les métadonnées complètes d’un résultat de recherche, y compris le schéma d’entrée exact.
openclaw.tools.call(id, args)
Appelle un outil sélectionné via OpenClaw.
tool_searchtool_describetool_call
tool_searchtool_describetool_call
tool_search pour les trouver. Si
le modèle demande directement un nom exact d’outil de répertoire masqué, OpenClaw
l’hydrate depuis le catalogue autorisé avant l’exécution normale.
Les noms d’outils client en mode répertoire ne doivent pas entrer en collision avec les noms d’outils OpenClaw, de plugin ou MCP,
car la répartition différée exacte utilise ces noms.
Limite du runtime
Le pont de code s’exécute dans un sous-processus Node de courte durée. Le sous-processus démarre avec le mode d’autorisations Node activé, un environnement vide, aucune autorisation de système de fichiers ou de réseau, et aucune autorisation de processus enfant ou de worker. OpenClaw applique un délai d’expiration horloge murale côté processus parent et tue le sous-processus en cas d’expiration, y compris après les continuations asynchrones. Le runtime expose uniquement :console.log,console.warnetconsole.erroropenclaw.tools.searchopenclaw.tools.describeopenclaw.tools.call
- politiques d’autorisation et de refus d’outils
- restrictions d’outils par agent et par bac à sable
- politique d’outils de canal/runtime
- hooks d’approbation
- hooks de plugin
before_tool_call - identité de session, journaux et télémétrie
Configuration
Activez la recherche d’outils pour les exécutions OpenClaw avec le pont de code par défaut :Prompt et télémétrie
La recherche d’outils enregistre assez de télémétrie pour la comparer à l’exposition directe des outils :- nombre total d’octets sérialisés d’outils et de prompt envoyés au harness
- taille du catalogue et répartition par source
- nombres de recherches, de descriptions et d’appels
- appels d’outils finaux exécutés via OpenClaw
- identifiants et sources des outils sélectionnés
- combien de schémas d’outils le modèle a vus dès le départ
- combien d’opérations de recherche et de description il a effectuées
- quel outil final a été appelé
- si le résultat provenait d’OpenClaw, de MCP ou d’un outil client
Validation E2E
Le scénario Gateway du QA Lab prouve les deux chemins avec le runtime OpenClaw :- Le mode direct peut appeler l’outil du faux plugin.
- La recherche d’outils peut appeler le même outil du faux plugin.
- Le mode direct expose les schémas d’outils du faux plugin directement au fournisseur.
- La recherche d’outils expose uniquement le pont compact.
- La charge utile de requête de la recherche d’outils est plus petite pour le grand faux catalogue.
- Les journaux de session affichent les nombres d’appels d’outils attendus et la télémétrie des appels via le pont.
Comportement en cas d’échec
La recherche d’outils doit échouer de façon fermée :- si un outil ne figure pas dans la politique effective, la recherche ne doit pas le renvoyer
- si un outil sélectionné devient indisponible,
tool_calldoit échouer - si la politique ou l’approbation bloque l’exécution, le résultat de l’appel doit signaler ce blocage au lieu de le contourner
- si le pont de code ne peut pas créer de runtime isolé, utilisez
mode: "tools"ou désactivez la recherche d’outils pour ce déploiement