Ferramentas de IA para Código

Modos de Sandbox e Aprovação do Codex: Guia Completo (2026)

21 de ago. de 202611 min de leitura

O Codex divide a segurança em duas configurações independentes: o modo sandbox (o que o agente PODE fazer) e a política de aprovação (quando ele deve PERGUNTAR antes de fazer). O padrão é workspace-write + on-request. Nunca combine danger-full-access com never (ou --yolo) fora de um ambiente descartável. Este guia cobre os três modos de sandbox, as três políticas de aprovação, como alterná-los via CLI/config.toml, a nova camada Permission Profiles e uma tabela de decisão para escolher o par certo em menos de um minuto.

- Os mecanismos de sandbox/aprovação do Codex (e a nova camada Permission Profiles) mudam rápido, e a documentação oficial está atualmente dividida em vários caminhos em learn.chatgpt.com; os detalhes abaixo foram conferidos com a documentação oficial no momento em que escrevo (08/2026) - verifique a documentação ao vivo antes de depender dela.

Modo sandbox vs. política de aprovação - duas perguntas diferentes

O Codex faz a si mesmo duas perguntas totalmente separadas antes de fazer qualquer coisa: "O que eu ESTOU AUTORIZADO a fazer?" (modo sandbox) e "Quando eu devo PERGUNTAR primeiro?" (política de aprovação). Segundo a documentação oficial learn.chatgpt.com/codex/sandboxing, as duas camadas funcionam de forma independente - um sandbox totalmente aberto não significa que o Codex pare de te perguntar, e uma política de aprovação rígida não significa que o Codex fique automaticamente limitado no que pode tocar.

Novo no Codex? Leia o que é o OpenAI Codex antes deste mergulho na configuração. Uma linha para evitar confusão: este é o sistema de permissões do próprio Codex - não tem nada a ver com instalar o AgentKit por cima dele.

Os três modos de sandbox

O modo sandbox decide o que o Codex pode tocar na sua máquina SEM esperar sua confirmação. Segundo a documentação oficial de sandbox (acessada em 08/2026), há três níveis:

Modo sandboxO que o Codex pode fazerNível de risco
read-onlyApenas lê arquivos; não pode escrever/modificar nada no disco nem executar comandos com efeitos colaterais.Baixo
workspace-write (padrão)Lê/escreve dentro do diretório do workspace atual (mais alguns caminhos temporários do sistema); qualquer coisa fora desse escopo ainda precisa de aprovação separada.Médio
danger-full-accessSem fronteira de sistema de arquivos - lê/escreve em qualquer lugar onde o processo do Codex tenha permissão de nível de SO para tocar.Alto

O workspace-write é o que o Codex escolhe por padrão quando você não especifica nada - também é o que eu uso na maior parte do dia a dia de programação, já que é amplo o suficiente para trabalho de verdade sem abrir a máquina inteira.

Exemplo rápido: abra o Codex em um repositório em que você já está programando, não mude nada, e ele assume workspace-write por padrão - livre para editar arquivos dentro do repositório. Mas se ele tentar escrever fora desse escopo (digamos, tocar em ~/.ssh/ ou em outro diretório do sistema), isso é uma ação fora do sandbox - ela é bloqueada de vez ou dispara um passo de pergunta separado, dependendo da política de aprovação definida ao mesmo tempo.

As três políticas de aprovação

A política de aprovação decide quando o Codex deve PARAR e te perguntar, totalmente separada do que ele está autorizado a fazer. Segundo a documentação oficial de aprovações e segurança de agentes (acessada em 08/2026), há três níveis:

Política de aprovaçãoQuando o Codex pergunta
untrustedPergunta antes da maioria dos comandos, mesmo os que parecem inofensivos - a configuração mais cautelosa.
on-request (padrão para pastas versionadas)O Codex decide sozinho quais comandos são seguros para executar diretamente e só pergunta quando julga um comando arriscado ou fora do sandbox atual.
neverNunca pergunta - segue direto conforme o modo sandbox definido, incluindo comandos arriscados.

A parte que a maioria dos guias ignora: a documentação oficial afirma que on-request é o padrão "para pastas versionadas" - não um padrão incondicional para toda pasta. Quase todos os outros guias que eu verifiquei (nos dois idiomas) pulam essa condição. Se você estiver rodando o Codex fora de um diretório versionado pelo git, não presuma que on-request esteja ativo - confira a sua configuração real.

Como alternar modos - /permissions, flags da CLI, config.toml

Três formas comuns de definir o modo sandbox + a política de aprovação:

  • Na sessão (CLI): digite /permissions para abrir o seletor e escolher direto.
  • IDE/desktop: um controle de permissão bem no compositor.
  • Flags de inicialização: --sandbox e --ask-for-approval.
  • Configuração persistente: as chaves sandbox_mode e approval_policy em ~/.codex/config.toml.

