Environnements cloud

Créez, configurez et partagez des environnements réutilisables pour les tâches dans Codex Cloud

Codex Cloud exécute des tâches de développement dans le cloud, pour que le travail continue même lorsque votre ordinateur est en veille. Utilisez-le sur le Web, sur mobile ou dans l’application de bureau pour modifier du code, exécuter des commandes et examiner les résultats.

Un environnement cloud est la configuration réutilisable qu’utilisent les tâches : dépôts, dépendances, outils et paramètres d’accès. Codex examine vos dépôts, prépare la configuration et la teste avec vous. Chaque nouvelle tâche dispose de son propre espace de travail isolé, créé à partir de l’environnement publié.

Pour une introduction, consultez la présentation de Codex Cloud.

Démarrer une tâche dans Codex Cloud

Sur le Web ou dans l’application de bureau, choisissez Travailler dans > Cloud et sélectionnez un environnement publié. Sur mobile, ouvrez Codex et sélectionnez un environnement publié. Décrivez ce que vous souhaitez que Codex fasse, puis envoyez la demande. Si vous avez besoin d’une nouvelle configuration, créez un environnement sur le Web ou dans l’application de bureau.

Les administrateurs Enterprise peuvent examiner les accès à l’espace de travail avant de déployer Codex Cloud.

Créer et publier un environnement

Créez de nouveaux environnements sur le Web ou dans l’application de bureau. Connectez-vous avec votre compte ChatGPT :

  1. Dans une nouvelle tâche, choisissez Travailler dans > Cloud, ouvrez Sélectionner un environnement, puis sélectionnez Créer un environnement.
  2. Sélectionnez les dépôts GitHub à récupérer. Connectez GitHub si vous y êtes invité.
  3. Sélectionnez Commencer. Codex examine les dépôts, installe les dépendances et les outils, puis teste le workflow.
  4. Fournissez les accès ou les informations manquants lorsque cela vous est demandé. Vous pouvez aussi demander des versions, des commandes ou des services spécifiques.
  5. Examinez le rapport de préparation, la configuration et les fichiers. Terminez les éléments en suspens, enregistrez les modifications et sélectionnez Publier.
  6. Une fois le message Environnement publié affiché, sélectionnez Démarrer une nouvelle tâche et décrivez ce que vous souhaitez faire réaliser à Codex.

Vous pouvez aussi passer par Paramètres > Codex Cloud > Environnements > Créer un environnement.

Personnaliser l’installation et le démarrage

Codex identifie les environnements d’exécution, les versions des paquets, les outils et les services à partir de vos dépôts. Affinez la configuration dans la conversation ; vous n’avez pas besoin d’écrire vous-même un script d’installation.

Codex peut consigner la configuration testée dans deux champs :

  • Script d’installation : commandes pour installer les dépendances et préparer les ressources de développement.
  • Skill de démarrage : instructions pour démarrer les services et vérifier qu’ils sont prêts.

Réutiliser et mettre à jour l’état enregistré

  • Nouvelle tâche : démarre à partir du système de fichiers préparé de l’environnement publié.
  • Tâche existante : poursuit son travail avec ses propres fichiers enregistrés, y compris les modifications non commitées et les outils installés.
  • Actualisation des dépôts : s’exécute automatiquement en arrière-plan, en conservant les caches de dépendances sans réexécuter les commandes d’installation ou de démarrage.

Pour mettre à jour la configuration réutilisable, ouvrez Paramètres > Codex Cloud > Environnements. Dans le menu … de l’environnement, sélectionnez Modifier. Décrivez la modification, laissez Codex la préparer et la tester, enregistrez les modifications, puis sélectionnez Republier. Démarrez une nouvelle tâche pour utiliser la mise à jour ; les tâches existantes conservent leur propre état.

Commitez les travaux importants ou enregistrez les résultats dont vous avez besoin. L’état enregistré ne remplace pas la gestion de versions.

Configurer les variables d’environnement et les secrets réseau

Codex identifie les éléments de configuration manquants et demande les valeurs qu’il ne peut pas déduire. Dans la configuration de l’environnement, sélectionnez Gérer à côté de Variables d’environnement ou de Secrets réseau. Choisissez comment fournir chaque valeur :

Configuration Utilisation Transmission
Variable d’environnement Une valeur qu’un programme doit lire directement Transmise directement aux programmes dans l’environnement.
Secret réseau Un identifiant d’authentification envoyé à un service HTTPS précis Les programmes reçoivent une valeur de substitution ; le proxy la remplace par la valeur réelle pour les destinations autorisées.

