Conteneurs ChatGPT : prise en charge de l’exécution de bash, de l’installation de paquets et du téléchargement de fichiers
(simonwillison.net)- L’environnement d’exécution en conteneur de ChatGPT a été considérablement étendu, et permet désormais d’exécuter des commandes Bash, d’installer des paquets via pip/npm et de télécharger des fichiers
- À l’environnement auparavant centré sur Python s’ajoutent désormais plus de dix langages, dont Node.js, Ruby, Go, Java, Swift, Kotlin, C et C++, avec prise en charge de l’exécution de code multilangage
- L’accès direct au réseau externe reste limité, mais
pip installetnpm installfonctionnent via un proxy interne d’OpenAI - Le nouvel outil
container.downloadpeut récupérer des fichiers depuis des URL publiques et les enregistrer dans le conteneur, après des vérifications de sécurité - Cette mise à niveau étend fortement les capacités d’exécution de code et de traitement de données de ChatGPT, tout en soulignant la nécessité d’une documentation officielle
Principales extensions des conteneurs ChatGPT
- ChatGPT peut désormais exécuter directement des commandes Bash, alors qu’auparavant seul le code Python était possible
- Il ne dépend donc plus d’une exécution indirecte via le module
subprocessde Python, et offre un contrôle au niveau de la ligne de commande
- Il ne dépend donc plus d’une exécution indirecte via le module
- Un environnement Node.js a été ajouté, permettant l’exécution de JavaScript ; des tests ont également réussi avec Ruby, Perl, PHP, Go, Java, Swift, Kotlin, C et C++
- Rust n’est pas encore pris en charge
- Le conteneur ne peut toujours pas effectuer directement des requêtes réseau externes, mais
pip installetnpm installfonctionnent via un proxy - L’outil
container.downloadpermet de télécharger un fichier du web vers un chemin spécifié- ChatGPT peut identifier l’URL, enregistrer le fichier dans l’environnement sandbox, puis le traiter
Fonction container.download
container.downloadest un outil qui récupère un fichier depuis une URL accessible publiquement et l’enregistre dans le système de fichiers du conteneur- Le format d’entrée est de la forme
{"url": "https://example.com/file.zip", "filepath": "/mnt/data/file.zip"}
- Le format d’entrée est de la forme
- Les fichiers téléchargés peuvent ensuite être décompressés, analysés, convertis ou autrement post-traités dans le conteneur
- Selon les tests, les en-têtes de requête incluent
User-Agent: ChatGPT-User/1.0, et l’IP a été identifiée comme appartenant à Microsoft Azure Cloud (Des Moines, Iowa)
Vérification de sécurité : possibilité d’exfiltration de données
- Une expérience a été menée pour vérifier si
container.downloadpouvait constituer une vulnérabilité d’exfiltration de données- Lors d’un appel d’URL contenant une chaîne de requête, l’erreur « url not viewed in conversation before » est apparue
- Cela ressemble à une protection limitant l’accès aux URL, similaire à Web Fetch de Claude, où seules les URL déjà vues via une entrée utilisateur ou un résultat de recherche peuvent être consultées
- Il a été possible de transmettre certaines chaînes de requête via
web.run, mais les longues chaînes incluant l’historique de conversation précédent ont été bloquées par le filtre - D’après les expérimentations menées jusqu’à présent, le risque d’exfiltration de données semble faible, même si des recherches de sécurité supplémentaires sont jugées nécessaires
Exécution de Bash et multilangage
- Grâce à la prise en charge de Bash, ChatGPT peut désormais exécuter des commandes au niveau système
- Exemple : exécuter
npm installet vérifier le résultat
- Exemple : exécuter
- Il est possible de vérifier l’exécution réelle des commandes via les journaux d’exécution du panneau Activity (console en noir et blanc)
- Des tests « Hello World » ont réussi dans plusieurs langages, confirmant un environnement d’exécution de code multilangage
Mécanisme d’installation des paquets pip et npm
- Même avec le réseau externe bloqué, le conteneur peut installer des paquets via un proxy interne d’OpenAI (
applied-caas-gateway1.internal.api.openai.org)- Des variables d’environnement comme
PIP_INDEX_URLetNPM_CONFIG_REGISTRYpointent vers ce proxy
- Des variables d’environnement comme
- Les principaux gestionnaires de paquets comme
pip,uvetnpmfonctionnent via ce proxy - Les variables d’environnement incluent aussi divers chemins de registre portant le préfixe
CAAS_ARTIFACTORY_*- On y trouve de nombreux dépôts internes pour PyPI, npm, Go, Maven, Gradle, Cargo, Docker, etc.
- Rust et Docker ne sont pas encore installés, mais cela laisse entrevoir de futures extensions
Usages intégrés et défis à venir
- ChatGPT peut désormais installer des paquets Python et Node.js, puis les appliquer à des fichiers envoyés ou téléchargés
- Il dispose maintenant de capacités proches d’un environnement de développement complet, de l’écriture de code à son exécution, au traitement de données et aux entrées/sorties de fichiers
- Le plus grand manque reste l’absence de documentation officielle, avec un besoin de publier des notes de version et les limitations détaillées
- OpenAI devrait donner un nom approprié à cet ensemble de fonctionnalités, provisoirement appelé « ChatGPT Containers »
Résumé de la liste complète des outils ChatGPT
- La liste des outils disponibles dans l’environnement GPT-5.2 a été révélée
- Elle comprend notamment python.exec, web.run, container.exec, container.download, image_gen.text2im, etc.
- Chaque outil dispose d’une description et d’une signature claires
container.execsert à exécuter des commandes,container.feed_charsà saisir des entrées dans une session interactive, etcontainer.open_imageà afficher des images- Des fonctions de personnalisation utilisateur sont également incluses, comme
bio.update,personal_context.searchetuser_settings.set_setting - Dans l’ensemble, ChatGPT évolue vers un environnement d’IA composite intégrant exécution de code, accès web, traitement de fichiers et gestion du contexte utilisateur
1 commentaires
Avis sur Hacker News
Je travaille dans le support technique, je suis à l’aise avec Python, mais je ne suis pas développeur
Or, ces dernières semaines, Gemini et Claude m’ont demandé : « Peux-tu utiliser un ordinateur ? »
J’ai répondu : « Quel ordinateur ? Le mien ? Ou le vôtre ? »
Comme j’utilisais la version gratuite dans le navigateur, je ne pensais pas qu’ils pourraient accéder directement à mon ordinateur, mais il s’est avéré qu’ils exécutaient des scripts Python dans leur propre environnement
Je me suis alors demandé qui avait eu en premier l’idée de fournir un vrai ordinateur à un LLM pour résoudre des problèmes de calcul
Et quand j’ai lancé Nano Banana via un prompt, Gemini a parlé du générateur d’images à la troisième personne, ce qui donnait une impression de « tortues sur le dos de tortues »
D’après notre expérience, donner un environnement Linux à un agent apporte des avantages complexes
Il peut résoudre seul des situations bizarres que les outils classiques gèrent mal
Par exemple, quand un fichier nommé .png est en réalité un jpeg, il lit les magic bytes pour le traiter correctement
J’ai essayé d’utiliser un modèle de vision pour vérifier les profils ICC ou la densité d’encre, mais il racontait souvent n’importe quoi
J’ai fini par donner à l’agent un accès à ImageMagick pour qu’il fasse l’analyse lui-même, et c’était la seule méthode fiable
Sinon, c’est moi qui devais absorber le coût des impressions ratées
La plupart des visionneuses ou éditeurs d’images Linux déterminent déjà le format de fichier à partir des magic bytes plutôt que de l’extension
Je pense que la conception dépendante des extensions chez Microsoft est à l’origine de ce problème
Pour un humain, c’est quelque chose qu’on peut faire en quelques secondes avec des outils Unix ordinaires
ChatGPT de base peut désormais aussi exécuter du code en Node.js, Ruby, Perl, PHP, Go, Java, Swift, Kotlin, C, C++, etc.
Ce n’est pas mentionné dans les notes de version officielles, mais cela a aussi été vérifié avec un compte gratuit
Lien de partage
J’ai été surpris de voir un élément comme « gmail (read-only) »
L’app Android de ChatGPT dit ne pas avoir ce type d’autorisation, donc je me demande dans quel contexte l’accès en lecture à Gmail est possible
Dans l’app iPhone aussi, les fonctions gmail. et gcal. apparaissaient
Exemple partagé
C’est probablement la fonctionnalité mentionnée dans cet article de Mashable
Il semble qu’elle ne s’active que si l’utilisateur choisit explicitement d’y participer
En ce moment, on dirait que toutes les entreprises se livrent une bataille pour garder la fonctionnalité tool calling à l’intérieur de leur propre plateforme
Au final, si les modèles deviennent capables d’effectuer presque toutes les tâches dans un environnement local, les débats sur les sandboxes perdront sans doute de leur importance
Je me demande quand ils proposeront des environnements de développement virtuels persistants
et je pense que les tentatives de faire tourner des outils de code IA ou des agents dans des environnements isolés gardent tout leur intérêt
La plupart des développeurs utiliseront probablement ce type d’outils de code spécialisés plutôt que l’interface web GPT classique
On peut démarrer une session, travailler, puis revenir un jour plus tard et retrouver l’état du système de fichiers intact
J’imagine qu’ils s’appuient sur du stockage objet pour réduire les coûts
À ce sujet, le billet de conception de Sprites.dev chez Fly est aussi intéressant
Elles laissent seulement un client léger en local et confient la vraie charge de travail à des acteurs comme Microsoft
Personnellement, un environnement de développement sans installation locale me semble infernal, mais l’époque a l’air de pousser dans ce sens
Cette fonctionnalité va soit faire gagner énormément de temps, soit provoquer une panne pédagogique
Les découvertes de Simon, presque comme celles d’un détective, sont impressionnantes
Ce genre de « post de découverte » est bien plus intéressant qu’une annonce officielle
C’est bien plus inspirant qu’un simple communiqué de presse
On dirait qu’on approche du moment où ChatGPT pourra créer à la volée des applications à usage unique (single-use app)
Il générera dans le navigateur une app de sandbox cloud pour atteindre un objectif, puis la jettera immédiatement après