Outils (OpenClaw)
OpenClaw expose des outils d’agent de premier ordre pour le navigateur, le canvas, les nœuds et cron. Ils remplacent les anciens Skillsopenclaw-* : les outils sont typés, sans exécution via shell,
et l’agent doit s’appuyer directement sur eux.
Désactivation des outils
Vous pouvez autoriser/interdire globalement les outils viatools.allow / tools.deny dans openclaw.json
(l’interdiction l’emporte). Cela empêche l’envoi d’outils non autorisés aux fournisseurs de modèles.
- La correspondance est insensible à la casse.
- Les jokers
*sont pris en charge ("*"signifie tous les outils). - Si
tools.allowne référence que des noms d’outils de plugins inconnus ou non chargés, OpenClaw consigne un avertissement et ignore la liste d’autorisation afin que les outils cœur restent disponibles.
Profils d’outils (liste d’autorisation de base)
tools.profile définit une liste d’autorisation d’outils de base avant tools.allow/tools.deny.
Surcharge par agent : agents.list[].tools.profile.
Profils :
minimal:session_statusuniquementcoding:group:fs,group:runtime,group:sessions,group:memory,imagemessaging:group:messaging,sessions_list,sessions_history,sessions_send,session_statusfull: aucune restriction (identique à non défini)
Politique d’outils spécifique au fournisseur
Utiliseztools.byProvider pour restreindre davantage les outils pour des fournisseurs spécifiques
(ou un seul provider/model) sans modifier vos valeurs globales.
Surcharge par agent : agents.list[].tools.byProvider.
Ceci est appliqué après le profil d’outils de base et avant les listes autoriser/interdire,
il ne peut donc que réduire l’ensemble d’outils.
Les clés de fournisseur acceptent soit provider (par ex. google-antigravity), soit
provider/model (par ex. openai/gpt-5.2).
Exemple (conserver le profil de codage global, mais outils minimaux pour Google Antigravity) :
Groupes d’outils (raccourcis)
Les politiques d’outils (globales, agent, sandbox) prennent en charge des entréesgroup:* qui se développent en plusieurs outils.
Utilisez-les dans tools.allow / tools.deny.
Groupes disponibles :
group:runtime:exec,bash,processgroup:fs:read,write,edit,apply_patchgroup:sessions:sessions_list,sessions_history,sessions_send,sessions_spawn,session_statusgroup:memory:memory_search,memory_getgroup:web:web_search,web_fetchgroup:ui:browser,canvasgroup:automation:cron,gatewaygroup:messaging:messagegroup:nodes:nodesgroup:openclaw: tous les outils OpenClaw intégrés (exclut les plugins de fournisseur)
Plugins + outils
Les plugins peuvent enregistrer des outils supplémentaires (et des commandes CLI) au-delà de l’ensemble cœur. Voir Plugins pour l’installation + la configuration, et Skills pour savoir comment les consignes d’utilisation des outils sont injectées dans les prompts. Certains plugins livrent leurs propres Skills en plus des outils (par exemple, le plugin d’appel vocal). Outils de plugins optionnels :- Lobster : moteur de workflow typé avec validations reprises (nécessite le CLI Lobster sur l’hôte de la Gateway (passerelle)).
- LLM Task : étape LLM JSON uniquement pour une sortie de workflow structurée (validation de schéma optionnelle).
Inventaire des outils
apply_patch
Appliquer des correctifs structurés sur un ou plusieurs fichiers. À utiliser pour des modifications multi-hunks.
Expérimental : activer via tools.exec.applyPatch.enabled (modèles OpenAI uniquement).
tools.exec.applyPatch.workspaceOnly est défini par défaut sur true (limité à l’espace de travail). Définissez-le sur false uniquement si vous souhaitez intentionnellement que apply_patch écrive/supprime en dehors du répertoire de l’espace de travail.
exec
Exécuter des commandes shell dans l’espace de travail.
Paramètres principaux :
command(requis)yieldMs(passage automatique en arrière-plan après délai, par défaut 10000)background(arrière-plan immédiat)timeout(secondes ; tue le processus si dépassé, par défaut 1800)elevated(bool ; exécuter sur l’hôte si le mode élevé est activé/autorisé ; ne change le comportement que lorsque l’agent est en sandbox)host(sandbox | gateway | node)security(deny | allowlist | full)ask(off | on-miss | always)node(id/nom de nœud pourhost=node)- Besoin d’un vrai TTY ? Définissez
pty: true.
- Renvoie
status: "running"avec unsessionIdlorsqu’il est en arrière-plan. - Utilisez
processpour sonder/journaliser/écrire/arrêter/effacer les sessions en arrière-plan. - Si
processest interdit,execs’exécute de manière synchrone et ignoreyieldMs/background. elevatedest contrôlé partools.elevatedplus toute surchargeagents.list[].tools.elevated(les deux doivent autoriser) et est un alias pourhost=gateway+security=full.elevatedne change le comportement que lorsque l’agent est en sandbox (sinon, sans effet).host=nodepeut cibler une application compagnon macOS ou un hôte de nœud sans interface (openclaw node run).- approbations et listes d’autorisation gateway/nœud : Exec approvals.
process
Gérer les sessions exec en arrière-plan.
Actions principales :
list,poll,log,write,kill,clear,remove
pollrenvoie la nouvelle sortie et le statut de sortie une fois terminé.logprend en charge le suivi par lignesoffset/limit(omettreoffsetpour récupérer les N dernières lignes).processest limité par agent ; les sessions d’autres agents ne sont pas visibles.
web_search
Rechercher sur le Web via l’API Brave Search.
Paramètres principaux :
query(requis)count(1–10 ; valeur par défaut depuistools.web.search.maxResults)
- Nécessite une clé API Brave (recommandé :
openclaw configure --section web, ou définirBRAVE_API_KEY). - Activer via
tools.web.search.enabled. - Les réponses sont mises en cache (15 min par défaut).
- Voir Web tools pour la configuration.
web_fetch
Récupérer et extraire un contenu lisible depuis une URL (HTML → markdown/texte).
Paramètres principaux :
url(requis)extractMode(markdown|text)maxChars(tronquer les pages longues)
- Activer via
tools.web.fetch.enabled. maxCharsest plafonné partools.web.fetch.maxCharsCap(par défaut 50000).- Les réponses sont mises en cache (15 min par défaut).
- Pour les sites fortement dépendants de JS, privilégiez l’outil navigateur.
- Voir Web tools pour la configuration.
- Voir Firecrawl pour le repli anti-bot optionnel.
browser
Contrôler le navigateur dédié géré par OpenClaw.
Actions principales :
status,start,stop,tabs,open,focus,closesnapshot(aria/ai)screenshot(renvoie un bloc image +MEDIA:<path>)act(actions UI : click/type/press/hover/drag/select/fill/resize/wait/evaluate)navigate,console,pdf,upload,dialog
profiles— lister tous les profils de navigateur avec statutcreate-profile— créer un nouveau profil avec port alloué automatiquement (oucdpUrl)delete-profile— arrêter le navigateur, supprimer les données utilisateur, retirer de la configuration (local uniquement)reset-profile— tuer un processus orphelin sur le port du profil (local uniquement)
profile(optionnel ; par défautbrowser.defaultProfile)target(sandbox|host|node)node(optionnel ; sélectionner un id/nom de nœud spécifique) Notes :- Nécessite
browser.enabled=true(par défauttrue; définirfalsepour désactiver). - Toutes les actions acceptent un paramètre optionnel
profilepour le support multi‑instances. - Lorsque
profileest omis, utilisebrowser.defaultProfile(par défaut « chrome »). - Noms de profil : alphanumérique en minuscules + tirets uniquement (64 caractères max).
- Plage de ports : 18800‑18899 (~100 profils max).
- Les profils distants sont en attachement uniquement (pas de start/stop/reset).
- Si un nœud compatible navigateur est connecté, l’outil peut s’y router automatiquement (sauf si vous épinglez
target). snapshotpar défautailorsque Playwright est installé ; utilisezariapour l’arbre d’accessibilité.snapshotprend aussi en charge des options d’instantané de rôles (interactive,compact,depth,selector) qui renvoient des références commee12.actnécessiterefdepuissnapshot(numérique12depuis les instantanés IA, oue12depuis les instantanés de rôles) ; utilisezevaluatepour de rares besoins de sélecteur CSS.- Évitez
act→waitpar défaut ; utilisez‑le uniquement dans des cas exceptionnels (aucun état UI fiable sur lequel attendre). uploadpeut optionnellement transmettre unrefpour cliquer automatiquement après armement.uploadprend aussi en chargeinputRef(réf aria) ouelement(sélecteur CSS) pour définir directement<input type="file">.
canvas
Piloter le Canvas du nœud (present, eval, snapshot, A2UI).
Actions principales :
present,hide,navigate,evalsnapshot(renvoie un bloc image +MEDIA:<path>)a2ui_push,a2ui_reset
- Utilise la
node.invokede la Gateway (passerelle) en interne. - Si aucun
noden’est fourni, l’outil choisit une valeur par défaut (nœud unique connecté ou nœud mac local). - A2UI est en v0.8 uniquement (pas de
createSurface) ; la CLI rejette les JSONL v0.9 avec des erreurs de ligne. - Test rapide :
openclaw nodes canvas a2ui push --node <id> --text "Hello from A2UI".
nodes
Découvrir et cibler des nœuds appairés ; envoyer des notifications ; capturer caméra/écran.
Actions principales :
status,describepending,approve,reject(appairage)notify(macOSsystem.notify)run(macOSsystem.run)camera_snap,camera_clip,screen_recordlocation_get
- Les commandes caméra/écran nécessitent que l’application du nœud soit au premier plan.
- Les images renvoient des blocs image +
MEDIA:<path>. - Les vidéos renvoient
FILE:<path>(mp4). - La localisation renvoie une charge utile JSON (lat/lon/précision/horodatage).
- Paramètres
run: tableau argvcommand;cwdoptionnel,env(KEY=VAL),commandTimeoutMs,invokeTimeoutMs,needsScreenRecording.
run) :
image
Analyser une image avec le modèle d’image configuré.
Paramètres principaux :
image(chemin ou URL requis)prompt(optionnel ; par défaut « Describe the image. »)model(surcharge optionnelle)maxBytesMb(plafond de taille optionnel)
- Disponible uniquement lorsque
agents.defaults.imageModelest configuré (principal ou secours), ou lorsqu’un modèle d’image implicite peut être déduit de votre modèle par défaut + authentification configurée (appariement au mieux). - Utilise directement le modèle d’image (indépendant du modèle de chat principal).
message
Envoyer des messages et actions de canal sur Discord/Google Chat/Slack/Telegram/WhatsApp/Signal/iMessage/MS Teams.
Actions principales :
send(texte + média optionnel ; MS Teams prend aussi en chargecardpour les Adaptive Cards)poll(sondages WhatsApp/Discord/MS Teams)react/reactions/read/edit/deletepin/unpin/list-pinspermissionsthread-create/thread-list/thread-replysearchstickermember-info/role-infoemoji-list/emoji-upload/sticker-uploadrole-add/role-removechannel-info/channel-listvoice-statusevent-list/event-createtimeout/kick/ban
sendroute WhatsApp via la Gateway (passerelle) ; les autres canaux vont directement.pollutilise la Gateway (passerelle) pour WhatsApp et MS Teams ; les sondages Discord vont directement.- Lorsqu’un appel d’outil de messagerie est lié à une session de chat active, les envois sont contraints à la cible de cette session afin d’éviter les fuites inter‑contexte.
cron
Gérer les tâches cron et réveils de la Gateway (passerelle).
Actions principales :
status,listadd,update,remove,run,runswake(mettre en file un événement système + battement immédiat optionnel)
addattend un objet de tâche cron complet (même schéma que l’RPCcron.add).updateutilise{ id, patch }.
gateway
Redémarrer ou appliquer des mises à jour au processus Gateway (passerelle) en cours (sur place).
Actions principales :
restart(autorise + envoieSIGUSR1pour redémarrage en processus ;openclaw gatewayredémarrage sur place)config.get/config.schemaconfig.apply(valider + écrire la configuration + redémarrer + réveiller)config.patch(fusionner une mise à jour partielle + redémarrer + réveiller)update.run(exécuter la mise à jour + redémarrer + réveiller)
- Utilisez
delayMs(par défaut 2000) pour éviter d’interrompre une réponse en cours. restartest désactivé par défaut ; activez‑le aveccommands.restart: true.
sessions_list / sessions_history / sessions_send / sessions_spawn / session_status
Lister les sessions, inspecter l’historique des transcriptions, ou envoyer vers une autre session.
Paramètres principaux :
sessions_list:kinds?,limit?,activeMinutes?,messageLimit?(0 = aucun)sessions_history:sessionKey(ousessionId),limit?,includeTools?sessions_send:sessionKey(ousessionId),message,timeoutSeconds?(0 = fire‑and‑forget)sessions_spawn:task,label?,agentId?,model?,runTimeoutSeconds?,cleanup?session_status:sessionKey?(par défaut courant ; acceptesessionId),model?(defaultefface la surcharge)
mainest la clé canonique de chat direct ; global/inconnu sont masqués.messageLimit > 0récupère les N derniers messages par session (messages d’outils filtrés).sessions_sendattend l’achèvement final lorsquetimeoutSeconds > 0.- La livraison/l’annonce intervient après l’achèvement et est au mieux ;
status: "ok"confirme la fin de l’exécution de l’agent, pas la livraison de l’annonce. sessions_spawndémarre une exécution de sous‑agent et publie une réponse d’annonce dans le chat demandeur.sessions_spawnest non bloquant et renvoie immédiatementstatus: "accepted".sessions_sendexécute un ping‑pong de réponse (répondreREPLY_SKIPpour arrêter ; nombre maximal de tours viasession.agentToAgent.maxPingPongTurns, 0–5).- Après le ping‑pong, l’agent cible exécute une étape d’annonce ; répondre
ANNOUNCE_SKIPpour supprimer l’annonce.
agents_list
Lister les identifiants d’agent que la session courante peut cibler avec sessions_spawn.
Notes :
- Le résultat est limité aux listes d’autorisation par agent (
agents.list[].subagents.allowAgents). - Lorsque
["*"]est configuré, l’outil inclut tous les agents configurés et marqueallowAny: true.
Paramètres (communs)
Outils adossés à la Gateway (passerelle) (canvas, nodes, cron) :
gatewayUrl(par défautws://127.0.0.1:18789)gatewayToken(si l’authentification est activée)timeoutMs
gatewayUrl est défini, incluez explicitement gatewayToken. Les outils n’héritent pas de la configuration
ni des identifiants d’environnement pour les surcharges, et l’absence d’identifiants explicites est une erreur.
Outil navigateur :
profile(optionnel ; par défautbrowser.defaultProfile)target(sandbox|host|node)node(optionnel ; épingler un id/nom de nœud spécifique)
Flux d’agent recommandés
Automatisation du navigateur :browser→status/startsnapshot(ai ou aria)act(click/type/press)screenshotsi vous avez besoin d’une confirmation visuelle
canvas→presenta2ui_push(optionnel)snapshot
nodes→statusdescribesur le nœud choisinotify/run/camera_snap/screen_record
Sécurité
- Évitez
system.rundirect ; utiliseznodes→rununiquement avec le consentement explicite de l’utilisateur. - Respectez le consentement de l’utilisateur pour la capture caméra/écran.
- Utilisez
status/describepour vérifier les autorisations avant d’invoquer des commandes média.
Comment les outils sont présentés à l’agent
Les outils sont exposés dans deux canaux parallèles :- Texte du prompt système : une liste lisible par un humain + des consignes.
- Schéma d’outil : les définitions de fonctions structurées envoyées à l’API du modèle.