Pour les secrets réseau, définissez Clé, Valeur et Domaines autorisés. Utilisez une clé différente de celles des variables directes. La substitution fonctionne en HTTPS sur le port 443, pendant la préparation et les tâches ; elle ne place pas l’identifiant d’authentification brut dans un processus local ou un fichier.

L’enregistrement de secrets réseau appartenant à l’environnement ajoute leurs destinations à l’accès Internet restreint. Les variables directes et les valeurs personnelles n’ajoutent pas de destinations. Examinez la politique réseau enregistrée avant de tester. Pour les exigences de l’espace de travail, consultez Agent Security.

Fournir des valeurs personnelles

Utilisez le Coffre-fort personnel pour enregistrer vos propres variables d’environnement et secrets réseau pour les environnements cloud de votre espace de travail.

Un environnement partagé peut demander des valeurs que chaque personne fournit depuis son propre compte. Le partage de l’environnement partage ces exigences, et non vos identifiants personnels.

Lorsque vous y êtes invité, saisissez les valeurs requises dans Ajouter des secrets personnels, puis sélectionnez Enregistrer et démarrer. Les valeurs facultatives peuvent rester non définies.

Pour gérer les valeurs à l’avance :

  1. Ouvrez Paramètres > Codex Cloud, puis sélectionnez l’onglet Coffre-fort personnel.
  2. Sélectionnez Ajouter, choisissez Variable d’environnement ou Secret réseau sous Type, puis saisissez la Clé correspondante et votre Valeur.
  3. Sous S’applique à, choisissez Tous les environnements ou Environnements sélectionnés, puis Enregistrer.

Seules les valeurs demandées sont transmises à une tâche. Une valeur propre à un environnement est prioritaire sur une valeur générale par défaut. Les secrets réseau personnels utilisent les destinations autorisées de l’environnement et remplacent les valeurs de substitution de la même manière.

Partager au sein d’un espace de travail Enterprise

Partagez une configuration préparée pour que vos collègues puissent démarrer leurs propres tâches à partir de celle-ci :

  1. Ouvrez la configuration de l’environnement.
  2. Sous Confidentialité > Qui peut l’utiliser, choisissez votre espace de travail.
  3. Enregistrez la modification. Publiez l’environnement si ce n’est pas déjà fait.

Choisissez Moi uniquement sous Qui peut l’utiliser pour garder l’environnement privé. Chaque tâche possède ses propres fichiers de travail ; l’accès à la configuration ne donne pas accès à la tâche d’une autre personne ni l’autorisation de modifier l’environnement.

Examinez les fichiers préparés et les identifiants appartenant à l’environnement avant de le partager. Les identités cloud et les connexions VPN peuvent aussi fournir un accès partagé aux services. L’accès aux dépôts et les connexions personnelles dépendent du compte qui exécute la tâche.

Utiliser Codex dans le cloud contrôle l’accès aux tâches. Gérer les environnements de l’espace de travail contrôle la création et la modification des environnements partagés avec l’espace de travail. Consultez Rôles et autorisations de l’espace de travail.

Agent Security

Les paramètres d’accès à Internet de l’environnement définissent les domaines que sa VM peut joindre. Les paramètres VPN connectent cette VM aux services d’un réseau privé.

Dans les espaces de travail Enterprise, les administrateurs utilisent Agent Security pour configurer les exigences de l’espace de travail en matière de comportement des agents, de réseau pour l’exécution gérée et d’utilisation des outils pris en charge. Ces exigences s’appliquent en complément des paramètres de domaines enregistrés pour chaque environnement. Consultez Agent Security pour les politiques globales et les dérogations prises en charge dans Codex Cloud.

Se connecter aux services

Configurez l’accès aux registres de paquets, aux API et aux autres services dont votre workflow a besoin :

  1. Dans la configuration de l’environnement, activez Autoriser Codex à accéder à Internet.
  2. Sous Autoriser des domaines, choisissez Gestionnaires de paquets ou Domaines personnalisés uniquement, puis ajoutez les hôtes requis sous Domaines autorisés supplémentaires. Utilisez Tous (sans restriction) lorsque le workflow nécessite un accès plus large.
  3. Enregistrez et testez les services pendant la préparation. Publiez ou republiez, puis vérifiez l’accès dans une nouvelle tâche.

