Cloud Workstations fornisce un ambiente di runtime ottimizzato per agenti di programmazione AI autonomi e interattivi, come Antigravity CLI e Claude Code. Quando vengono eseguiti flussi di lavoro di sviluppo agentici, gli agenti eseguono spesso attività asincrone di lunga durata (come la generazione di codice, il refactoring profondo e l'esecuzione del test) o si mettono in pausa in attesa dell'input e della revisione da parte di un utente.
I timeout di inattività standard della workstation possono arrestare ed eliminare le VM workstation effimere durante lunghi periodi di inattività, terminando il container e richiedendo la reinizializzazione del contesto dell'agente. Lo sviluppo ottimizzato per gli agenti risolve questo problema combinando due funzionalità chiave:
- Sospensione della workstation (
IdleAction.SUSPEND): questa funzionalità sospende automaticamente la VM della workstation quando raggiunge il timeout di inattività anziché arrestarla. La sospensione della workstation conserva la RAM della macchina virtuale, i processi in esecuzione, i file aperti e il contesto dell'agente attivo nell'archiviazione permanente, interrompendo al contempo i costi di calcolo della vCPU e della memoria. - Hook di keep-alive del ciclo di vita: questi hook consentono agli agenti AI di eseguire uno script di keep-alive in background (
/google/scripts/keep_alive.sh) durante l'elaborazione attiva per evitare timeout e terminare lo script quando sono in attesa di input utente o dopo aver completato le attività, consentendo alla workstation di entrare in uno stato di inattività e di sospensione.
Come funziona l'ottimizzazione degli agenti
L'ottimizzazione dell'agente garantisce uno stato persistente, l'efficienza in termini di costi e un funzionamento senza interruzioni durante le attività di lunga durata:
- Elaborazione attiva: quando un agente inizia a eseguire le istruzioni dell'utente, un hook del ciclo di vita avvia
/google/scripts/keep_alive.shin background. Questo script invia periodicamente segnali di keep-alive che impediscono a Cloud Workstations di contrassegnare la workstation come inattiva. - In attesa dell'input utente o del completamento dell'attività: quando l'agente completa il suo lavoro o si mette in pausa per chiedere allo sviluppatore di rivedere o fornire input aggiuntivi, un hook evento termina il processo di keep-alive in background.
- Sospensione automatica: in assenza di segnali keep-alive attivi o traffico in entrata, il timer di inattività della workstation esegue il conto alla rovescia fino alla soglia di timeout di inattività configurata. Al termine del timeout, Cloud Workstations esegue la transizione della workstation allo stato
STATE_SUSPENDEDanziché arrestarla. - Ripresa istantanea: quando lo sviluppatore torna e si riconnette (tramite la console Google Cloud , un IDE o SSH), la workstation riprende immediatamente dallo spazio di archiviazione permanente con lo stato completo dell'agente, le sessioni del terminale e il contesto dello spazio di lavoro intatti.
Configura la sospensione della workstation
Per attivare la sospensione della workstation, aggiorna la configurazione della workstation con
un idleAction impostato su SUSPEND e una durata idleTimeout in secondi, ad esempio
1800s per 30 minuti.
Seleziona la scheda relativa a come prevedi di utilizzare i campioni in questa pagina:
Console
Quando utilizzi la console Google Cloud per accedere ai servizi Google Cloud e alle API, non devi configurare l'autenticazione.
gcloud
Nella console Google Cloud , attiva Cloud Shell.
Nella parte inferiore della console Google Cloud , viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le
credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI.
Se utilizzi un provider di identità (IdP) esterno, devi prima
accedere alla CLI gcloud con la tua identità federata.
Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Google Cloud .
Console
Per configurare la sospensione in una configurazione della workstation nella consoleGoogle Cloud :
Nella console Google Cloud , vai a Configurazioni workstation.
Fai clic su add Crea o fai clic su una configurazione esistente e poi su edit Modifica.
Completa la sezione Informazioni di base e vai a Impostazioni macchina.
In Timeout per inattività, imposta la durata del timeout per inattività, ad esempio 30 minuti.
Nel menu a discesa Azione inattiva, seleziona Sospendi (o Sospendi workstation al timeout di inattività).
Completa i passaggi di configurazione rimanenti e fai clic su Crea (o Salva).
gcloud
Per creare una nuova configurazione della workstation con la sospensione abilitata, esegui il comando gcloud workstations configs create con il flag --idle-action=suspend:
gcloud workstations configs create CONFIG_NAME \
--cluster=CLUSTER_NAME \
--region=LOCATION \
--idle-timeout=1800 \
--idle-action=suspend
Per aggiornare una configurazione della workstation esistente in modo da utilizzare la sospensione, esegui il comando gcloud workstations configs update:
gcloud workstations configs update CONFIG_NAME \
--cluster=CLUSTER_NAME \
--region=LOCATION \
--idle-timeout=1800 \
--idle-action=suspend
Sostituisci quanto segue:
CONFIG_NAME: il nome della configurazione della workstation.CLUSTER_NAME: il nome del cluster di workstation.LOCATION: la regione in cui si trova il cluster di workstation.
REST
Per configurare la sospensione utilizzando l'API REST, imposta idleAction su SUSPEND e
idleTimeout sulla durata scelta nel
payload
workstationConfigs:
{
"idleTimeout": "1800s",
"idleAction": "SUSPEND"
}
Configura gli agenti con hook keep-alive di esempio
Le immagini di base preconfigurate di Cloud Workstations vengono fornite con file di configurazione dell'agente di esempio preinstallati in /google/samples/agents/keepalive/. Questi esempi mostrano come configurare gli agenti di programmazione AI per gestire automaticamente il ciclo di vita di keep-alive.
Come funzionano gli hook di keep-alive dell'agente
Gli agenti di codifica AI moderni forniscono sistemi di hook per eventi che eseguono comandi in corrispondenza di tappe fondamentali del ciclo di vita:
- Hook di avvio dell'esecuzione: attivato prima che l'agente inizi a elaborare l'input utente. L'hook avvia
/google/scripts/keep_alive.shin background e scrive l'ID di processo in background (PID) in un file temporaneo (ad esempio,/tmp/agent_keep_alive.pid). - Hook di attesa di notifica / input utente: viene attivato quando l'agente completa
la sua attività o si mette in pausa per chiedere all'utente di inserire un input. L'hook legge il PID dal file temporaneo e termina il processo
keep_alive.shin background.
Configurazione di Claude Code
Claude Code supporta gli hook degli eventi del ciclo di vita configurati nelle sue impostazioni. I file di configurazione di esempio per Claude Code si trovano in:
/google/samples/agents/keepalive/claude/
In Claude Code, i seguenti hook di eventi gestiscono il processo keep-alive:
UserPromptSubmit: l'hook viene eseguito quando l'utente invia un prompt. Avvia lo script keep-alive in background:/google/scripts/keep_alive.sh & echo $! > /tmp/claude_keep_alive.pidNotification: l'hook viene eseguito quando Claude Code emette una notifica o si mette in pausa per l'input utente. Termina il processo in background keep-alive attivo: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
Per applicare la configurazione di esempio, copia o unisci i file di esempio da
/google/samples/agents/keepalive/claude/ nella directory di configurazione di Claude (ad esempio, ~/.claude/settings.json o la configurazione a livello di progetto).
Configurazione di Antigravity CLI
L'interfaccia a riga di comando Antigravity supporta gli hook degli eventi del ciclo di vita definiti nelle sue impostazioni. I file di configurazione di esempio per Antigravity CLI si trovano in:
/google/samples/agents/keepalive/gemini/
In Antigravity CLI, i seguenti hook di eventi gestiscono il processo keep-alive:
BeforeAgent: l'hook viene eseguito prima che Antigravity CLI inizi a eseguire le azioni. Avvia lo script keep-alive in background:/google/scripts/keep_alive.sh & echo $! > /tmp/gemini_keep_alive.pidNotification: l'hook viene eseguito quando l'agente completa il suo turno o richiede il feedback dell'utente. Termina il processo 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
Per applicare la configurazione di esempio, copia o unisci i file di esempio da
/google/samples/agents/keepalive/gemini/ nella directory di configurazione
di Antigravity CLI (ad esempio, ~/.gemini/config.yaml o le impostazioni progetto).
Integrazione di agenti personalizzati
Se crei o utilizzi agenti AI personalizzati, puoi implementare lo stesso pattern keep-alive
avviando /google/scripts/keep_alive.sh come processo in background
durante l'esecuzione attiva dell'agente e terminando il processo quando l'agente entra
in uno stato di inattività o attesa.
Riprendi una workstation sospesa
Quando una workstation è in STATE_SUSPENDED, puoi riprenderla in qualsiasi momento:
- ConsoleGoogle Cloud : nella console Google Cloud , vai alla pagina Workstation e fai clic su Avvia o Inizia accanto alla workstation sospesa.
gcloudCLI: esegui il comandogcloud workstations start:gcloud workstations start WORKSTATION_NAME \ --cluster=CLUSTER_NAME \ --region=LOCATION \ --config=CONFIG_NAMESostituisci quanto segue:
WORKSTATION_NAME: il nome della workstation.CLUSTER_NAME: il nome del cluster di workstation.LOCATION: la regione in cui si trova il cluster di workstation.CONFIG_NAME: il nome della configurazione della workstation.
Connessione tramite browser o SSH: se accedi all'URL web della tua workstation o ti connetti tramite SSH, la workstation riprende automaticamente l'esecuzione.
Una volta ripristinati, tutti i buffer del terminale, la cronologia dei comandi dell'agente e i file dello spazio di lavoro vengono ripristinati esattamente come li avevi lasciati.
Passaggi successivi
- Creare una configurazione della workstation.
- Scopri di più sulla programmazione assistita da agenti AI con Gemini CLI.
- Esplora le immagini di base preconfigurate.
- Scopri come connetterti con il supporto SSH.