📑 Table des matières

Les tools openclaw, à quoi servent-ils et comment les utiliser ?

OpenClaw 🟢 Débutant ⏱️ 5 min de lecture 📅 2026-02-24

Les Tools OpenClaw : Le système nerveux de votre agent IA

Quand vous parlez à OpenClaw, vous ne parlez pas qu'à un chatbot. Vous parlez à un agent capable d'agir sur votre système, votre navigateur, vos applications. Comment ? Grâce aux tools — les fonctions que l'agent peut invoquer pour accomplir des tâches concrètes.

Prérequis

  • OpenClaw installé et configuré
  • Compréhension basique de JSON et ligne de commande
  • Documentation officielle : https://docs.openclaw.ai/tools

Qu'est-ce qu'un tool ?

Un tool, c'est une fonction qu'OpenClaw peut appeler. Quand tu demandes "lance cette commande" ou "cherche sur le web", l'agent ne fait pas semblant : il appelle le tool exec ou web_search, reçoit le résultat, et te répond.

Exemple concret : tu demandes "vérifie si le serveur tourne". L'agent :
1. Appelle exec avec la commande systemctl status nginx
2. Reçoit le stdout
3. T'explique l'état du service

C'est ça, les tools. Pas de magie, juste des fonctions bien définies.

Les catégories de tools

OpenClaw organise les tools en groupes :

🖥️ Runtime (group:runtime)

Tools : exec, process

Pour exécuter des commandes shell et gérer les processus en arrière-plan.

# Via l'agent OpenClaw (en lui parlant)
"Lance la commande uptime"
# → Appelle exec(command="uptime")

"Démarre le backup en background"
# → Appelle exec(command="backup.sh", background=true)
# → Retourne un sessionId

"Vérifie l'état du backup"
# → Appelle process(action="poll", sessionId="...")

Options importantes :
- pty: true → pour les commandes interactives (vim, tmux)
- timeout → kill auto après X secondes
- background → lance sans attendre la fin
- elevated → exécute en mode privilégié si autorisé

📁 Système de fichiers (group:fs)

Tools : read, write, edit, apply_patch

Pour lire et modifier des fichiers.

"Lis le fichier /etc/nginx/nginx.conf"
# → Appelle read(path="/etc/nginx/nginx.conf")

"Ajoute une ligne à la fin du fichier"
# → Appelle edit(path="...", oldText="...", newText="...")

"Applique ce patch sur 3 fichiers"
# → Appelle apply_patch(patches=[...])

Note : apply_patch est expérimental (OpenAI models only), activé via tools.exec.applyPatch.enabled.

🌐 Web (group:web)

Tools : web_search, web_fetch

Pour chercher et extraire du contenu web.

"Cherche les dernières infos sur Claude 4"
# → Appelle web_search(query="Claude 4 latest news", count=5)

"Extrait le contenu de cette URL"
# → Appelle web_fetch(url="...", extractMode="markdown")

Setup :

{
  "tools": {
    "web": {
      "search": { "enabled": true, "maxResults": 10 },
      "fetch": { "enabled": true, "maxCharsCap": 50000 }
    }
  }
}

Requis : clé API Brave pour web_searchopenclaw configure --section web

🌍 Browser (group:ui)

Tool : browser

Pour contrôler un vrai navigateur Chrome.

"Ouvre Google et cherche OpenClaw"
# 1. browser(action="start")
# 2. browser(action="open", targetUrl="https://google.com")
# 3. browser(action="snapshot", snapshotFormat="ai")
# 4. browser(action="act", request={kind:"type", ref:"searchbox", text:"OpenClaw"})
# 5. browser(action="act", request={kind:"press", key:"Enter"})

"Fais un screenshot de la page"
# → browser(action="screenshot") → retourne image + MEDIA:

Workflow recommandé :
1. status / start → lance le navigateur
2. snapshot → capture l'état de la page (AI ou aria tree)
3. act → clique, tape, scroll (click, type, press, hover, drag)
4. screenshot → confirmation visuelle

Multi-profils : tu peux avoir plusieurs instances Chrome isolées via profile.

📱 Canvas & Nodes

Tools : canvas, nodes

Pour contrôler des devices macOS/iOS (app OpenClaw companion).

Canvas : affiche du contenu visuel sur un écran (present, eval, snapshot, A2UI).

Nodes : cible des devices paired :
- notify → notif système macOS
- camera_snap → photo
- screen_record → vidéo écran
- location_get → géoloc
- run → commande shell sur le device

"Prends une photo avec le MacBook"
# → nodes(action="camera_snap", node="office-mac")

"Enregistre l'écran pendant 10s"
# → nodes(action="screen_record", node="office-mac", durationMs=10000)

💬 Messaging (group:messaging)

Tool : message

Pour envoyer des messages sur Telegram/Discord/Slack/WhatsApp/Signal/iMessage.

"Envoie un message à #general sur Discord"
# → message(action="send", channel="discord", target="#general", message="...")

"Crée un sondage sur Telegram"
# → message(action="poll", channel="telegram", ...)