Pour les exigences de l’espace de travail, consultez Agent Security. Autoriser une destination ne fournit pas d’identifiants et n’accorde pas d’autorisations dans ce service.

Domaines inclus dans le préréglage Gestionnaires de paquets

Le préréglage Gestionnaires de paquets autorise les registres, dépôts et hôtes de téléchargement suivants :

  • npm et Yarn : registry.npmjs.org, registry.yarnpkg.com
  • PyPI et PyTorch : pypi.org, files.pythonhosted.org, download.pytorch.org, download-r2.pytorch.org
  • Rust : crates.io, index.crates.io, static.crates.io, static.rust-lang.org
  • Go : proxy.golang.org, sum.golang.org
  • Maven et Gradle : repo.maven.apache.org, repo1.maven.org, plugins.gradle.org, plugins-artifacts.gradle.org, services.gradle.org, downloads.gradle.org
  • Bazel : bcr.bazel.build, mirror.bazel.build
  • Buf : buf.build
  • CPAN : cpan.metacpan.org
  • Dépôts Ubuntu et Debian : archive.ubuntu.com, security.ubuntu.com, ports.ubuntu.com, ppa.launchpadcontent.net, deb.debian.org, security.debian.org
  • Dépôts des éditeurs : packages.microsoft.com, apt.buildkite.com, developer.download.nvidia.com, deb.nodesource.com
  • Sources, archives, versions et LFS de GitHub : github.com, codeload.github.com, github-cloud.githubusercontent.com, github-cloud.s3.amazonaws.com, release-assets.githubusercontent.com
  • Autres téléchargements : dl.google.com, pkgconfig.freedesktop.org

Pour les domaines racine enregistrés, Codex autorise aussi le nom d’hôte www correspondant. Les autres sous-domaines nécessitent leurs propres entrées dans les domaines autorisés. Ajoutez les autres hôtes requis par vos dépendances sous Domaines autorisés supplémentaires.

Pour les services accessibles sur l’Internet public qui filtrent les connexions par IP source, utilisez le flux des adresses IP de sortie des agents. Autorisez toutes les plages publiées, consultez le flux quotidiennement et mettez à jour la liste d’autorisation du service lorsque les plages changent. Ces plages sont partagées entre les clients ; conservez les contrôles d’authentification et d’autorisation du service.

Réseau privé (VPN)

Donnez aux tâches cloud accès aux API internes, aux registres de paquets et aux autres services HTTP ou HTTPS de votre réseau privé par une connexion VPN.

  1. Ouvrez les paramètres Options avancées > VPN de l’environnement et sélectionnez Ajouter.
  2. Saisissez les identifiants de connexion fournis par votre fournisseur VPN.
  3. Autorisez les destinations requises dans les règles d’accès de votre VPN et dans les paramètres d’accès à Internet de l’environnement.
  4. Enregistrez, puis publiez ou republiez. Démarrez une nouvelle tâche et testez le service.

Tailscale est actuellement le fournisseur VPN pris en charge. Lors de la création d’une clé d’authentification Tailscale, activez Réutilisable et Éphémère. Une clé réutilisable permet aux nouvelles VM de tâches cloud de rejoindre votre réseau. Tailscale supprime automatiquement les appareils éphémères après leur déconnexion. La prise en charge d’autres fournisseurs VPN est prévue.

Les routes vers les sous-réseaux IPv4 privés sont prises en charge. Les tâches peuvent utiliser le DNS fractionné de Tailscale et MagicDNS pour accéder aux services privés par leur nom d’hôte.

Si votre service utilise le DNS interne de votre organisation, configurez le DNS fractionné dans la console d’administration Tailscale pour envoyer les requêtes concernant votre domaine interne à votre serveur DNS. Utilisez le nom d’hôte pleinement qualifié du service, par exemple api.corp.example.com, qui doit se résoudre en une adresse IPv4. La destination doit également être autorisée par les paramètres d’accès à Internet de l’environnement et par vos règles d’accès Tailscale.

Les tâches d’un environnement partagé utilisent l’identité VPN configurée pour celui-ci.

Accéder aux ressources cloud avec OIDC

