Português

Sandbox do Windows

Configure e resolva problemas da sandbox nativa do Codex no Windows

Utilize o Codex no Windows com a aplicação ChatGPT para computador nativa, a CLI ou a extensão para IDE.

A aplicação ChatGPT para computador no Windows suporta fluxos de trabalho essenciais, como conversas paralelas, worktrees, tarefas agendadas, funcionalidades do Git, o navegador integrado, pré-visualizações de ficheiros, plugins e skills.

A aplicação pode ser executada nativamente no PowerShell com uma sandbox do Windows, em vez de exigir o WSL ou uma máquina virtual. Isto mantém o Codex em fluxos de trabalho nativos do Windows, ao mesmo tempo que impõe permissões limitadas de sistema de ficheiros e de rede.

Pedido de configuração da sandbox do Windows na aplicação ChatGPT para computador, acima do campo de composição de mensagens

Utilize a aplicação ChatGPT para computador no Windows: Trabalhe em vários projetos, execute conversas paralelas e reveja os resultados num único local com a aplicação nativa do Windows.

A sandbox nativa do Windows tem dois modos:

  • nativamente no Windows com a sandbox elevated, mais robusta,
  • nativamente no Windows com a sandbox de contingência unelevated.

Configurar a sandbox do Windows

Quando executa o Codex nativamente no Windows, o modo de agente utiliza uma sandbox do Windows para bloquear escritas no sistema de ficheiros fora da pasta de trabalho e impedir o acesso à rede sem a sua aprovação explícita.

O suporte da sandbox nativa do Windows inclui dois modos que pode configurar em config.toml:

[windows]
sandbox = "elevated" # or "unelevated"

elevated é a sandbox nativa do Windows preferencial. Utiliza utilizadores de sandbox dedicados com privilégios reduzidos, limites de permissões do sistema de ficheiros, regras de firewall e alterações às políticas locais necessárias para os comandos executados na sandbox.

unelevated é a sandbox nativa do Windows de contingência. Executa comandos com um token restrito do Windows derivado do seu utilizador atual, aplica limites ao sistema de ficheiros baseados em ACL e utiliza controlos offline ao nível do ambiente, em vez da regra de firewall dedicada ao utilizador offline. É menos robusta do que elevated, mas continua a ser útil quando a configuração aprovada pelo administrador é bloqueada por políticas locais ou empresariais.

Se ambos os modos estiverem disponíveis, utilize elevated. Se a sandbox nativa predefinida não funcionar no seu ambiente, utilize unelevated como contingência enquanto resolve os problemas de configuração.

Os administradores empresariais podem limitar as implementações da sandbox nativa que o Codex pode utilizar através de requirements.toml:

[windows]
allowed_sandbox_implementations = ["elevated"]

Este exemplo exige a sandbox elevated e impede que os utilizadores recorram a unelevated. Para permitir qualquer uma das implementações, inclua ambos os valores; o Codex dá preferência a elevated quando nenhum modo está selecionado. Consulte a referência de requirements.toml para conhecer os valores suportados.

Por predefinição, ambos os modos de sandbox também utilizam um ambiente de trabalho privado para reforçar o isolamento da interface de utilizador. Defina windows.sandbox_private_desktop = false apenas se necessitar do comportamento Winsta0\\Default anterior por motivos de compatibilidade.

Permissões da sandbox

Matriz de versões do Windows

Versão do Windows Nível de suporte Notas
Windows 11 Recomendado A melhor base para o Codex no Windows. Utilize esta versão se estiver a normalizar uma implementação empresarial.
Windows 10 recente e atualizado Melhor esforço Pode funcionar, mas é menos fiável do que o Windows 11. No Windows 10, o Codex depende de suporte de consola moderno, incluindo ConPTY. Na prática, é necessário o Windows 10 versão 1809 ou posterior.
Compilações antigas do Windows 10 Não recomendado É mais provável que não incluam componentes de consola necessários, como ConPTY, e que falhem em configurações empresariais.

Pressupostos adicionais do ambiente:

  • winget deve estar disponível. Se estiver em falta, atualize o Windows ou instale o Windows Package Manager antes de configurar o Codex.
  • A sandbox nativa recomendada depende de uma configuração aprovada pelo administrador.
  • Alguns dispositivos geridos por empresas bloqueiam os passos de configuração necessários, mesmo quando a própria versão do SO é aceitável.

Conceder acesso de leitura à sandbox

Quando um comando falha porque a sandbox do Windows não consegue ler um diretório, utilize:

/sandbox-add-read-dir C:\absolute\directory\path

O caminho tem de ser um diretório absoluto existente. Após a execução bem-sucedida do comando, os comandos posteriores executados na sandbox podem ler esse diretório durante a sessão atual.

Utilize a sandbox nativa do Windows por predefinição. Escolha o WSL quando precisar de ferramentas nativas do Linux, o seu fluxo de trabalho já estiver no WSL2 ou nenhum dos modos da sandbox nativa do Windows satisfizer as suas necessidades.

Resolução de problemas e perguntas frequentes

Se estiver a resolver problemas numa máquina Windows gerida, comece pelo modo da sandbox nativa, pela versão do Windows e por qualquer erro de política apresentado pelo Codex. A maioria dos problemas de suporte nativo do Windows resulta da configuração da sandbox, dos direitos de início de sessão ou das permissões do sistema de ficheiros, e não do próprio editor.

A configuração da minha sandbox nativa falhou

