Pular para o conteúdo principal

Sandbox e aprovações

Dois ajustes, fazendo trabalhos diferentes. O sandbox decide o que o agente pode fazer; as aprovações decidem o que ele precisa perguntar antes.

O sandbox

sandbox_mode = "workspace-write"
O agente pode
read-onlyolhar arquivos, não mudá-los
workspace-writeescrever dentro do diretório de trabalho
danger-full-accesstudo o que a sua conta puder

Leituras nunca são restringidas. Só escrita e acesso à rede são, então read-only quer dizer que o agente enxerga o seu disco inteiro e não muda nada dele.

A raiz gravável é o diretório de trabalho

Sob workspace-write, «o espaço de trabalho» quer dizer o diretório em que a conversa ou a execução está aberta. Não o projeto, não o repositório — aquele diretório.

Esta é a frase mais importante da página. Uma execução aberta na sua pasta pessoal pode escrever em .ssh, Documents e Library.

E isso não é hipotético. Uma tarefa agendada criada antes de existirem departamentos carregava a pasta pessoal e já tinha rodado quarenta e duas vezes assim, cada execução alcançando tudo aquilo, sem ninguém ser consultado e sem nada ser dito. Mudar o padrão para conversas novas não a tocou, porque um padrão não é retroativo.

Por isso existe uma segunda checagem, no momento em que uma execução começa.

Onde uma execução em segundo plano pode começar

Uma execução pode começar quando o diretório dela é um que este produto já conhece:

  • dentro do espaço de trabalho
  • dentro do diretório de um departamento
  • em algum lugar que você liberou pelo nome

Qualquer outro fica retido, e aparece em Esperando por você no painel Dispatch com um botão Liberar este diretório. Liberar um lugar solta todas as execuções que o esperavam.

Perguntar é o ponto: rodar num lugar incomum costuma ser exatamente o que se queria, e a resposta é uma pergunta, não uma recusa.

Aprovações

approval_policy = "on-failure"
untrustedtodo comando que não é sabidamente seguro é mostrado antes
on-failureos comandos rodam sem supervisão; você é consultado quando um precisa de mais acesso
nevernada é mostrado antes de rodar

never também quer dizer que nada fica retido. Quem desligou as aprovações disse, com todas as letras, que não quer ser interrompido, e decidir que ele quis dizer algo mais estreito seria o produto passar por cima do próprio ajuste.

Use para um diretório onde você soltaria um script à vontade.

A combinação que pega as pessoas

sandbox_mode = "danger-full-access" com approval_policy = "never" é um agente rodando comandos arbitrários na sua máquina sem mostrar nada e sem perguntar nada. Há diretórios em que essa é a resposta certa. A sua pasta pessoal não é um deles.

Duas coisas que o sandbox não faz

  • Ele não impede o modelo de ler os seus arquivos. Leituras não são restringidas em modo nenhum.
  • Ele não cobre o que um comando que ele rodou faz depois. Um script que o agente inicia herda o sandbox; um serviço que ele inicia e que sobrevive à execução, não.