Développement optimisé pour les agents

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, le refactoring en profondeur et l'exécution de tests) ou mettent en pause en attendant une saisie et un examen humains.

Les délais d'inactivité standards des stations de travail peuvent arrêter et supprimer les VM de station 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 :

  1. Suspension du poste de travail (IdleAction.SUSPEND) : cette fonctionnalité suspend automatiquement la VM du poste 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 de l'agent actif dans un espace de stockage persistant, tout en arrêtant les coûts de calcul des vCPU et de la mémoire.
  2. Hooks de maintien de l'activité du cycle de vie : ces hooks permettent aux agents d'IA d'exécuter un script de maintien de l'activité en arrière-plan (/google/scripts/keep_alive.sh) pendant le traitement actif pour éviter les délais d'expiration, et de mettre fin au script en attendant une entrée utilisateur ou après avoir terminé les tâches, ce qui permet au poste de travail de passer à l'état inactif 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.sh en arrière-plan. Ce script envoie des signaux de présence périodiques qui empêchent Cloud Workstations de marquer la station de travail comme inactive.
  • En attente d'une entrée utilisateur ou de l'exécution d'une tâche : lorsqu'un agent termine son travail ou s'interrompt pour demander au développeur de l'examiner ou de fournir des informations supplémentaires, un hook d'événement met fin au processus de maintien en vie en arrière-plan.
  • Suspension automatique : en l'absence de signaux de maintien en vie 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_SUSPENDED au lieu de l'arrêter.
  • Reprise instantanée : lorsque le développeur revient et se reconnecte (via la console Google Cloud , 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 stations de travail

Pour activer la suspension de la station de travail, mettez à jour sa configuration en définissant idleAction 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 console Google Cloud pour accéder aux services et aux API Google Cloud , vous n'avez pas besoin de configurer l'authentification.

gcloud

Dans la console Google Cloud , activez Cloud Shell.

Activer Cloud Shell

En bas de la console Google Cloud , une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement de 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 CLI gcloud.

    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'authentification Google Cloud .

Console

Pour configurer la suspension sur une configuration de station de travail dans la consoleGoogle Cloud  :

  1. Dans la console Google Cloud , accédez à Configurations de stations de travail.

    Accéder aux configurations de stations de travail

  2. Cliquez sur Ajouter Créer, ou cliquez sur une configuration existante, puis sur Modifier Modifier.

  3. Renseignez la section Informations de base, puis accédez à Paramètres de la machine.

  4. Sous Délai d'inactivité, définissez la durée du délai d'inactivité, par exemple 30 minutes.

  5. 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é).

  6. Suivez les étapes de configuration restantes, puis cliquez sur Créer (ou Enregistrer).

gcloud

Pour créer une configuration de poste de travail avec la suspension activée, exécutez la commande gcloud workstations configs create 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 poste de travail existante afin d'utiliser la suspension, exécutez la commande gcloud workstations configs update :

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 postes de travail.
  • LOCATION : région dans laquelle se trouve le cluster de postes 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 charge utile workstationConfigs :

{
  "idleTimeout": "1800s",
  "idleAction": "SUSPEND"
}

Configurer des agents avec des exemples de hooks de maintien en vie

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 de la persistance.

Fonctionnement des hooks keep-alive de l'agent

Les agents de codage d'IA modernes fournissent des systèmes de hooks d'événements qui exécutent des commandes à des étapes clés du cycle de vie :

  • Hook de début d'exécution : déclenché avant que l'agent ne commence à traiter la saisie de l'utilisateur. Le hook lance /google/scripts/keep_alive.sh en arrière-plan et écrit l'identifiant de processus en arrière-plan (PID) 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 demander à l'utilisateur de saisir des informations. Le crochet lit le PID à partir du fichier temporaire et met fin au processus keep_alive.sh en arrière-plan.

Configuration de Claude Code

Claude Code est compatible avec les hooks d'événements de cycle de vie configurés dans ses paramètres. Des exemples de fichiers de configuration pour Claude Code se trouvent dans :

/google/samples/agents/keepalive/claude/

Dans Claude Code, les hooks d'événement suivants gèrent le processus de maintien de la connexion :

  1. UserPromptSubmit : le hook s'exécute lorsque l'utilisateur envoie un prompt. Il démarre le script keep-alive en arrière-plan :

    /google/scripts/keep_alive.sh & echo $! > /tmp/claude_keep_alive.pid
    
  2. Notification : le hook s'exécute lorsque Claude Code émet une notification ou s'interrompt pour attendre une entrée utilisateur. Il arrête le processus actif en arrière-plan keep-alive :

    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 la configuration exemple, copiez ou fusionnez les fichiers exemples 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

L'interface de ligne de commande Antigravity est compatible avec les hooks d'événements de cycle de vie définis dans ses paramètres. Des exemples de fichiers de configuration pour Antigravity CLI se trouvent dans :

/google/samples/agents/keepalive/gemini/

Dans Antigravity CLI, les hooks d'événement suivants gèrent le processus de maintien en vie :

  1. BeforeAgent : le hook s'exécute avant que la CLI Antigravity ne commence à exécuter des actions. Il démarre le script keep-alive en arrière-plan :

    /google/scripts/keep_alive.sh & echo $! > /tmp/gemini_keep_alive.pid
    
  2. Notification : le crochet s'exécute lorsque l'agent termine son tour ou a besoin de commentaires de l'utilisateur. Il met fin au processus 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 le 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 d'IA personnalisés, vous pouvez implémenter le même modèle de maintien en vie en lançant /google/scripts/keep_alive.sh en tant que processus en arrière-plan pendant l'exécution active de l'agent et en mettant fin au processus lorsque l'agent entre dans 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 :

  • ConsoleGoogle Cloud  : dans la console Google Cloud , accédez à la page Stations de travail, puis cliquez sur Lancer ou Démarrer à côté de la station de travail suspendue.
  • CLI gcloud : exécutez la commande gcloud workstations start :

    gcloud workstations start WORKSTATION_NAME \
      --cluster=CLUSTER_NAME \
      --region=LOCATION \
      --config=CONFIG_NAME
    

    Remplacez les éléments suivants :

    • WORKSTATION_NAME : nom de la station de travail.
    • CLUSTER_NAME : nom du cluster de stations de travail.
    • LOCATION : région dans laquelle se trouve le cluster de stations de travail.
    • CONFIG_NAME : nom de la configuration de la station de travail.
  • Connexion via le navigateur ou SSH : accéder à l'URL Web de votre poste de travail ou se connecter à l'aide de SSH déclenche automatiquement la reprise du poste de travail.

Une fois la session reprise, tous les tampons de terminal, l'historique des commandes de l'agent et les fichiers de l'espace de travail sont restaurés exactement tels que vous les aviez laissés.

Étapes suivantes