Um exemplo real para um pipeline de CI (ninguém por perto para responder prompts):

codex --sandbox read-only --ask-for-approval never

Esse par funciona em execuções não interativas porque o Codex nunca para para esperar entrada (never), enquanto read-only impede que ele escreva qualquer coisa inesperada. Essa configuração combina diretamente com o modo como você monta o AGENTS.md para o Codex - veja o guia de AGENTS.md para o Codex para juntar os dois em um único fluxo de trabalho.

Permission Profiles - a camada de configuração mais nova

Além do par clássico sandbox_mode/approval_policy acima, o Codex tem uma camada de configuração mais nova: os Permission Profiles, confirmados por uma consulta direta a learn.chatgpt.com/docs/permissions (acessada em 08/2026). Como funciona:

  • A chave default_permissions aponta para um perfil interno ou personalizado.
  • Três perfis internos: :read-only, :workspace, :danger-full-access - correspondendo aproximadamente aos três modos de sandbox acima, só que com nomes diferentes.
  • Você pode escrever seu próprio perfil com uma tabela [permissions.<name>], declarando quais caminhos são legíveis, graváveis ou explicitamente negados.
  • O acesso à rede é separado: network.enabled (rede ligada/desligada) é distinto de features.network_proxy (roteado por um proxy controlado).

Sinceramente: quase ninguém cobre isso nos resultados de busca que eu verifiquei enquanto pesquisava este texto - só um artigo menciona, e de forma isolada, nunca colocado ao lado do par sandbox_mode/approval_policy para comparação. E uma coisa que a documentação oficial não deixa clara: a precedência se você definir default_permissions e sandbox_mode/approval_policy ao mesmo tempo. Algumas fontes não oficiais chutam que sandbox_mode vence, mas eu não encontrei uma página de documentação primária confirmando isso diretamente - então não trate como fato. O movimento seguro na prática: escolha um sistema e seja consistente - ou o par legado completo, ou os Permission Profiles completos, não misture os dois.

Um exemplo conceitual para você visualizar o valor real dessa camada (não é sintaxe de campo oficial confirmada): você quer um perfil que leia o repositório inteiro, mas só possa escrever em um diretório logs/, negando explicitamente alguns caminhos sensíveis como .env ou .ssh/ mesmo que, de outro modo, eles caíssem dentro do escopo de leitura mais amplo. Esse é um controle por caminho que o par clássico sandbox_mode/approval_policy (apenas três níveis amplos) não consegue fazer. Verifique a sintaxe exata dos campos na documentação ao vivo antes de confiar nela, já que esta é uma parte da documentação adicionada recentemente.

Tabela de decisão - qual modo para qual tarefa

Esta é a tabela que eu de fato uso para decidir em menos de um minuto, em vez de repensar tudo toda vez que abro o Codex:

Cenáriosandbox_modeapproval_policyPor quê
Somente leitura, planejamentoread-onlyon-requestNada para escrever, então é seguro mesmo se o Codex avaliar mal um risco.
Programação do dia a dia num repositório local (o próprio padrão do Codex)workspace-writeon-requestAcesso suficiente para trabalho de verdade, enquanto o Codex ainda pergunta em comandos arriscados ou fora do sandbox.
Tarefas locais repetitivas e confiáveisworkspace-writeuntrustedUm pouco contraintuitivo: use untrusted (pergunta mais) em tarefas repetitivas para confirmar rápido, passo a passo, em vez de pular tudo com never.
CI/CD, não interativoread-only (ou um workspace-write bem restrito)neverNão há ninguém para clicar em aprovar, então tem que ser never; mantenha o sandbox o mais restrito possível para compensar.
Precisa mesmo de acesso ao sistema inteirodanger-full-accesson-requestAinda mantém uma camada de pergunta antes de o Codex tocar em algo perigoso fora do workspace.
Somente sandbox descartável (contêiner/VM de uso único)danger-full-accessnever/--yoloO par mais arriscado só é aceitável quando a máquina inteira é descartável depois da sessão.

Uma linha para lembrar: nunca combine danger-full-access com never/--yolo fora de um ambiente descartável. É a única linha desta tabela que abre mão das duas camadas de segurança de uma vez.

A lição de segurança em produção - um tapa de verdade

A tabela acima soa razoável no papel, mas o motivo de ela existir não é teórico. O próprio artigo deste site como usar o /goal com eficácia conta o "Slap #1": o objetivo estava escrito com clareza - fazer deploy apenas em staging - mas depois de alguns auto-compactos, o agente saiu de contexto, esqueceu o limite e fez deploy direto em produção, mesmo com um hook lembrando-o da tarefa após cada compactação.