Se o Codex não conseguir concluir a configuração da sandbox elevated, as causas mais comuns são:

  • o pedido do UAC do Windows ou do administrador foi recusado,
  • a máquina não permite a criação de utilizadores ou grupos locais,
  • a máquina não permite alterações às regras de firewall,
  • a máquina bloqueia os direitos de início de sessão necessários aos utilizadores da sandbox,
  • ou outra política empresarial bloqueia parte do fluxo de configuração.

O que experimentar:

  1. Tente configurar novamente a sandbox elevated e aprove o pedido do administrador se o seu ambiente o permitir.
  2. Se o portátil da sua empresa bloquear esta ação, pergunte à sua equipa de TI se a máquina permite uma configuração aprovada pelo administrador para a criação de utilizadores/grupos locais, a configuração do firewall e os direitos de início de sessão necessários aos utilizadores da sandbox.
  3. Se a configuração predefinida continuar a falhar, utilize a sandbox unelevated para poder continuar a trabalhar enquanto o problema é investigado.

O Codex mudou-me para a sandbox sem elevação de privilégios

Isto significa que o Codex não conseguiu concluir a configuração da sandbox elevated, mais robusta, na sua máquina.

  • O Codex ainda pode ser executado num modo com sandbox.
  • Continua a aplicar limites ao sistema de ficheiros baseados em ACL, mas não utiliza o limite de utilizador de sandbox separado de elevated e tem um isolamento de rede menos robusto.
  • Esta é uma contingência útil, mas não é a configuração empresarial preferencial a longo prazo.

Se estiver num portátil empresarial gerido, a melhor solução a longo prazo é, normalmente, conseguir que a sandbox elevated funcione com a ajuda da sua equipa de TI.

Vejo o erro 1385 do Windows

Se os comandos executados na sandbox falharem com o erro 1385, o Windows está a recusar o tipo de início de sessão de que o utilizador da sandbox necessita para iniciar o comando.

Na prática, isto significa geralmente que o Codex criou os utilizadores da sandbox com êxito, mas a política do Windows continua a impedir que esses utilizadores iniciem comandos na sandbox.

O que fazer:

  1. Pergunte à sua equipa de TI se a política do dispositivo concede os direitos de início de sessão necessários aos utilizadores da sandbox criados pelo Codex.
  2. Compare diferenças de política de grupo ou de OU se o problema afetar apenas algumas máquinas ou equipas.
  3. Se precisar de continuar a trabalhar imediatamente, utilize a sandbox unelevated enquanto o problema de política é investigado.
  4. Envie CODEX_HOME/.sandbox/sandbox.log juntamente com a sua versão do Windows e uma breve descrição da falha.

O Codex avisa que algumas pastas permitem escrita por Everyone

O Codex pode avisar que algumas pastas permitem escrita por Everyone.

Se vir este aviso, as permissões do Windows nessas pastas são demasiado abrangentes para que a sandbox as proteja totalmente.

O que fazer:

  1. Reveja as pastas indicadas pelo Codex no aviso.
  2. Remova o acesso de escrita de Everyone dessas pastas, se isso for adequado ao seu ambiente.
  3. Reinicie o Codex ou execute novamente a configuração da sandbox depois de corrigir essas permissões.

Se não souber ao certo como alterar essas permissões, peça ajuda à sua equipa de TI.

Os comandos executados na sandbox não conseguem aceder à rede

Algumas conversas do Codex são executadas intencionalmente sem acesso de saída à rede, consoante o modo de permissões utilizado.

Se uma tarefa falhar por não conseguir aceder à rede:

  1. Verifique se a tarefa deveria ser executada com a rede desativada.
  2. Se esperava ter acesso à rede, reinicie o Codex e tente novamente.
  3. Se o problema persistir, recolha o registo da sandbox para que a equipa possa verificar se a máquina se encontra num estado parcial ou incorreto da sandbox.

A sandbox funcionava anteriormente e depois deixou de funcionar

Isto pode acontecer após:

  • mover um repositório ou espaço de trabalho,
  • alterar as permissões da máquina,
  • alterar as políticas do Windows,
  • ou outras alterações à configuração do sistema.

O que experimentar:

  1. Reinicie o Codex.
  2. Tente configurar novamente a sandbox elevated.
  3. Se isso não resolver o problema, utilize a sandbox unelevated como solução de contingência temporária.
  4. Recolha o registo da sandbox para análise.

Preciso de enviar diagnósticos à OpenAI

Se os problemas persistirem, envie:

  • CODEX_HOME/.sandbox/sandbox.log

Também é útil incluir:

  • uma breve descrição do que estava a tentar fazer,
  • se a sandbox elevated falhou ou se foi utilizada a sandbox unelevated,
  • qualquer mensagem de erro apresentada na aplicação,
  • se viu 1385 ou outro erro do Windows ou do PowerShell,
  • e se utiliza o Windows 11 ou o Windows 10.

Não envie:

  • o conteúdo de CODEX_HOME/.sandbox-secrets/

A extensão para IDE está instalada, mas não responde

O seu sistema pode não ter ferramentas de desenvolvimento C++, exigidas por algumas dependências nativas:

  • Visual Studio Build Tools (carga de trabalho C++)
  • Microsoft Visual C++ Redistributable (x64)
  • Com winget, execute winget install --id Microsoft.VisualStudio.2022.BuildTools -e

Em seguida, reinicie totalmente o VS Code após a instalação.