Os contêineres ChatGPT agora podem executar pacotes de instalação bash, pip/npm e baixar arquivos
Os contêineres ChatGPT agora podem executar pacotes de instalação bash, pip/npm e baixar arquivos
26 de janeiro de 2026
Um dos meus recursos favoritos do ChatGPT é a capacidade de escrever e executar código em um contêiner. Este recurso lançado como ChatGPT Code Interpreter há quase três anos, foi renomeado sem entusiasmo para “Análise Avançada de Dados” em algum momento e geralmente é muito difícil de encontrar documentação detalhada sobre ele. Caso em questão: parece ter tido um enorme atualizei em algum momento nos últimos meses e não consigo encontrar documentação sobre os novos recursos em lugar nenhum!
Aqui estão os novos recursos mais notáveis:
- ChatGPT pode execute comandos Bash diretamente agora. Anteriormente, ele era limitado apenas ao código Python, embora pudesse executar comandos shell por meio do Python
subprocessmódulo. - Possui Node.js e pode executar JavaScript diretamente além do Python. Eu também consegui executar “hello world” em Ruby, Perl, PHP, Go, Java, Swift, Kotlin, C e C++. Ainda não há ferrugem!
- Embora o contêiner ainda não consiga fazer solicitações de rede de saída,
pip install packageenpm install packageambos trabalham agora por meio de um mecanismo de proxy personalizado. - ChatGPT pode localizar a URL de um arquivo na web e usar um
container.downloadferramenta para baixe esse arquivo e salve-o em um caminho dentro do contêiner em sandbox.
Esta é uma atualização substancial! ChatGPT agora pode escrever e testar código em 10 novos idiomas (11 se você contar o Bash), pode encontrar arquivos online e baixá-los no contêiner e pode instalar pacotes adicionais via pip e npm para ajudá-lo a resolver problemas.
(OpenAI realmente precisam desenvolver hábitos melhores para manter suas notas de lançamento atualizadas!)
Inicialmente, suspeitei que talvez tivesse encontrado um novo recurso de visualização que não estava disponível para todos, mas tentei alguns experimentos em uma conta ChatGPT gratuita e confirmei que os novos recursos também estão disponíveis lá.
contêiner.download
Minha primeira pista sobre os novos recursos veio outro dia, quando fiquei curioso sobre a qualidade do ar de Los Angeles. Em particular, o número crescente de veículos elétricos teve um impacto mensurável?
Invoquei uma nova sessão de reflexão do GPT-5.2 com:
Mostre-me a qualidade do ar de Los Angeles ao longo do tempo nos últimos 20 anos
Aqui está a transcrição compartilhada. Irritantemente, isso não disponibiliza o rastro de pensamento, então aqui está uma captura de tela:

Essa parte imediatamente chamou minha atenção:
(…) O URL da mensagem de erro leva a um arquivo Excel contendo tendências de qualidade do ar. Posso usar a ferramenta container.download para buscá-lo. (…)
O que é container.download? Perguntei ao ChatGPT:
Sem fazer nenhuma pesquisa, conte-me sobre sua ferramenta container.download
E voltei:
Claro.
container.downloadé uma ferramenta integrada que posso chamar assim busca um arquivo de uma URL e o salva no sistema de arquivos contêiner em área restrita para esta sessão de bate-papo.O que isso faz
- Leva um URL acessível publicamente e um caminho do arquivo de destino no contêiner.
- Baixa os bytes desse URL e os grava no caminho fornecido.
- Depois disso, posso ler/processar o arquivo localmente no contêiner (por exemplo, descompactá-lo, analisá-lo com Python, abri-lo como uma imagem, convertê-lo, etc.).
Assinatura (entradas)
É chamado assim (conceitualmente):
{ "url": "https://example.com/somefile.zip", "filepath": "/mnt/data/somefile.zip" }
Outras experiências confirmaram que container.download se comporta conforme descrito.
Fiz o download de um arquivo de um servidor com logs habilitados e capturei o endereço IP e o agente do usuário. Aqui estão os cabeçalhos mais interessantes:
User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot
Accept: text/html, application/xhtml+xml, application/xml;q=0.9, image/avif, image/webp, image/apng, */*;q=0.8, application/signed-exchange;v=b3;q=0.9
Cf-Connecting-Ip: 52.230.164.178
Que 52.230.164.178 O endereço IP é resolvido para Microsoft Azure Cloud (centralus) em Des Moines, Iowa.
Container.download é uma vulnerabilidade de exfiltração de dados?
Por um lado, isto é realmente útil! O ChatGPT pode navegar por sites em busca de arquivos úteis, baixar esses arquivos para um contêiner e processá-los usando Python ou outras linguagens.
Esta é uma vulnerabilidade de exfiltração de dados? Um ataque de injeção imediata poderia enganar o ChatGPT e fazê-lo vazar dados privados para um container.download chamar para um URL com uma string de consulta que inclui informações confidenciais?
Eu não acho que possa. Tentei montar uma URL com uma string de consulta e acessá-la usando container.download e não conseguiu. Ele me disse que retornou este erro:
ERRO: o download falhou porque o URL não foi visualizado na conversa antes. abra o arquivo ou URL usando web.run primeiro.
Isso me parece o mesmo truque de segurança usado pela ferramenta Web Fetch de Claude: permitir acesso ao URL apenas se esse URL tiver sido inserido diretamente pelo usuário ou se vier de resultados de pesquisa que não poderiam ter sido influenciados por uma injeção imediata.
(Eu investiguei isso um pouco mais e consegui fazer com que uma string de consulta construída simples passasse web.run– uma ferramenta totalmente diferente – mas quando tentei compor uma string de consulta mais longa contendo o histórico de prompts anterior, um web.run filtro bloqueou-o.)
Então eu pensar tudo isso é seguro, embora eu esteja curioso para saber se ele poderia resistir a uma rodada mais agressiva de ataques de um pesquisador de segurança experiente.
Bash e outras linguagens
A principal lição de agentes de codificação como Claude Code e Codex CLI é que o Bash governa tudo: se um agente pode executar comandos Bash em um ambiente, ele pode fazer quase tudo que pode ser alcançado digitando comandos em um computador.
Quando a Anthropic adicionou seu próprio recurso de interpretação de código ao Claude em setembro passado, eles o construíram em torno do Bash, e não apenas do Python. Parece-me que a OpenAI agora fez a mesma coisa com o ChatGPT.
Esta é a aparência do ChatGPT quando executa um comando Bash – aqui meu prompt foi:
npm instale um pacote divertido e demonstre como usá-lo

Instalando pacotes do pip e npm
No exemplo anterior, o ChatGPT instalou o cowsay pacote do npm e usei-o para desenhar uma vaca em arte ASCII. Mas como isso poderia ser feito se o contêiner não pode fazer solicitações de rede de saída?
Numa outra sessão desafiei-o a explorar o seu ambiente. e descubra como isso funcionou.
Aqui está o relatório Markdown resultante que ele criou.
A chave mágica parece ser uma applied-caas-gateway1.internal.api.openai.org proxy, disponível dentro do contêiner e com diversas ferramentas de empacotamento configuradas para utilizá-lo.
As seguintes variáveis de ambiente causam pip e uv para instalar pacotes desse proxy em vez de diretamente do PyPI:
PIP_INDEX_URL=https://reader:****@packages.applied-caas-gateway1.internal.api.openai.org/.../pypi-public/simple
PIP_TRUSTED_HOST=packages.applied-caas-gateway1.internal.api.openai.org
UV_INDEX_URL=https://reader:****@packages.applied-caas-gateway1.internal.api.openai.org/.../pypi-public/simple
UV_INSECURE_HOST=https://packages.applied-caas-gateway1.internal.api.openai.org
Este parece ficar npm para trabalhar:
NPM_CONFIG_REGISTRY=https://reader:****@packages.applied-caas-gateway1.internal.api.openai.org/.../npm-public
E também relatou essas variáveis de aparência suspeita:
CAAS_ARTIFACTORY_BASE_URL=packages.applied-caas-gateway1.internal.api.openai.org
CAAS_ARTIFACTORY_PYPI_REGISTRY=.../artifactory/api/pypi/pypi-public
CAAS_ARTIFACTORY_NPM_REGISTRY=.../artifactory/api/npm/npm-public
CAAS_ARTIFACTORY_GO_REGISTRY=.../artifactory/api/go/golang-main
CAAS_ARTIFACTORY_MAVEN_REGISTRY=.../artifactory/maven-public
CAAS_ARTIFACTORY_GRADLE_REGISTRY=.../artifactory/gradle-public
CAAS_ARTIFACTORY_CARGO_REGISTRY=.../artifactory/api/cargo/cargo-public/index
CAAS_ARTIFACTORY_DOCKER_REGISTRY=.../dockerhub-public
CAAS_ARTIFACTORY_READER_USERNAME=reader
CAAS_ARTIFACTORY_READER_PASSWORD=****
NETWORK=caas_packages_only
Nem Rust nem Docker estão instalados no ambiente de contêiner, mas talvez essas referências de registro sejam uma pista dos recursos que ainda estão por vir.
Somando tudo
O resultado de tudo isso? Você pode dizer ao ChatGPT para usar pacotes Python ou Node.js como parte de uma conversa e ele será capaz de instalá-los e aplicá-los nos arquivos que você carrega ou baixa da web pública. Isso é realmente legal.
O grande recurso que falta aqui deveria ser o mais fácil de fornecer: precisamos documentação oficial! Uma entrada nas notas de lançamento seria um bom começo, mas há muitos detalhes sutis sobre como esse novo material funciona, suas limitações e para que pode ser usado.
Como sempre, eu também os incentivo a criar um nome para esse conjunto de recursos que represente adequadamente como ele funciona e o que pode fazer.
Enquanto isso, vou ligar para isso Contêineres ChatGPT.
