Cloud Workstations fournit un environnement d'exécution optimisé pour les agents de codage IA autonomes et interactifs, tels que la CLI Antigravity et Claude Code. Lors de l'exécution de workflows de développement agentiques, les agents effectuent fréquemment des tâches asynchrones de longue durée (telles que la génération de code, la refactorisation en profondeur et l'exécution de tests) ou s'interrompent en attendant une entrée et un examen humains.
Les délais d'inactivité standards des stations de travail peuvent éteindre et supprimer les VM de stations de travail éphémères pendant de longues périodes d'inactivité, ce qui met fin au conteneur et nécessite la réinitialisation du contexte de l'agent. Le développement optimisé pour les agents résout ce problème en combinant deux fonctionnalités clés :
- Suspension de la station de travail (
IdleAction.SUSPEND) : cette fonctionnalité suspend automatiquement la VM de la station de travail lorsqu'elle atteint son délai d'inactivité au lieu de l'arrêter. La suspension de la station de travail préserve la RAM de la machine virtuelle, les processus en cours d'exécution, les fichiers ouverts et le contexte d'agent actif dans le stockage persistant, tout en arrêtant les coûts de calcul des processeurs virtuels et de la mémoire. - Hooks de maintien en vie du cycle de vie : ces hooks permettent aux agents IA d'exécuter un
script de maintien en vie en arrière-plan (
/google/scripts/keep_alive.sh) pendant le traitement actif pour éviter les délais d'inactivité, et d'arrêter le script lorsqu'ils attendent une entrée utilisateur ou après avoir terminé des tâches, ce qui permet à la station de travail de passer à un état d'inactivité et de se suspendre.
Fonctionnement de l'optimisation des agents
L'optimisation des agents garantit un état persistant, une rentabilité et un fonctionnement fluide lors des tâches de longue durée :
- Traitement actif : lorsqu'un agent commence à exécuter les instructions de l'utilisateur, un
hook de cycle de vie démarre
/google/scripts/keep_alive.shen arrière-plan. Ce script envoie des messages keep-alive périodiques qui empêchent Cloud Workstations de marquer la station de travail comme inactive. - Attente d'une entrée utilisateur ou d'une tâche terminée : lorsque l'agent termine son travail ou s'interrompt pour inviter le développeur à examiner ou à fournir des informations supplémentaires, un hook d'événement met fin au processus de message keep-alive en arrière-plan.
- Suspension automatique : en l'absence de messages keep-alive actifs ou de trafic entrant, le minuteur d'inactivité de la station de travail décompte jusqu'au seuil de délai d'inactivité configuré. Une fois le délai expiré, Cloud Workstations fait passer la station de travail à l'état
STATE_SUSPENDEDau lieu de l'arrêter. - Reprise instantanée : lorsque le développeur revient et se reconnecte (via la Google Cloud console, un IDE ou SSH), la station de travail reprend immédiatement à partir du stockage persistant avec l'état complet de l'agent, les sessions de terminal et le contexte de l'espace de travail intacts.
Configurer la suspension de la station de travail
Pour activer la suspension de la station de travail, mettez à jour la configuration de votre station de travail avec une idleAction définie sur SUSPEND et une durée idleTimeout en secondes, par exemple 1800s pour 30 minutes.
Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :
Console
Lorsque vous utilisez la Google Cloud console pour accéder aux Google Cloud services et aux API, vous n'avez pas besoin de configurer l'authentification.
gcloud
Dans la Google Cloud console, activez Cloud Shell.
En bas de la fenêtre de la console, une session Cloud Shell démarre et affiche une invite de ligne de commande. Google Cloud Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.
REST
Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les
identifiants que vous fournissez à la gcloud CLI.
Installez la Google Cloud CLI.
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord
vous connecter à la CLI gcloud avec votre identité fédérée.
Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l' Google Cloud authentification.
Console
Pour configurer la suspension dans une configuration de station de travail dans la Google Cloud console :
Dans la Google Cloud console, accédez à Configurations de stations de travail.
Cliquez sur add Créer ou sur une configuration existante, puis sur edit Modifier.
Remplissez la section Informations de base , puis passez à Paramètres de la machine.
Sous Délai d'inactivité, définissez la durée du délai d'inactivité, par exemple 30 minutes.
Dans le menu déroulant Action en cas d'inactivité, sélectionnez Suspendre (ou Suspendre la station de travail en cas de délai d'inactivité).
Suivez les autres étapes de configuration, puis cliquez sur Créer (ou Enregistrer).
gcloud
Pour créer une configuration de station de travail avec la suspension activée, exécutez la
gcloud workstations configs create
commande avec l'option --idle-action=suspend :
gcloud workstations configs create CONFIG_NAME \
--cluster=CLUSTER_NAME \
--region=LOCATION \
--idle-timeout=1800 \
--idle-action=suspend
Pour mettre à jour une configuration de station de travail existante afin d'utiliser la suspension, exécutez la
gcloud workstations configs update
commande :
gcloud workstations configs update CONFIG_NAME \
--cluster=CLUSTER_NAME \
--region=LOCATION \
--idle-timeout=1800 \
--idle-action=suspend
Remplacez les éléments suivants :
CONFIG_NAME: nom de la configuration de la station de travail.CLUSTER_NAME: nom du cluster de stations de travail.LOCATION: région où se trouve le cluster de stations de travail.
REST
Pour configurer la suspension à l'aide de l'API REST, définissez idleAction sur SUSPEND et
idleTimeout sur la durée choisie dans votre
workstationConfigs
charge utile :
{
"idleTimeout": "1800s",
"idleAction": "SUSPEND"
}
Configurer des agents avec des exemples de hooks de message keep-alive
Les images de base préconfigurées de Cloud Workstations sont préinstallées avec des exemples de fichiers de configuration d'agent sous /google/samples/agents/keepalive/. Ces exemples montrent comment configurer des agents de codage IA pour gérer automatiquement le cycle de vie du message keep-alive.
Fonctionnement des hooks de message keep-alive des agents
Les agents de codage IA modernes fournissent des systèmes de hooks d'événements qui exécutent des commandes lors des étapes clés du cycle de vie :
- Hook de début d'exécution : déclenché avant que l'agent ne commence à traiter l'entrée utilisateur. Le hook lance
/google/scripts/keep_alive.shen arrière-plan et écrit l'ID de processus (PID) en arrière-plan dans un fichier temporaire (par exemple,/tmp/agent_keep_alive.pid). - Hook d'attente de notification / d'entrée utilisateur : déclenché lorsque l'agent termine
sa tâche ou s'interrompt pour inviter l'utilisateur à saisir des informations. Le hook lit le PID à partir du fichier temporaire et met fin au processus
keep_alive.shen arrière-plan.
Configuration de Claude Code
Claude Code prend en charge les hooks d'événements de cycle de vie configurés dans ses paramètres. Les exemples de fichiers de configuration pour Claude Code se trouvent dans :
/google/samples/agents/keepalive/claude/
Dans Claude Code, les hooks d'événements suivants gèrent le processus de message keep-alive :
UserPromptSubmit: le hook s'exécute lorsque l'utilisateur envoie un prompt. Il démarre le script de maintien en vie en arrière-plan :/google/scripts/keep_alive.sh & echo $! > /tmp/claude_keep_alive.pidNotification: le hook s'exécute lorsque Claude Code émet une notification ou s'interrompt pour une entrée utilisateur. Il arrête le processus de maintien en vie actif en arrière-plan :if [ -f /tmp/claude_keep_alive.pid ]; then kill "$(cat /tmp/claude_keep_alive.pid)" 2>/dev/null || true rm -f /tmp/claude_keep_alive.pid fi
Pour appliquer l'exemple de configuration, copiez ou fusionnez les exemples de fichiers de /google/samples/agents/keepalive/claude/ dans votre répertoire de configuration Claude (par exemple, ~/.claude/settings.json ou la configuration au niveau du projet).
Configuration de la CLI Antigravity
La CLI Antigravity prend en charge les hooks d'événements de cycle de vie définis dans ses paramètres. Les exemples de fichiers de configuration pour la CLI Antigravity se trouvent dans :
/google/samples/agents/keepalive/gemini/
Dans la CLI Antigravity, les hooks d'événements suivants gèrent le processus de message keep-alive :
BeforeAgent: le hook s'exécute avant que la CLI Antigravity ne commence à exécuter des actions. Il démarre le script de maintien en vie en arrière-plan :/google/scripts/keep_alive.sh & echo $! > /tmp/gemini_keep_alive.pidNotification: le hook s'exécute lorsque l'agent termine son tour ou nécessite un commentaire de l'utilisateur. Il met fin au processus de message keep-alive :if [ -f /tmp/gemini_keep_alive.pid ]; then kill "$(cat /tmp/gemini_keep_alive.pid)" 2>/dev/null || true rm -f /tmp/gemini_keep_alive.pid fi
Pour appliquer l'exemple de configuration, copiez ou fusionnez les exemples de fichiers de /google/samples/agents/keepalive/gemini/ dans votre répertoire de configuration de la CLI Antigravity (par exemple, ~/.gemini/config.yaml ou les paramètres du projet).
Intégration d'un agent personnalisé
Si vous créez ou utilisez des agents IA personnalisés, vous pouvez implémenter le même modèle de message keep-alive en lançant /google/scripts/keep_alive.sh en tant que processus en arrière-plan lors de l'exécution active de l'agent et en mettant fin au processus lorsque l'agent passe à un état d'inactivité ou d'attente.
Réactiver une station de travail suspendue
Lorsqu'une station de travail est à l'état STATE_SUSPENDED, vous pouvez la réactiver à tout moment :
- Google Cloud Console : dans la Google Cloud console, accédez à la page Stations de travail , puis cliquez sur Lancer ou Démarrer à côté de la station de travail suspendue.
gcloudCLI : exécutez la commandegcloud workstations start:gcloud workstations start WORKSTATION_NAME \ --cluster=CLUSTER_NAME \ --region=LOCATION \ --config=CONFIG_NAMERemplacez les éléments suivants :
WORKSTATION_NAME: nom de la station de travail.CLUSTER_NAME: nom du cluster de stations de travail.LOCATION: région où se trouve le cluster de stations de travail.CONFIG_NAME: nom de la configuration de la station de travail.
Navigateur ou connexion SSH : accéder à l'URL Web de votre station de travail ou se connecter à l'aide de SSH déclenche automatiquement la reprise de la station de travail.
Une fois la station de travail réactivée, tous les tampons de terminal, l'historique des commandes de l'agent et les fichiers de l'espace de travail sont restaurés exactement comme vous les avez laissés.
Étape suivante
- Créer une configuration de station de travail.
- En savoir plus sur le codage assisté par un agent IA avec la CLI Gemini.
- Découvrir les images de base préconfigurées .
- Découvrez comment vous connecter avec la prise en charge de SSH.