Ambientes na cloud
Personalize as dependências e as ferramentas para o Codex
Utilize ambientes para controlar o que o Codex instala e executa durante as conversas na cloud. Por exemplo, pode adicionar dependências, instalar ferramentas como linters e formatadores e definir variáveis de ambiente.
Configure os ambientes nas definições do Codex.
Como são executadas as conversas do Codex na cloud
Eis o que acontece quando envia um pedido:
- O Codex cria um contentor e obtém o seu repositório no ramo ou SHA do commit selecionado.
- O Codex executa o seu script de configuração e, opcionalmente, um script de manutenção quando um contentor em cache é retomado.
- O Codex aplica as suas definições de acesso à Internet. Os scripts de configuração são executados com acesso à Internet. Por predefinição, o acesso do agente à Internet está desativado, mas pode ativar o acesso limitado ou sem restrições, se necessário. Consulte acesso do agente à Internet.
- O agente executa comandos de terminal num ciclo. Edita código, executa verificações e tenta validar o seu trabalho. Se o seu repositório incluir
AGENTS.md, o agente utiliza-o para encontrar comandos de lint e teste específicos do projeto. - Quando o agente termina, apresenta a resposta e um diff de todos os ficheiros que alterou. Pode abrir um PR ou fazer perguntas de seguimento.
Imagem universal predefinida
O agente Codex é executado numa imagem de contentor predefinida denominada universal, que inclui linguagens, pacotes e ferramentas comuns pré-instalados.
Nas definições do ambiente, selecione Definir versões dos pacotes para fixar as versões do Python, Node.js e de outros ambientes de execução.
Embora codex-universal inclua linguagens pré-instaladas para maior rapidez e conveniência, também pode instalar pacotes adicionais no contentor através de scripts de configuração.
Variáveis de ambiente e segredos
As variáveis de ambiente são definidas para toda a duração da conversa (incluindo os scripts de configuração e a fase do agente).
Os segredos são semelhantes às variáveis de ambiente, exceto nos seguintes aspetos:
- São armazenados com uma camada adicional de encriptação e apenas são desencriptados para a execução da tarefa.
- Apenas estão disponíveis para os scripts de configuração. Por motivos de segurança, os segredos são removidos antes do início da fase do agente.
Configuração automática
Para projetos que utilizem gestores de pacotes comuns (npm, yarn, pnpm, pip, pipenv e poetry), o Codex pode instalar automaticamente dependências e ferramentas.
Configuração manual
Se a sua configuração de desenvolvimento for mais complexa, também pode fornecer um script de configuração personalizado. Por exemplo:
# Install type checker
pip install pyright
# Install dependencies
poetry install --with test
pnpm install
Colocação de contentores em cache
O Codex mantém o estado do contentor em cache durante até 12 horas para acelerar novas conversas e seguimentos.
Quando um ambiente é colocado em cache:
- O Codex clona o repositório e obtém o ramo predefinido.
- O Codex executa o script de configuração e coloca em cache o estado resultante do contentor.
Quando um contentor em cache é retomado:
- O Codex obtém o ramo especificado para a conversa.
- O Codex executa o script de manutenção (opcional). Isto é útil quando o script de configuração foi executado num commit mais antigo e é necessário atualizar as dependências.
O Codex invalida automaticamente a cache se alterar o script de configuração, o script de manutenção, as variáveis de ambiente ou os segredos. Se o seu repositório for alterado de uma forma que torne o estado em cache incompatível, selecione Repor cache na página do ambiente.
Acesso à Internet e proxy de rede
O acesso à Internet está disponível durante a fase do script de configuração para instalar dependências. Durante a fase do agente, o acesso à Internet está desativado por predefinição, mas pode configurar o acesso limitado ou sem restrições. Consulte acesso do agente à Internet.
Os ambientes são executados por trás de um proxy de rede HTTP/HTTPS para fins de segurança e prevenção de utilização abusiva. Todo o tráfego de saída para a Internet passa por este proxy.