Overview
Outils et plugins
Tout ce que fait l’agent au-delà de la génération de texte passe par des outils. Les outils permettent à l’agent de lire des fichiers, d’exécuter des commandes, de parcourir le web, d’envoyer des messages et d’interagir avec des appareils.
Outils, Skills et plugins
OpenClaw comporte trois couches qui fonctionnent ensemble :
Les outils sont ce que l’agent appelle
Un outil est une fonction typée que l’agent peut invoquer (p. ex. exec, browser,
web_search, message). OpenClaw fournit un ensemble d’outils intégrés et
les plugins peuvent en enregistrer d’autres.
L’agent voit les outils comme des définitions de fonctions structurées envoyées à l’API du modèle.
Les Skills enseignent à l’agent quand et comment agir
Un Skill est un fichier markdown (SKILL.md) injecté dans le prompt système.
Les Skills donnent à l’agent du contexte, des contraintes et des consignes étape par étape pour
utiliser efficacement les outils. Les Skills résident dans votre espace de travail, dans des dossiers partagés,
ou sont fournis dans des plugins.
Les plugins regroupent tout
Un plugin est un paquet qui peut enregistrer n’importe quelle combinaison de capacités : canaux, fournisseurs de modèles, outils, Skills, synthèse vocale, transcription en temps réel, voix en temps réel, compréhension des médias, génération d’images, génération de vidéos, récupération web, recherche web, et plus encore. Certains plugins sont core (fournis avec OpenClaw), d’autres sont externes (publiés sur npm par la communauté).
Outils intégrés
Ces outils sont fournis avec OpenClaw et sont disponibles sans installer de plugins :
| Outil | Ce qu’il fait | Page |
|---|---|---|
exec / process |
Exécuter des commandes shell, gérer des processus en arrière-plan | Exec, Approbations Exec |
code_execution |
Exécuter une analyse Python distante en bac à sable | Exécution de code |
browser |
Contrôler un navigateur Chromium (naviguer, cliquer, capture d’écran) | Navigateur |
web_search / x_search / web_fetch |
Rechercher sur le web, rechercher des publications X, récupérer le contenu de pages | Web, Récupération web |
read / write / edit |
E/S de fichiers dans l’espace de travail | |
apply_patch |
Correctifs de fichiers à plusieurs blocs | Appliquer un correctif |
message |
Envoyer des messages sur tous les canaux | Envoi par l’agent |
canvas |
Piloter Node Canvas (présenter, évaluer, instantané) | |
nodes |
Découvrir et cibler des appareils appairés | |
cron / gateway |
Gérer les tâches planifiées ; inspecter, corriger, redémarrer ou mettre à jour le Gateway | |
image / image_generate |
Analyser ou générer des images | Génération d’images |
music_generate |
Générer des pistes musicales | Génération musicale |
video_generate |
Générer des vidéos | Génération de vidéos |
tts |
Conversion ponctuelle texte-vers-parole | TTS |
sessions_* / subagents / agents_list |
Gestion des sessions, état et orchestration de sous-agents | Sous-agents |
session_status |
Retour d’état léger de type /status et remplacement du modèle de session |
Outils de session |
Pour les images, utilisez image pour l’analyse et image_generate pour la génération ou l’édition. Si vous ciblez openai/*, google/*, fal/* ou un autre fournisseur d’images non défini par défaut, configurez d’abord l’authentification/la clé API de ce fournisseur.
Pour la musique, utilisez music_generate. Si vous ciblez google/*, minimax/* ou un autre fournisseur musical non défini par défaut, configurez d’abord l’authentification/la clé API de ce fournisseur.
Pour la vidéo, utilisez video_generate. Si vous ciblez qwen/* ou un autre fournisseur vidéo non défini par défaut, configurez d’abord l’authentification/la clé API de ce fournisseur.
Pour la génération audio pilotée par workflow, utilisez music_generate lorsqu’un plugin tel que
ComfyUI l’enregistre. Cela est distinct de tts, qui est du texte-vers-parole.
session_status est l’outil léger d’état/retour de lecture dans le groupe des sessions.
Il répond aux questions de type /status sur la session actuelle et peut
éventuellement définir un remplacement de modèle par session ; model=default efface ce
remplacement. Comme /status, il peut compléter les compteurs de jetons/cache clairsemés et le
libellé du modèle d’exécution actif à partir de la dernière entrée d’utilisation de la transcription.
gateway est l’outil d’exécution réservé au propriétaire pour les opérations du Gateway :
config.schema.lookuppour un sous-arbre de configuration limité à un chemin avant les modificationsconfig.getpour l’instantané de configuration actuel + le hachageconfig.patchpour les mises à jour partielles de configuration avec redémarrageconfig.applyuniquement pour le remplacement complet de la configurationupdate.runpour une auto-mise à jour explicite + redémarrage
Pour les modifications partielles, préférez config.schema.lookup, puis config.patch. Utilisez
config.apply uniquement lorsque vous remplacez intentionnellement toute la configuration.
Pour une documentation plus large sur la configuration, consultez Configuration et
Référence de configuration.
L’outil refuse également de modifier tools.exec.ask ou tools.exec.security ;
les alias hérités tools.bash.* sont normalisés vers les mêmes chemins exec protégés.
Outils fournis par des plugins
Les plugins peuvent enregistrer des outils supplémentaires. Quelques exemples :
- Diffs — visionneuse et moteur de rendu de diffs
- Tâche LLM — étape LLM JSON uniquement pour sortie structurée
- Lobster — runtime de workflow typé avec approbations reprenables
- Génération musicale — outil
music_generatepartagé avec fournisseurs adossés à un workflow - OpenProse — orchestration de workflow axée markdown
- Tokenjuice — compacte les résultats bruyants des outils
execetbash
Les outils de plugin sont toujours créés avec api.registerTool(...) et déclarés dans
la liste contracts.tools du manifeste du plugin. OpenClaw capture le descripteur
d’outil validé pendant la découverte et le met en cache par source et contrat de plugin, afin que
la planification ultérieure des outils puisse éviter de charger le runtime du plugin. L’exécution de l’outil charge toujours
le plugin propriétaire et appelle l’implémentation enregistrée en direct.
Configuration des outils
Listes d’autorisation et de refus
Contrôlez quels outils l’agent peut appeler via tools.allow / tools.deny dans
la configuration. Le refus l’emporte toujours sur l’autorisation.
{
tools: {
allow: ["group:fs", "browser", "web_search"],
deny: ["exec"],
},
}
OpenClaw échoue en mode fermé lorsqu’une liste d’autorisation explicite ne résout aucun outil appelable.
Par exemple, tools.allow: ["query_db"] ne fonctionne que si un plugin chargé
enregistre effectivement query_db. Si aucun outil intégré, plugin ou outil MCP groupé ne correspond à la
liste d’autorisation, l’exécution s’arrête avant l’appel au modèle au lieu de continuer comme une
exécution texte uniquement qui pourrait halluciner les résultats d’outils.
Profils d’outils
tools.profile définit une liste d’autorisation de base avant l’application de allow/deny.
Remplacement par agent : agents.list[].tools.profile.
| Profil | Ce qu’il inclut |
|---|---|
full |
Tous les outils core et de plugins optionnels ; base sans restriction pour un accès plus large aux commandes/contrôles |
coding |
group:fs, group:runtime, group:web, group:sessions, group:memory, cron, image, image_generate, music_generate, video_generate |
messaging |
group:messaging, sessions_list, sessions_history, sessions_send, session_status |
minimal |
session_status uniquement |
coding inclut des outils web légers (web_search, web_fetch, x_search),
mais pas l’outil complet de contrôle du navigateur. L’automatisation du navigateur peut piloter de vraies
sessions et des profils connectés ; ajoutez-la donc explicitement avec
tools.alsoAllow: ["browser"] ou un réglage par agent
agents.list[].tools.alsoAllow: ["browser"].
Les profils coding et messaging autorisent aussi les outils MCP groupés configurés
sous la clé de plugin bundle-mcp. Ajoutez tools.deny: ["bundle-mcp"] lorsque vous
voulez qu’un profil conserve ses outils intégrés habituels, mais masque tous les outils MCP configurés.
Le profil minimal n’inclut pas les outils MCP groupés.
Exemple (surface d’outils la plus large par défaut) :
{
tools: {
profile: "full",
},
}
Groupes d’outils
Utilisez les raccourcis group:* dans les listes d’autorisation/refus :
| Groupe | Outils |
|---|---|
group:runtime |
exec, process, code_execution (bash est accepté comme alias de exec) |
group:fs |
read, write, edit, apply_patch |
group:sessions |
sessions_list, sessions_history, sessions_send, sessions_spawn, sessions_yield, subagents, session_status |
group:memory |
memory_search, memory_get |
group:web |
web_search, x_search, web_fetch |
group:ui |
browser, canvas |
group:automation |
heartbeat_respond, cron, gateway |
group:messaging |
message |
group:nodes |
nodes |
group:agents |
agents_list, update_plan |
group:media |
image, image_generate, music_generate, video_generate, tts |
group:openclaw |
Tous les outils OpenClaw intégrés (exclut les outils Plugin) |
sessions_history renvoie une vue de rappel bornée et filtrée pour la sécurité. Il supprime
les balises de raisonnement, la structure <relevant-memories>, les charges utiles XML
d’appels d’outils en texte brut (y compris <tool_call>...</tool_call>,
<function_call>...</function_call>, <tool_calls>...</tool_calls>,
<function_calls>...</function_calls> et les blocs d’appels d’outils tronqués),
la structure d’appels d’outils déclassée, les jetons de contrôle de modèle
ASCII/pleine chasse divulgués, et le XML d’appel d’outils MiniMax mal formé provenant
du texte de l’assistant, puis applique le caviardage/la troncature et d’éventuels
espaces réservés pour les lignes surdimensionnées au lieu d’agir comme un dump brut
de transcription.
Restrictions propres aux fournisseurs
Utilisez tools.byProvider pour restreindre les outils pour des fournisseurs spécifiques sans
modifier les valeurs par défaut globales :
{
tools: {
profile: "coding",
byProvider: {
"google-antigravity": { profile: "minimal" },
},
},
}