Sandbox vs politique d’outils vs Elevated
OpenClaw a trois contrôles liés (mais différents) :- Sandbox (
agents.defaults.sandbox.*/agents.list[].sandbox.*) décide où les outils s’exécutent (Docker vs hôte). - Politique d’outils (
tools.*,tools.sandbox.tools.*,agents.list[].tools.*) décide quels outils sont disponibles/autorisés. - Elevated (
tools.elevated.*,agents.list[].tools.elevated.*) est une échappatoire réservée à exec pour exécuter hors de la sandbox lorsque vous êtes en mode sandbox (gatewaypar défaut, ounodelorsque la cible exec est configurée surnode).
Débogage rapide
Utilisez l’inspecteur pour voir ce qu’OpenClaw est réellement en train de faire :- le mode/la portée/l’accès à l’espace de travail effectifs de la sandbox
- si la session est actuellement en sandbox (main vs non-main)
- l’allow/deny effectif des outils dans la sandbox (et s’il provient de l’agent/global/par défaut)
- les garde-fous elevated et les chemins de clé de correction
Sandbox : où les outils s’exécutent
Le sandboxing est contrôlé paragents.defaults.sandbox.mode :
"off": tout s’exécute sur l’hôte."non-main": seules les sessions non principales sont en sandbox (surprise fréquente pour les groupes/canaux)."all": tout est en sandbox.
Bind mounts (vérification rapide de sécurité)
docker.bindsperce le système de fichiers de la sandbox : tout ce que vous montez est visible à l’intérieur du conteneur avec le mode que vous définissez (:roou:rw).- Le mode par défaut est lecture-écriture si vous omettez le mode ; préférez
:ropour le code source/les secrets. scope: "shared"ignore les bind mounts par agent (seuls les bind mounts globaux s’appliquent).- OpenClaw valide les sources de bind deux fois : d’abord sur le chemin source normalisé, puis à nouveau après résolution via l’ancêtre existant le plus profond. Les échappements via parent de lien symbolique ne contournent pas les vérifications de chemin bloqué ou de racine autorisée.
- Les chemins feuille inexistants sont quand même vérifiés en toute sécurité. Si
/workspace/alias-out/new-filese résout via un parent lié symboliquement vers un chemin bloqué ou hors des racines autorisées configurées, le bind est rejeté. - Monter
/var/run/docker.sockrevient en pratique à donner le contrôle de l’hôte à la sandbox ; ne faites cela que délibérément. - L’accès à l’espace de travail (
workspaceAccess: "ro"/"rw") est indépendant des modes de bind.
Politique d’outils : quels outils existent/peuvent être appelés
Deux couches importent :- Profil d’outils :
tools.profileetagents.list[].tools.profile(allowlist de base) - Profil d’outils par fournisseur :
tools.byProvider[provider].profileetagents.list[].tools.byProvider[provider].profile - Politique d’outils globale/par agent :
tools.allow/tools.denyetagents.list[].tools.allow/agents.list[].tools.deny - Politique d’outils par fournisseur :
tools.byProvider[provider].allow/denyetagents.list[].tools.byProvider[provider].allow/deny - Politique d’outils de sandbox (ne s’applique que lorsqu’on est en sandbox) :
tools.sandbox.tools.allow/tools.sandbox.tools.denyetagents.list[].tools.sandbox.tools.*
denyl’emporte toujours.- Si
allown’est pas vide, tout le reste est traité comme bloqué. - La politique d’outils est l’arrêt ferme :
/execne peut pas contourner un outilexecrefusé. /execne modifie que les valeurs par défaut de session pour les expéditeurs autorisés ; il n’accorde pas l’accès aux outils. Les clés d’outil par fournisseur acceptent soitprovider(par ex.google-antigravity), soitprovider/model(par ex.openai/gpt-5.4).
Groupes d’outils (raccourcis)
Les politiques d’outils (globales, par agent, sandbox) prennent en charge les entréesgroup:* qui se développent en plusieurs outils :
group:runtime:exec,process,code_execution(bashest accepté comme alias deexec)group:fs:read,write,edit,apply_patchgroup:sessions:sessions_list,sessions_history,sessions_send,sessions_spawn,sessions_yield,subagents,session_statusgroup:memory:memory_search,memory_getgroup:web:web_search,x_search,web_fetchgroup:ui:browser,canvasgroup:automation:cron,gatewaygroup:messaging:messagegroup:nodes:nodesgroup:agents:agents_listgroup:media:image,image_generate,ttsgroup:openclaw: tous les outils OpenClaw intégrés (exclut les plugins fournisseurs)
Elevated : « exécuter sur l’hôte » réservé à exec
Elevated n’accorde pas d’outils supplémentaires ; il n’affecte queexec.
- Si vous êtes en sandbox,
/elevated on(ouexecavecelevated: true) s’exécute hors de la sandbox (des approbations peuvent toujours s’appliquer). - Utilisez
/elevated fullpour ignorer les approbations exec pour la session. - Si vous exécutez déjà en direct, elevated est effectivement sans effet (mais reste protégé par des garde-fous).
- Elevated n’est pas à portée de Skills et ne remplace pas
allow/denydes outils. - Elevated n’accorde pas de surcharges croisées arbitraires depuis
host=auto; il suit les règles normales de cible exec et ne préservenodeque lorsque la cible configurée/de session est déjànode. /execest distinct de elevated. Il n’ajuste que les valeurs par défaut exec par session pour les expéditeurs autorisés.
- Activation :
tools.elevated.enabled(et éventuellementagents.list[].tools.elevated.enabled) - Allowlists d’expéditeurs :
tools.elevated.allowFrom.<provider>(et éventuellementagents.list[].tools.elevated.allowFrom.<provider>)
Correctifs courants de « prison sandbox »
« L’outil X est bloqué par la politique d’outils de sandbox »
Clés de correction (choisissez-en une) :- Désactiver la sandbox :
agents.defaults.sandbox.mode=off(ou par agentagents.list[].sandbox.mode=off) - Autoriser l’outil dans la sandbox :
- le supprimer de
tools.sandbox.tools.deny(ou par agentagents.list[].tools.sandbox.tools.deny) - ou l’ajouter à
tools.sandbox.tools.allow(ou à l’allow par agent)
- le supprimer de
« Je pensais que c’était main, pourquoi est-ce en sandbox ? »
En mode"non-main", les clés de groupe/canal ne sont pas main. Utilisez la clé de session principale (affichée par sandbox explain) ou passez le mode à "off".
Voir aussi
- Sandboxing — référence complète du sandbox (modes, portées, backends, images)
- Sandbox multi-agent et outils — surcharges par agent et priorité
- Mode Elevated