É exatamente essa a falha que esta tabela de decisão evita: a linha de segurança precisa morar em um sandbox_mode/approval_policy real (um limite técnico que o Codex tem de obedecer), não numa nota dentro de um prompt ou objetivo (algo que um agente pode esquecer depois de compactação de contexto suficiente). Se o seu ambiente de produção estiver em qualquer lugar ao alcance do Codex, não defina approval_policy = never para esse escopo, por mais certeza que você tenha de já ter dito para ele não fazer.

Em outras palavras, a tabela de decisão acima não é um exercício teórico para pendurar na parede. É a resposta técnica para exatamente a pergunta que o Slap #1 levanta: como impedir que um agente persistente que saiu de contexto toque em algo que não deveria. Um lembrete em prompt pode ser esquecido; um limite definido em sandbox_mode/approval_policy não pode.

O AgentKit roda dentro do modo que você escolher

Para ser direta sobre o limite: o AgentKit não toca nem contorna o sandbox ou a política de aprovação do Codex. Ele é só uma camada de skills/fluxo de trabalho que roda dentro de qualquer modo ativo no momento - se você definir read-only + untrusted, o AgentKit fica preso a esse mesmo limite, sem nenhum privilégio próprio. Instalando para o Codex: ak kit init engineer --target codex, depois chame $ak:cook dentro de uma nova sessão do Codex - veja como usar o AgentKit com o Codex para o passo a passo completo.

Quer workflows/skills prontos que ficam dentro do sandbox que você escolher? O AgentKit Engineer Kit adiciona ak:cook, ak:code-review, ak:ship para o Codex - ele não muda nenhuma das permissões existentes do Codex, você continua controlando sandbox/aprovação exatamente como antes.

Adquira o AgentKit Engineer Kit - 20% de desconto, agora $79.20 →

Perguntas frequentes (FAQ)

Qual é o modo sandbox padrão do Codex?

workspace-write - o Codex pode ler/escrever dentro do diretório do workspace atual, sem acesso livre ao sistema todo. Ele se combina com a política de aprovação padrão, on-request, para pastas versionadas.

on-request sempre pergunta antes de cada comando?

Não. O on-request deixa o Codex decidir sozinho quais comandos são seguros para executar diretamente, e só pergunta quando julga um comando arriscado ou fora do escopo do sandbox atual - diferente de untrusted, que pergunta antes da maioria dos comandos.

Qual é a diferença entre danger-full-access e --yolo?

danger-full-access é um valor de sandbox_mode (remove a fronteira do sistema de arquivos). --yolo (a flag que contorna os dois) vai além - ela junta o sandbox mais amplo com uma política de aprovação never em uma única flag, o que a torna mais arriscada do que danger-full-access sozinho. Confirme o nome exato da flag na sua instalação antes de usá-la, já que essa superfície muda com frequência.

Dá para usar Permission Profiles e sandbox_mode juntos?

Tecnicamente você pode declarar os dois, mas a documentação oficial não deixa claro qual vence em um conflito. Não trate nenhuma afirmação de precedência como confirmada - a abordagem segura é escolher um sistema (legado ou Permission Profiles) e manter a consistência.

Qual modo você deve usar para CI/CD?

read-only (ou um workspace-write bem restrito) combinado com never - como não há ninguém para responder prompts em um pipeline, a aprovação tem que ser never, então compense com o sandbox mais apertado que ainda funcione.

O /permissions altera meu config.toml permanentemente?

Esse é um detalhe para verificar ao vivo antes de depender dele - o comportamento pode diferir entre uma mudança só de sessão e algo realmente gravado de volta no config.toml. A checagem mais segura é abrir o config.toml depois de trocar pelo seletor e confirmar você mesma se foi salvo.

Conclusão

O modelo de segurança do Codex se resume a duas camadas independentes: o modo sandbox (o que ele pode fazer) e a política de aprovação (quando ele deve perguntar). O padrão workspace-write + on-request serve para a maior parte da programação do dia a dia; nunca combine danger-full-access com never/--yolo fora de um ambiente descartável. Use a tabela de decisão acima em vez de adivinhar, e lembre-se da lição do Slap #1: a linha de segurança pertence à configuração, não a uma nota em prompt.

J

Jasmine

Autora · Jasmine Daily

A autora por trás do Jasmine Daily - anotando pensamentos, experiências e momentos do dia a dia. Honesta, sem pressa, imperfeita.

Jasmine Daily

Tem mais coisa esperando para ser lida.

Se este texto falou com você, explore mais algumas páginas do diário.

Leia a seguir

Posts relacionados