For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegação principal

Sandbox

Como funciona o ambiente isolado nos clientes do ChatGPT e do Codex

O sandbox é o limite que permite ao agente agir de forma autônoma sem conceder a ele acesso irrestrito à sua máquina. Quando um chat local executa comandos no aplicativo do ChatGPT para desktop, na Codex CLI ou na extensão para IDE, esses comandos são executados em um ambiente restrito, em vez de terem acesso completo por padrão.

Esse ambiente define o que o agente pode fazer por conta própria, como quais arquivos ele pode modificar e se os comandos podem acessar a rede. Quando uma tarefa permanece dentro desses limites, o agente pode prosseguir sem parar para pedir confirmação. Quando precisa ultrapassá-los, o fluxo de aprovação entra em ação.

O ambiente isolado e as aprovações são controles diferentes que funcionam em conjunto. O sandbox define limites técnicos. A política de aprovação determina quando o agente deve parar e solicitar aprovação antes de ultrapassá-los.

O que o sandbox faz

O sandbox se aplica aos comandos iniciados pelo agente, não apenas às operações integradas com arquivos. Se o agente executar ferramentas como git, gerenciadores de pacotes ou executores de testes, esses comandos herdarão os mesmos limites do sandbox.

Em cada sistema operacional, o Codex impõe os limites usando mecanismos nativos da plataforma. A implementação varia entre macOS, Linux, WSL2 e Windows nativo, mas a ideia é a mesma em todas as interfaces: oferecer ao agente um espaço delimitado para trabalhar, permitindo que tarefas rotineiras sejam executadas de forma autônoma dentro de limites claros.

Por que isso é importante

O sandbox reduz o cansaço causado por pedidos constantes de aprovação. Em vez de pedir que você confirme cada comando de baixo risco, o agente pode ler arquivos, fazer alterações e executar comandos rotineiros do projeto dentro dos limites que você já aprovou.

Ele também oferece um modelo de confiança mais claro para o trabalho agêntico. Você não está apenas confiando nas intenções do agente; está confiando que ele opera dentro de limites impostos tecnicamente. Assim, fica mais fácil deixar o agente trabalhar de forma independente sem deixar de saber quando ele vai parar e pedir ajuda.

Primeiros passos

O modo de permissões padrão aplica o ambiente isolado automaticamente.

Pré-requisitos

No macOS, o ambiente isolado funciona sem configuração adicional usando o framework Seatbelt integrado.

No Windows, o Codex usa o sandbox do Windows nativo quando é executado no PowerShell e a implementação do sandbox no Linux quando é executado no WSL2.

No Linux e no WSL2, primeiro instale bubblewrap com seu gerenciador de pacotes:

Escolha uma opção
sudo apt install bubblewrap

O Codex usa o primeiro executável bwrap que encontra no PATH. Se não houver nenhum executável bwrap disponível, o Codex recorre a um utilitário auxiliar incluído, mas esse utilitário exige suporte à criação de namespaces de usuário sem privilégios. Instalar o pacote da distribuição que fornece bwrap mantém essa configuração confiável.

O Codex exibe um aviso na inicialização quando bwrap não está disponível ou quando o utilitário auxiliar não consegue criar o namespace de usuário necessário. Em distribuições que restringem essa configuração do AppArmor, prefira carregar o perfil bwrap do AppArmor para que bwrap possa continuar funcionando sem desativar a restrição globalmente.

Observação sobre o AppArmor no Ubuntu: no Ubuntu 25.04, instalar bubblewrap pelo repositório de pacotes do Ubuntu deve funcionar sem configuração adicional do AppArmor. O perfil bwrap-userns-restrict é fornecido no pacote apparmor, no caminho /etc/apparmor.d/bwrap-userns-restrict.

No Ubuntu 24.04, o Codex ainda pode avisar que não consegue criar o namespace de usuário necessário após a instalação de bubblewrap. Copie e carregue o perfil adicional:

sudo apt update
sudo apt install apparmor-profiles apparmor-utils
sudo install -m 0644 \
  /usr/share/apparmor/extra-profiles/bwrap-userns-restrict \
  /etc/apparmor.d/bwrap-userns-restrict
sudo apparmor_parser -r /etc/apparmor.d/bwrap-userns-restrict

apparmor_parser -r carrega o perfil no kernel sem exigir reinicialização. Você também pode recarregar todos os perfis do AppArmor:

sudo systemctl reload apparmor.service

Se esse perfil não estiver disponível ou não resolver o problema, você poderá desativar a restrição do AppArmor para namespaces de usuário sem privilégios com:

sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0

Como funcionam as permissões

Use o controle de permissões da sua interface para mudar como o Codex lida com ações locais.

