Aller au contenu

Mode élevé

Lorsqu’un agent s’exécute dans un bac à sable (sandbox), ses commandes exec sont confinées à l’environnement du bac à sable. Le Mode élevé permet à l’agent de s’échapper et d’exécuter des commandes à l’extérieur du bac à sable, avec des portes d’approbation configurables.

Contrôlez le mode élevé par session avec des commandes slash :

DirectiveCe qu’elle fait
/elevated onExécuter à l’extérieur du sandbox sur le chemin d’hôte configuré, conserver les approbations
/elevated askIdentique à on (alias)
/elevated fullExécuter à l’extérieur du sandbox sur le chemin d’hôte configuré et ignorer les approbations
/elevated offRetourner à l’exécution confinée au sandbox

Également disponible sous la forme /elev on|off|ask|full.

Envoyez /elevated sans argument pour voir le niveau actuel.

  1. Vérifier la disponibilité

    Le mode élevé doit être activé dans la configuration et l’expéditeur doit figurer sur la liste d’autorisation :

    {
    tools: {
    elevated: {
    enabled: true,
    allowFrom: {
    discord: ["user-id-123"],
    whatsapp: ["+15555550123"],
    },
    },
    },
    }
  2. Définir le niveau

    Envoyez un message contenant uniquement une directive pour définir la valeur par défaut de la session :

    /elevated full

    Ou utilisez-la en ligne (s’applique uniquement à ce message) :

    /elevated on run the deployment script
  3. Commands run outside the sandbox

    Avec le mode élevé actif, les appels exec quittent le bac à sable. L’hôte effectif est gateway par défaut, ou node lorsque la cible d’exécution configurée/session est node. En mode full, les approbations d’exécution sont ignorées. En mode on/ask, les règles d’approbation configurées s’appliquent toujours.

  1. Directive en ligne sur le message (s’applique uniquement à ce message)
  2. Remplacement de session (défini en envoyant un message contenant uniquement une directive)
  3. Par défaut global (agents.defaults.elevatedDefault dans la configuration)
  • Porte globale : tools.elevated.enabled (doit être true)
  • Liste d’autorisation de l’expéditeur : tools.elevated.allowFrom avec des listes par channel
  • Porte par agent : agents.list[].tools.elevated.enabled (ne peut que restreindre davantage)
  • Liste d’autorisation par agent : agents.list[].tools.elevated.allowFrom (l’expéditeur doit correspondre à la fois à la globale + celle par agent)
  • Discord de repli : si tools.elevated.allowFrom.discord est omis, channels.discord.allowFrom est utilisé comme valeur de repli
  • Tous les portails doivent être validés ; sinon le mode élevé est considéré comme indisponible

Formats d’entrée de liste d’autorisation :

PréfixeCorrespondances
(aucun)ID de l’expéditeur, E.164 ou champ From
name:Nom d’affichage de l’expéditeur
username:Nom d’utilisateur de l’expéditeur
tag:Tag de l’expéditeur
id:, from:, e164:Ciblage d’identité explicite
  • Stratégie d’outil : si exec est refusé par la stratégie d’outil, le mode élevé ne peut pas le remplacer.
  • Stratégie de sélection de l’hôte : le mode élevé ne transforme pas auto en une substitution libre entre hôtes. Il utilise les règles de cible d’exécution configurées/session, en choisissant node uniquement lorsque la cible est déjà node.
  • Distinct de /exec : la directive /exec ajuste les valeurs par défaut d’exécution par session pour les expéditeurs autorisés et ne nécessite pas le mode élevé.

Outil Exec

Exécution de commandes shell à partir de l’agent.

Approbations Exec

Système d’approbation et de liste d’autorisation pour exec.

Sandboxing

Configuration du sandbox au niveau Gateway.

Sandbox vs Stratégie d'outil vs Mode élevé

Comment les trois portes composent lors d’un appel d’outil.