tools.toolSearch.
Lorsque cette fonctionnalité est activée pour les exécutions OpenClaw, le modèle reçoit par défaut un outil tool_search_code, ainsi que tous les outils exclusivement directs dont les résultats structurés ne peuvent pas franchir le pont compact. L’outil de code exécute un court corps JavaScript dans un sous-processus Node isolé avec un pont openclaw.tools :
Déroulement d’un tour
Lors de la planification, l’exécuteur intégré OpenClaw construit le catalogue effectif de l’exécution :- Résoudre la politique d’outils active pour l’agent, le profil, le bac à sable et la session.
- Répertorier les outils OpenClaw et de Plugin admissibles.
- Répertorier les outils MCP admissibles par l’intermédiaire de l’environnement d’exécution MCP de la session.
- Ajouter les outils client admissibles fournis pour l’exécution en cours.
- Garder les outils exclusivement directs visibles par le modèle et indexer les descripteurs compacts des autres outils admissibles au catalogue.
- Exposer le pont de code OpenClaw, les outils structurés de repli ou la surface d’annuaire compacte avec ces outils exclusivement directs.
openclaw.tools.call(...) franchit le pont pour revenir dans le Gateway, où les mécanismes habituels de politique, d’approbation, de hook, de journalisation et de traitement des résultats continuent de s’appliquer.
Modes
tools.toolSearch propose trois modes visibles par le modèle :
code: exposetool_search_code, le pont JavaScript compact par défaut, avec les outils exclusivement directs.tools: exposetool_search,tool_describeettool_callsous forme d’outils structurés simples pour les fournisseurs qui ne doivent pas recevoir de code, avec les outils exclusivement directs.directory: exposetool_search,tool_describeettool_call, ainsi qu’un annuaire borné dans le prompt contenant les noms et descriptions des outils disponibles, pour les fournisseurs qui doivent voir les noms des outils sans recevoir tous leurs schémas complets. OpenClaw peut également exposer directement un petit ensemble borné de schémas d’outils probables ou requis pour le tour en cours. Les outils exclusivement directs restent également visibles dans ce mode.
catalogMode: "direct-only" restent hors de ce catalogue et demeurent visibles par le modèle. Si l’environnement d’exécution actuel ne peut pas lancer le processus enfant Node isolé du mode code, le mode code par défaut se replie sur tools avant la Compaction du catalogue. En mode directory, les outils fournis par le client restent directement visibles pour l’exécution en cours, tandis que les outils OpenClaw, les outils de Plugin et les outils MCP peuvent être compactés derrière le catalogue de l’annuaire. Un appel direct utilisant le nom exact d’un outil masqué dans l’annuaire est chargé 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 les surfaces natives stables de Codex pour les exécutions du harnais Codex.
Il n’existe aucune configuration distincte de sélection des sources. Lorsque la recherche d’outils est activée, le catalogue inclut les outils OpenClaw, MCP et client admissibles au catalogue après l’application normale des politiques ; les outils exclusivement directs sont conservés séparément.
Raison d’être
Les grands catalogues sont utiles, mais coûteux. L’envoi de 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’un outil. La recherche d’outils modifie cette organisation :- 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, un court contrat d’API et tous les outils exclusivement directs
- mode outils de la recherche d’outils : le modèle voit trois outils structurés compacts de repli, ainsi que tous les outils exclusivement directs
- mode annuaire de la recherche d’outils : le modèle voit un annuaire borné, des contrôles de recherche, de description et d’appel, ainsi qu’un petit ensemble borné de schémas probables ou requis, en plus de tous les outils exclusivement directs
- pendant le tour : le modèle peut charger les schémas restants selon ses besoins
API
openclaw.tools.search(query, options?)
Recherche dans le catalogue effectif de l’exécution en cours. Les résultats sont compacts et peuvent être réinsérés sans risque 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é par l’intermédiaire d’OpenClaw.
tool_searchtool_describetool_call
tool_searchtool_describetool_call
tool_search pour les trouver. Si le modèle demande directement le nom exact d’un outil masqué dans l’annuaire, OpenClaw le charge depuis le catalogue autorisé avant l’exécution normale.
En mode annuaire, les noms des outils client ne doivent pas entrer en collision avec ceux des outils OpenClaw, de Plugin ou MCP, car la distribution différée exacte utilise ces noms.
Limite de l’environnement d’exécution
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 de Node activé, un environnement vide, aucun accès accordé au système de fichiers ou au réseau, et aucune autorisation de créer des processus enfants ou des workers. OpenClaw impose un délai d’expiration en temps réel dans le processus parent et termine le sous-processus à son expiration, y compris après des continuations asynchrones. L’environnement d’exécution expose uniquement :console.log,console.warnetconsole.erroropenclaw.tools.searchopenclaw.tools.describeopenclaw.tools.call
- politiques d’autorisation et de refus des outils
- restrictions d’outils propres à chaque agent et à chaque bac à sable
- politique d’outils du canal et de l’environnement d’exécution
- hooks d’approbation
- hooks
before_tool_calldes Plugins - 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 :codeTimeoutMs à 1000-60000, maxSearchLimit à 1-50 et searchDefaultLimit à 1..maxSearchLimit.
Pour désactiver la fonctionnalité :
Prompt et télémétrie
La recherche d’outils enregistre suffisamment de données de télémétrie pour permettre sa comparaison avec l’exposition directe des outils :- nombre total d’octets sérialisés des outils et du prompt envoyés au harnais
- taille du catalogue et répartition par source
- nombre de recherches, de descriptions et d’appels
- appels d’outils finaux exécutés par l’intermédiaire d’OpenClaw
- identifiants et sources des outils sélectionnés
- combien de schémas d’outils le modèle a vus initialement
- 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 laboratoire d’assurance qualité valide les deux chemins avec l’environnement d’exécution 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 directement les schémas des outils du faux Plugin au fournisseur.
- La recherche d’outils expose uniquement le pont compact et tous les outils exclusivement directs.
- La charge utile de la requête de recherche d’outils est plus petite pour le vaste faux catalogue.
- Les journaux de session présentent le nombre attendu d’appels d’outils et les données de télémétrie des appels passant par le pont.
Comportement en cas d’échec
La recherche d’outils doit échouer de manière fermée :- si un outil ne fait pas partie de la politique effective, la recherche ne doit pas le renvoyer
- si un outil sélectionné devient indisponible,
tool_calldoit échouer - si une politique ou une 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 un environnement d’exécution isolé, utilisez
mode: "tools"ou désactivez la recherche d’outils pour ce déploiement