Sandbox vs politique d’outil vs Élevé
OpenClaw dispose de 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’outil (
tools.*,tools.sandbox.tools.*,agents.list[].tools.*) décide quels outils sont disponibles/autorisés. - Élevé (
tools.elevated.*,agents.list[].tools.elevated.*) est une échappatoire d’exécution uniquement pour s’exécuter sur l’hôte lorsque vous êtes en sandbox.
Débogage rapide
Utilisez l’inspecteur pour voir ce qu’OpenClaw fait réellement :- le mode/portée de sandbox effectifs et l’accès à l’espace de travail
- si la session est actuellement en sandbox (principale vs non principale)
- l’autorisation/refus effectifs des outils en sandbox (et s’ils proviennent de l’agent/global/par défaut)
- les verrous « élevé » et les chemins de clés 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 courante pour les groupes/canaux)."all": tout est en sandbox.
Bind mounts (vérification de sécurité rapide)
docker.bindsperce le système de fichiers de la sandbox : tout ce que vous montez est visible dans le 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 montages par agent (seuls les montages globaux s’appliquent).- Lier
/var/run/docker.sockrevient à donner le contrôle de l’hôte à la sandbox ; ne le faites que délibérément. - L’accès à l’espace de travail (
workspaceAccess: "ro"/"rw") est indépendant des modes de montage.
Politique d’outil : quels outils existent/sont appelables
Deux couches comptent :- Profil d’outils :
tools.profileetagents.list[].tools.profile(liste d’autorisation de base) - Profil d’outils du 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 du fournisseur :
tools.byProvider[provider].allow/denyetagents.list[].tools.byProvider[provider].allow/deny - Politique d’outils de la sandbox (s’applique uniquement 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’outil est l’arrêt dur :
/execne peut pas outrepasser 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’outils du fournisseur acceptent soitprovider(par ex.google-antigravity), soitprovider/model(par ex.openai/gpt-5.2).
Groupes d’outils (raccourcis)
Les politiques d’outils (globale, agent, sandbox) prennent en charge des entréesgroup:* qui s’étendent à plusieurs outils :
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:ui:browser,canvasgroup:automation:cron,gatewaygroup:messaging:messagegroup:nodes:nodesgroup:openclaw: tous les outils OpenClaw intégrés (exclut les plugins de fournisseurs)
Élevé : exécution uniquement « sur l’hôte »
Élevé n’accorde pas d’outils supplémentaires ; il n’affecte queexec.
- Si vous êtes en sandbox,
/elevated on(ouexecavecelevated: true) s’exécute sur l’hôte (des approbations peuvent toujours s’appliquer). - Utilisez
/elevated fullpour ignorer les approbations d’exécution pour la session. - Si vous vous exécutez déjà directement, Élevé est effectivement sans effet (toujours verrouillé).
- Élevé n’est pas limité aux Skills et ne remplace pas l’autorisation/refus des outils.
/execest distinct d’Élevé. Il n’ajuste que les valeurs par défaut d’exécution par session pour les expéditeurs autorisés.
- Activation :
tools.elevated.enabled(et éventuellementagents.list[].tools.elevated.enabled) - Listes d’autorisation d’expéditeurs :
tools.elevated.allowFrom.<provider>(et éventuellementagents.list[].tools.elevated.allowFrom.<provider>)
Correctifs courants de « prison de sandbox »
« Outil X bloqué par la politique d’outils de la 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 retirer de
tools.sandbox.tools.deny(ou par agentagents.list[].tools.sandbox.tools.deny) - ou l’ajouter à
tools.sandbox.tools.allow(ou autorisation par agent)
- le retirer de
« Je pensais que c’était la session principale, pourquoi est-elle en sandbox ? »
En mode"non-main", les clés de groupe/canal ne sont pas principales. Utilisez la clé de session principale (affichée par sandbox explain) ou passez au mode "off".