Skip to main content
Chaque agent d’une configuration multi-agent peut remplacer les politiques globales de bac à sable et d’outils. Cette page présente la configuration par agent, les règles de priorité et des exemples.

Mise en bac à sable

Moteurs et modes — référence complète sur le bac à sable.

Bac à sable, politique d’outils et mode privilégié

Diagnostiquer « pourquoi ceci est-il bloqué ? »

Mode privilégié

Exécution privilégiée pour les expéditeurs de confiance.
L’authentification est limitée à chaque agent : chaque agent possède son propre stockage d’authentification agentDir dans ~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite. Ne réutilisez jamais un même agentDir pour plusieurs agents. Les agents peuvent consulter les profils d’authentification de l’agent principal/par défaut lorsqu’ils ne disposent pas d’un profil local, mais les jetons d’actualisation OAuth ne sont pas clonés dans les stockages des agents secondaires. Si vous copiez manuellement des identifiants, copiez uniquement les profils statiques portables api_key ou token.

Exemples de configuration

Résultat :
  • Agent main : s’exécute sur l’hôte avec un accès complet aux outils.
  • Agent family : s’exécute dans Docker (un conteneur par agent), avec uniquement read et l’envoi de messages dans la conversation actuelle.
Résultat :
  • Les agents par défaut disposent des outils de programmation.
  • L’agent support est limité à la messagerie, avec en plus l’outil Slack.

Priorité de la configuration

Lorsque des configurations globales (agents.defaults.*) et propres à un agent (agents.list[].*) coexistent :

Configuration du bac à sable

Les paramètres propres à l’agent remplacent les paramètres globaux :
agents.list[].sandbox.{docker,browser,prune}.* remplace agents.defaults.sandbox.{docker,browser,prune}.* pour cet agent (ces paramètres sont ignorés lorsque la portée du bac à sable est résolue en "shared").

Restrictions des outils

L’ordre de filtrage est le suivant :
1

Profil d’outils

tools.profile ou agents.list[].tools.profile.
2

Profil d’outils du fournisseur

tools.byProvider[provider].profile ou agents.list[].tools.byProvider[provider].profile.
3

Politique globale d’outils

tools.allow / tools.deny.
4

Politique d’outils du fournisseur

tools.byProvider[provider].allow/deny.
5

Politique d’outils propre à l’agent

agents.list[].tools.allow/deny.
6

Politique de fournisseur de l’agent

agents.list[].tools.byProvider[provider].allow/deny.
7

Politique d’outils du bac à sable

tools.sandbox.tools ou agents.list[].tools.sandbox.tools.
8

Politique d’outils des sous-agents

tools.subagents.tools, le cas échéant.
  • Chaque niveau peut restreindre davantage les outils, mais ne peut pas réautoriser des outils refusés à un niveau antérieur.
  • Si agents.list[].tools.sandbox.tools est défini, il remplace tools.sandbox.tools pour cet agent.
  • Si agents.list[].tools.profile est défini, il remplace tools.profile pour cet agent.
  • Les clés d’outils de fournisseur acceptent soit provider (par exemple google-antigravity), soit provider/model (par exemple openai/gpt-5.4).
Si une liste d’autorisation explicite de cette chaîne ne laisse aucun outil appelable pour l’exécution, OpenClaw s’arrête avant de soumettre l’invite au modèle. Ce comportement est intentionnel : un agent configuré avec un outil manquant, comme agents.list[].tools.allow: ["query_db"], doit échouer de manière explicite jusqu’à l’activation du Plugin qui enregistre query_db, et non continuer comme un agent limité au texte.
Les politiques d’outils prennent en charge les raccourcis group:*, qui sont développés en plusieurs outils. Consultez les groupes d’outils pour obtenir la liste complète. Les remplacements du mode privilégié par agent (agents.list[].tools.elevated) peuvent restreindre davantage l’exécution privilégiée pour certains agents. Consultez la section Mode privilégié pour plus de détails.

Migration depuis un agent unique

Les anciennes clés de configuration agents.defaults.*/agents.list[].* (comme sandbox.perSession, agentRuntime, embeddedPi) sont migrées par openclaw doctor ; utilisez désormais de préférence agents.defaults avec agents.list.

Exemples de restrictions d’outils


Piège courant : "non-main"

agents.defaults.sandbox.mode: "non-main" compare la clé de session à celle de la session principale (toujours "main" ; session.mainKey n’est pas configurable par l’utilisateur, et OpenClaw avertit puis ignore toute autre valeur), et non à l’identifiant de l’agent. Les sessions de groupe ou de canal obtiennent toujours leurs propres clés ; elles sont donc considérées comme non principales et placées dans un bac à sable. Si vous souhaitez qu’un agent ne soit jamais placé dans un bac à sable, définissez agents.list[].sandbox.mode: "off".

Tests

Après avoir configuré le bac à sable et les outils pour plusieurs agents :
1

Vérifier la résolution des agents

2

Vérifier les conteneurs de bac à sable

3

Tester les restrictions d’outils

  • Envoyez un message nécessitant des outils restreints.
  • Vérifiez que l’agent ne peut pas utiliser les outils refusés.
4

Surveiller les journaux


Résolution des problèmes

  • Vérifiez si un paramètre global agents.defaults.sandbox.mode le remplace.
  • La configuration propre à l’agent est prioritaire ; définissez donc agents.list[].sandbox.mode: "all".
  • Consultez l’ordre de filtrage complet : profil → profil du fournisseur → politique globale → politique du fournisseur → politique de l’agent → politique du fournisseur de l’agent → bac à sable → sous-agent.
  • Chaque niveau peut uniquement appliquer des restrictions supplémentaires, sans réaccorder d’autorisations.
  • Consultez Bac à sable, politique des outils et mode élevé pour un débogage étape par étape.
  • La valeur par défaut de scope est "agent" (un conteneur par identifiant d’agent).
  • Définissez scope: "session" pour utiliser un conteneur par session, ou scope: "shared" pour réutiliser un même conteneur entre plusieurs agents.

Rubriques connexes