Actions : send, react, edit, delete, pin, thread-create, search, etc.

⏰ Automation (group:automation)

Tools : cron, gateway

Pour gérer les tâches planifiées et la configuration.

"Crée un cron qui me rappelle tous les jours à 9h"
# → cron(action="add", job={...})

"Liste les jobs cron actifs"
# → cron(action="list")

"Redémarre OpenClaw"
# → gateway(action="restart")

Format cron :

{
  "schedule": { "kind": "cron", "expr": "0 9 * * *", "tz": "Europe/Paris" },
  "payload": { "kind": "systemEvent", "text": "Rappel quotidien" },
  "sessionTarget": "main"
}

👥 Sessions (group:sessions)

Tools : sessions_list, sessions_history, sessions_send, sessions_spawn, session_status

Pour gérer plusieurs conversations et sub-agents.

"Liste mes sessions actives"
# → sessions_list()

"Envoie un message à la session support"
# → sessions_send(sessionKey="support", message="...")

"Lance un sub-agent pour cette tâche"
# → sessions_spawn(task="...", model="anthropic/claude-sonnet-4-5")

🧠 Memory (group:memory)

Tools : memory_search, memory_get

Pour chercher dans MEMORY.md et memory/*.md.

"Rappelle-moi ce qu'on a décidé hier sur le projet X"
# → memory_search(query="projet X décisions", maxResults=5)
# → memory_get(path="memory/2026-02-10.md", from=120, lines=30)

Configurer l'accès aux tools

Par défaut, tous les tools sont disponibles. Tu peux restreindre via openclaw.json :

Deny global

{
  "tools": {
    "deny": ["browser", "nodes"]
  }
}

→ Interdit complètement browser et nodes.

Allow sélectif

{
  "tools": {
    "allow": ["group:fs", "group:web", "sessions_list"]
  }
}

→ Autorise SEULEMENT ces tools (tout le reste est bloqué).

Profiles (presets)

Au lieu de lister manuellement, utilise un profile :

minimalsession_status uniquement
codinggroup:fs, group:runtime, group:sessions, group:memory, image
messaginggroup:messaging, sessions tools
full → tout (par défaut)

{
  "tools": {
    "profile": "coding"
  }
}

Par provider

Restreindre pour un modèle spécifique :

{
  "tools": {
    "profile": "coding",
    "byProvider": {
      "google-antigravity": { "profile": "minimal" }
    }
  }
}

→ Gemini Antigravity n'aura que session_status, le reste aura le profile coding.

Par agent

Créer un agent support avec accès limité :

{
  "agents": {
    "list": [
      {
        "id": "support",
        "tools": {
          "profile": "messaging",
          "allow": ["slack", "discord"]
        }
      }
    ]
  }
}

Cas d'usage pratiques

1. Automatiser un backup quotidien

# 1. Créer un script backup.sh
"Crée un fichier backup.sh qui copie ~/docs vers /backup/"

# 2. Rendre exécutable
"Rends backup.sh exécutable"
# → exec(command="chmod +x backup.sh")

# 3. Ajouter un cron
"Crée un job cron qui lance backup.sh tous les jours à 2h du matin"
# → cron(action="add", job={...})

2. Scraper un site web

"Va sur example.com, cherche tous les liens, et sauvegarde-les dans links.txt"
# 1. browser(action="start")
# 2. browser(action="open", targetUrl="https://example.com")
# 3. browser(action="snapshot")
# 4. Extrait les liens du snapshot
# 5. write(path="links.txt", content="...")

3. Monitoring serveur avec alerte

"Vérifie la charge CPU toutes les 5 min, préviens-moi si >80%"
# → Cron qui :
#    1. exec(command="top -bn1 | grep 'Cpu(s)'")
#    2. Parse la valeur
#    3. Si >80% → message(action="send", ...)

4. Sub-agent pour tâche longue

"Analyse tous les logs d'erreur du mois dernier et résume les patterns"
# → sessions_spawn(
#     task="Analyse logs /var/log/*.log du mois dernier, résume patterns d'erreurs",
#     model="anthropic/claude-sonnet-4-5",
#     runTimeoutSeconds=600
#   )
# → Le sub-agent tourne en isolé, t'annonce le résultat

Récapitulatif

  • Tools = fonctions que l'agent peut appeler pour agir (pas juste parler)
  • 9 groupes principaux : runtime, fs, web, ui, messaging, automation, sessions, memory, nodes
  • Configuration fine : profiles, deny/allow, byProvider, par agent
  • Workflow type : status → action → résultat → action suivante
  • Sécurité : tools.deny pour bloquer les actions sensibles

Conclusion

Les tools sont la différence entre un chatbot et un agent. Avec OpenClaw, tu ne demandes pas "peux-tu faire X ?", tu demandes "fais X" — et ça arrive. Que ce soit exécuter une commande, scraper le web, ou contrôler ton navigateur, tout passe par ces tools.

Prochaine étape : explore les Skills qui guident l'agent sur comment utiliser les tools dans des contextes spécifiques. Et rejoins la communauté Discord pour partager tes workflows !


📚 Pour aller plus loin