As aprovações determinam quando o Codex faz uma pausa antes de uma ação, enquanto o sandbox determina quais arquivos e recursos de rede os comandos podem acessar. Quando uma aprovação oferece diferentes escopos, como aprovar uma única vez ou durante toda a sessão, escolha o escopo mais restrito que permita continuar a tarefa. Mantenha o limite do projeto como padrão; use projetos ou árvores de trabalho separados em vez de ampliar o acesso a repositórios não relacionados.

No aplicativo do ChatGPT para desktop, use o controle de permissões abaixo do editor. Dependendo da sua configuração, o menu pode incluir Pedir aprovação, Aprovar por mim para solicitações de aprovação elegíveis, Acesso completo e perfis de permissões nomeados ou personalizados.

Ask Codex anything.

Ask for approval

Codex can read and edit files in the current workspace and run routine local commands. It asks before using the internet or going beyond the workspace boundary.

Sandbox
workspace-write
Approvals policy
on-request
Reviewer
user

Configurar valores padrão

Para começar sempre com o mesmo comportamento, defina os valores padrão em config.toml. A página Configuração básica explica como isso funciona, e a Referência de configuração documenta as chaves exatas de sandbox_mode, approval_policy, approvals_reviewer e sandbox_workspace_write.writable_roots. Use essas configurações para definir o grau de autonomia que o agente terá por padrão, em quais diretórios ele poderá gravar, quando deverá pausar para solicitar aprovação e quem revisará as solicitações de aprovação elegíveis.

Em linhas gerais, os modos comuns do sandbox são:

  • read-only: o agente pode inspecionar arquivos, mas não pode editá-los nem executar comandos sem aprovação.
  • workspace-write: o agente pode ler arquivos, fazer alterações no workspace e executar comandos locais rotineiros dentro desse limite. Esse é o modo padrão para trabalhar localmente com menos interrupções.
  • danger-full-access: o agente opera sem as restrições do sandbox. Isso remove os limites do sistema de arquivos e da rede e só deve ser usado quando você quiser que o agente atue com acesso completo.

As políticas de aprovação comuns são:

  • on-request: o agente trabalha dentro do sandbox por padrão e solicita aprovação quando precisa ultrapassar esse limite.
  • never: o agente não para para solicitar aprovação.

O Codex e o ChatGPT Work não oferecem mais suporte a untrusted como política de aprovação selecionável. Se uma configuração existente usar esse valor, consulte Migrar da política de aprovação untrusted descontinuada.

Quando as aprovações são interativas, você também pode escolher quem as revisa com approvals_reviewer:

  • user: as solicitações de aprovação são exibidas ao usuário. Essa é a opção padrão.
  • auto_review: as solicitações de aprovação elegíveis são encaminhadas a um agente revisor (consulte revisão automática).

Acesso completo significa usar sandbox_mode = "danger-full-access" em conjunto com approval_policy = "never". Já a configuração predefinida de menor risco para automação local é sandbox_mode = "workspace-write" em conjunto com approval_policy = "on-request", ou as flags equivalentes da CLI --sandbox workspace-write --ask-for-approval on-request. Você pode então manter approvals_reviewer = "user" para aprovações manuais ou definir approvals_reviewer = "auto_review" para revisão automática das solicitações de aprovação.

Se você precisar que o agente trabalhe em mais de um diretório, os diretórios raiz com permissão de escrita permitem ampliar os locais que ele pode modificar sem remover inteiramente o sandbox. Se precisar de um limite de confiança mais amplo ou mais restrito, ajuste o modo padrão do sandbox e a política de aprovação em vez de depender de exceções pontuais.

Quando um fluxo de trabalho precisar de uma exceção específica, use regras. As regras permitem autorizar, exigir aprovação ou proibir a execução de comandos com determinados prefixos fora do sandbox, o que costuma ser mais adequado do que ampliar o acesso de forma abrangente. Para saber onde acessar as configurações específicas da IDE, consulte Configurações da extensão do Codex para IDE.

A revisão automática, quando disponível, não altera o limite do sandbox. Ela é uma das opções de approvals_reviewer para solicitações de aprovação nesse limite, como elevações de permissões do sandbox, acesso bloqueado à rede ou chamadas de ferramentas que alteram o estado e ainda precisam de aprovação. As ações já permitidas dentro do sandbox são executadas sem revisão adicional. Para saber mais sobre o ciclo de vida do revisor, os tipos de gatilho, a semântica das recusas e os detalhes de configuração, consulte revisão automática.

Os detalhes de cada plataforma estão na documentação específica dela. Para informações sobre configuração, comportamento e solução de problemas no Windows nativo, consulte Windows. Para requisitos de administração e restrições da organização sobre ambiente isolado e aprovações, consulte Aprovações do agente e segurança.