Tools

Modo elevado

Quando um agente é executado dentro de um sandbox, seus comandos exec ficam confinados ao ambiente do sandbox. O modo elevado permite que o agente saia desse ambiente e execute comandos fora do sandbox, com controles de aprovação configuráveis.

Diretivas

Controle o modo elevado por sessão com comandos de barra:

Diretiva O que faz
/elevated on Executa fora do sandbox no caminho configurado do host, mantendo as aprovações
/elevated ask Igual a on (alias)
/elevated full Executa fora do sandbox no caminho configurado do host e ignora as aprovações quando a política de aprovação do modo/host já é permissiva
/elevated off Retorna à execução confinada ao sandbox

Também disponível como /elev on|off|ask|full.

Envie /elevated sem argumento para ver o nível atual.

Como funciona

  • Verificar a disponibilidade

    O modo elevado deve estar habilitado na configuração, e o remetente deve estar na lista de permissões:

    json5
    {  tools: {    elevated: {      enabled: true,      allowFrom: {        discord: ["user-id-123"],        whatsapp: ["+15555550123"],      },    },  },}
  • Definir o nível

    Envie uma mensagem contendo somente a diretiva para definir o padrão da sessão:

    Code
    /elevated full

    Ou use-a em linha (aplica-se somente a essa mensagem):

    Code
    /elevated on run the deployment script
  • Os comandos são executados fora do sandbox

    Com o modo elevado ativo, as chamadas exec saem do sandbox. O host efetivo é gateway por padrão ou node quando o destino de exec configurado/da sessão é node. No modo full, as aprovações de exec são ignoradas quando a política de aprovação resolvida para o modo/host de exec já é totalmente permissiva (segurança full, solicitação off); caso contrário, a política de aprovação normal ainda se aplica. No modo on/ask, as regras de aprovação configuradas sempre se aplicam.

  • Ordem de resolução

    1. Diretiva em linha na mensagem (aplica-se somente a essa mensagem)
    2. Substituição da sessão (definida pelo envio de uma mensagem contendo somente a diretiva)
    3. Padrão global (agents.defaults.elevatedDefault na configuração)

    Disponibilidade e listas de permissões

    • Controle global: tools.elevated.enabled (deve ser true)
    • Lista de permissões de remetentes: tools.elevated.allowFrom com listas por canal
    • Controle por agente: agents.list[].tools.elevated.enabled (só pode restringir ainda mais; tanto o controle global quanto o controle por agente devem ser true)
    • Lista de permissões por agente: agents.list[].tools.elevated.allowFrom (o remetente deve corresponder tanto à lista global quanto à lista por agente)
    • Lista de permissões alternativa fornecida pelo canal: Plugins de canal podem, opcionalmente, fornecer uma lista de permissões alternativa por meio de um hook adaptador do SDK, usada quando tools.elevated.allowFrom.<provider> não está configurado. Atualmente, nenhum canal incluído implementa esse hook; portanto, na prática, cada provedor precisa hoje de uma entrada explícita em tools.elevated.allowFrom.<provider>.
    • Todos os controles devem ser aprovados; caso contrário, o modo elevado é tratado como indisponível

    Formatos das entradas da lista de permissões:

    Prefixo Corresponde a
    (nenhum) ID do remetente, E.164 ou campo From
    name: Nome de exibição do remetente
    username: Nome de usuário do remetente
    tag: Tag do remetente
    id:, from:, e164: Direcionamento explícito de identidade

    O que o modo elevado não controla

    • Política de ferramentas: se o exec for negado pela política de ferramentas, o modo elevado não poderá substituí-la.
    • Política de seleção de host: o modo elevado não transforma auto em uma substituição livre entre hosts. Ele usa as regras de destino de exec configuradas/da sessão, escolhendo node somente quando o destino já é node.
    • Separado de /exec: a diretiva /exec ajusta os padrões de exec por sessão (host, segurança, solicitação, node) para remetentes autorizados e não exige o modo elevado.

    Relacionados

    Was this useful?
    On this page

    On this page