OpenID Connect (OIDC) permet à une tâche d’obtenir des identifiants de courte durée pour les ressources cloud. Votre organisation configure une relation de confiance avec le fournisseur cloud et accorde à l’identité les autorisations nécessaires au workflow.

  1. Ouvrez les paramètres Options avancées > OIDC de l’environnement enregistré.
  2. Sélectionnez Ajouter, puis choisissez une connexion disponible ou Créer une connexion… pour un fournisseur pris en charge.
  3. Pour une nouvelle connexion, saisissez les informations d’identité du fournisseur et créez-la. Chez le fournisseur, configurez la relation de confiance à l’aide des valeurs Émetteur, Audience et Sujet affichées, ou des conditions sur les claims, puis accordez les autorisations sur les ressources.
  4. Confirmez que la connexion est associée et vérifiez son alias. Enregistrez, puis publiez ou republiez l’environnement.
  5. Démarrez une nouvelle tâche et testez une opération autorisée et une opération refusée.

La configuration varie selon le fournisseur, et seules les connexions prises en charge peuvent être associées. Les autorisations de l’identité déterminent l’accès ; vos autorisations personnelles chez le fournisseur ne lui sont pas transférées. Autorisez séparément les points de terminaison du fournisseur et les destinations nécessaires aux services dans la politique réseau.

Enregistrez les modifications d’association ou d’alias pour les appliquer pendant la préparation ; publiez ou republiez pour les utiliser dans les nouvelles tâches. La modification d’une connexion d’identité partagée peut affecter les autres environnements qui l’utilisent.

OIDC est disponible sur demande pour les espaces de travail Enterprise. Contactez votre équipe de compte OpenAI pour l’activer.

Exécuter et reprendre une tâche

Sélectionnez un environnement publié et décrivez votre objectif. Codex utilise ses dépôts et ses outils pour modifier les fichiers, exécuter des commandes et vérifier son travail. Examinez les modifications et les résultats des tests avant de commiter ou d’ouvrir une pull request.

Continuer sur le Web ou sur mobile

Sur le Web, choisissez Travailler dans > Cloud et sélectionnez un environnement. Sur mobile, ouvrez Codex et choisissez un environnement disponible. Créez de nouveaux environnements sur le Web ou dans l’application de bureau.

Rouvrez la même tâche pour poursuivre son travail sur différents appareils. Une nouvelle tâche démarre un travail distinct à partir de la configuration publiée. Les tâches dans Codex Cloud peuvent continuer à s’exécuter pendant que votre ordinateur est en veille.

Démarrer des tâches depuis Slack ou Microsoft Teams

Dans un espace de travail Enterprise où la délégation cloud est activée, demandez à @ChatGPT dans Slack ou Microsoft Teams de travailler sur un dépôt. Codex utilise le contexte de la conversation pour choisir un environnement partagé avec votre espace de travail et accessible au compte qui exécute la tâche. Vous pouvez nommer un environnement préféré ou ajouter des consignes dans votre prompt.

Pour Slack, les espaces de travail avec un contrôle d’accès à Codex Cloud basé sur les rôles doivent accorder l’accès à Codex Cloud à la fois au compte de service du déploiement et à l’utilisateur à l’origine de la demande. Consultez Activer Codex Cloud pour Slack pour la configuration par les administrateurs.

Suivez les éventuelles demandes de connexion et d’approbation, puis examinez le résultat dans la conversation. Poursuivez depuis le même compte connecté pour continuer la tâche ; la demande d’un autre participant ne poursuit pas automatiquement votre tâche.

Consultez Gérer ChatGPT dans Slack et Teams pour la configuration de l’espace de travail et Utiliser ChatGPT dans Slack pour les commandes de gestion des tâches dans Slack.

Caractéristiques des VM

Chaque tâche cloud s’exécute dans une VM avec les ressources par défaut suivantes :

Offre ChatGPT vCPU Mémoire Espace disque
Plus, Edu Plus 2 8 Gio 8 Gio
Pro, Business, Enterprise 4 16 Gio 32 Gio
Edu, Edu Pro 4 16 Gio 32 Gio

Par défaut, l’état enregistré de la VM d’une tâche peut être récupéré jusqu’à sept jours après le dernier démarrage d’un tour ou la dernière reprise de la tâche.

Des VM plus puissantes et des configurations personnalisées sont disponibles pour Enterprise. Contactez votre équipe de compte OpenAI pour connaître les configurations disponibles et les tarifs.

Limitations actuelles

Les fonctionnalités suivantes ne sont pas encore prises en charge dans les environnements cloud et figurent sur notre feuille de route :

  • Utilisation de l’ordinateur et du navigateur
  • GitLab et GitHub Enterprise Server auto-hébergé

