Consultez les exemples de gestion par l’application et par webhook dans le Cookbook OpenAI.
Consultez Bacs à sable autohébergés pour connaître la configuration de l’exécuteur et les exigences de connexion.
Choisissez un mode de provisionnement :
- Gestion par l’application : Suivez ce guide pour démarrer et arrêter les bacs à sable depuis votre application.
- Gestion par webhook : Déployez un gestionnaire qui démarre ou reconnecte les bacs à sable à partir des webhooks OpenAI.
Consultez Cycle de vie du bac à sable pour comparer les deux modes.
Gestion par webhook
Utilisez un contrôleur pour vérifier les webhooks reçus d’OpenAI et mettre les tâches de provisionnement en file d’attente. Gardez ce contrôleur séparé du bac à sable du processus de traitement qui exécute l’exécuteur de chaque session. Suivez Déployez et connectez un gestionnaire pour enregistrer le point de terminaison et le secret de signature.
Traitez les requêtes environment_connection en démarrant ou en reconnectant le processus de traitement, et libérez-le lorsque la session échoue. Configurez explicitement les délais d’expiration du processus de traitement et du contrôleur. L’arrêt des ressources de calcul en cas d’inactivité nécessite une politique qui tient compte des tâches entrantes ; consultez Comportement du cycle de vie.
Gestion par l’application
Avant de commencer
Vous avez besoin d’une clé API de projet OpenAI, d’une clé API Daytona et du package Codex CLI.
Définissez DAYTONA_API_KEY et utilisez OPENAI_API_KEY pour les requêtes de l’application. Affectez une clé d’environnement à OPENAI_EXECUTOR_API_KEY et transmettez uniquement cette clé au bac à sable sous le nom CODEX_API_KEY.
1. Configurez l’environnement Daytona
Créez une session auto-hébergée et enregistrez son identifiant d’environnement. Utilisez le SDK ou l’API Daytona pour créer un bac à sable isolé avec le répertoire de travail configuré. Installez Codex CLI dans le bac à sable, puis démarrez son exécuteur avec cet identifiant d’environnement et la clé d’environnement.
La connexion de l’exécuteur à OpenAI est sortante et reste ouverte longtemps, mais le suivi de l’inactivité de Daytona ne la détecte pas. Définissez auto_stop_interval=0 pour que le bac à sable ne soit pas arrêté pendant que l’agent travaille, et configurez une durée de vie maximale afin que les ressources de calcul ne restent pas actives indéfiniment après une exécution interrompue.
Pour un usage régulier, incluez Codex et ripgrep dans un instantané Daytona afin que le bac à sable puisse se connecter plus rapidement.
2. Exécutez la session
Utilisez les exemples HTTP de la page Exécutez et poursuivez des sessions pour envoyer des données d’entrée et recevoir le résultat en streaming une fois l’exécuteur Daytona connecté. Lorsque vous avez terminé, supprimez la session et arrêtez séparément le bac à sable du fournisseur.
Démarrez le bac à sable avant d’envoyer des données d’entrée. Le tour attend que l’environnement se connecte, et la session signale la connexion au moyen de agent.session.environment.connected dans le flux d’événements.
Utilisez agent.session.turn.completed pour identifier un tour réussi. Un tour qui a échoué ou a été annulé peut également être suivi de agent.session.idle ; ne considérez donc pas une session inactive comme une preuve de réussite du tour. Une requête de récupération de la session effectuée immédiatement après un événement peut brièvement renvoyer l’état précédent.
Références
- Consultez la documentation Daytona
- Consultez la référence du SDK Python Daytona
- Consultez la référence du SDK TypeScript Daytona