Les skills stockés dans votre dépôt sont disponibles dans les tâches cloud. Les skills personnels de votre ordinateur local ne sont pas synchronisés avec les environnements cloud.

Résoudre les problèmes de préparation et d’accès à l’exécution

La préparation échoue ou un outil requis manque

Repérez la commande qui a échoué dans la conversation de préparation. Demandez à Codex de diagnostiquer l’erreur et de réexécuter la commande après l’avoir corrigée. Par exemple : « Installez pnpm et exécutez les tests du projet. »

  • Si la préparation initiale échoue, sélectionnez Réessayer pour recommencer avec les dépôts déjà sélectionnés dans cette session de préparation.
  • Si la correction nécessite de modifier des fichiers source, un manifeste de paquet ou un fichier de verrouillage, effectuez cette modification dans une tâche de développement, puis revenez à la préparation.

Une fois que Codex a vérifié la configuration, publiez ou republiez l’environnement.

Le téléchargement d’un paquet ou une requête HTTPS échoue

Vérifiez séparément le nom d’hôte de destination et l’authentification :

  1. Confirmez que l’hôte est autorisé par les paramètres d’accès à Internet de l’environnement. Pour un registre privé à l’adresse packages.example.com, vérifiez ce nom d’hôte exact. Si les téléchargements utilisent aussi downloads.example.com, cet hôte doit également être autorisé.
  2. Vérifiez l’URL et les identifiants configurés dans le gestionnaire de paquets ou le client. Autoriser un domaine ne donne pas accès au service.
  3. Si l’authentification utilise un secret réseau, vérifiez que ses Domaines autorisés incluent la destination et que la requête utilise HTTPS sur le port 443.
  4. Dans un espace de travail Enterprise, demandez à un administrateur de vérifier les exigences Agent Security applicables en complément des paramètres de l’environnement.

Enregistrez toute modification de configuration et testez la requête pendant la préparation. Publiez ou republiez, puis vérifiez l’accès dans une nouvelle tâche.

Une valeur requise manque ou n’est pas utilisable

Vérifiez que vous avez ajouté la valeur au bon endroit dans la configuration de l’environnement :

  • Variables d’environnement : utilisez-les pour les valeurs que les programmes doivent lire directement, comme APP_MODE=development.
  • Secrets réseau : utilisez-les pour les identifiants envoyés à un service HTTPS autorisé, comme un jeton de registre privé. Les programmes reçoivent une valeur de substitution ; le proxy la remplace par l’identifiant dans les requêtes correspondantes. Si le programme doit lire la valeur brute, ajoutez-la sous Variables d’environnement.

Pour une valeur personnelle, vérifiez que sa Clé correspond à la demande de l’environnement et que S’applique à inclut cet environnement. Une valeur propre à un environnement est prioritaire sur une valeur générale par défaut.

Consultez Variables d’environnement et secrets réseau pour les instructions de configuration.

Le VPN se connecte, mais un service HTTP ou HTTPS reste inaccessible

  1. Vérifiez que le client utilise le proxy HTTP/HTTPS configuré pour l’environnement. Lors des tests avec curl, omettez --noproxy afin que la requête utilise ce proxy.
  2. Vérifiez que la destination est autorisée à la fois par la liste des domaines autorisés de l’environnement et par les règles d’accès du VPN.
  3. Si le service est accessible par son adresse IP mais pas par son nom d’hôte, vérifiez vos paramètres DNS Tailscale. Pour un domaine interne à l’entreprise, vérifiez que le DNS fractionné pointe vers le bon serveur DNS et que ce serveur est accessible via votre réseau Tailscale. Utilisez le nom d’hôte pleinement qualifié du service et vérifiez qu’il se résout en une adresse IPv4.

Consultez Réseau privé pour configurer la connexion.

Un environnement ou ses mises à jour ne sont pas disponibles pour une tâche

Vérifiez l’environnement dans Paramètres > Codex Cloud > Environnements. S’il porte le badge Non publié, terminez la préparation et sélectionnez Publier pour le rendre disponible pour les tâches.

Pour modifier un environnement publié, ouvrez son parcours Modifier, laissez Codex préparer et tester les modifications, puis sélectionnez Republier. Démarrez une nouvelle tâche à partir de l’environnement mis à jour pour utiliser la nouvelle configuration. Les tâches existantes conservent leur propre état de travail.