Desarrollo optimizado para agentes

Cloud Workstations proporciona un entorno de ejecución optimizado para agentes de codificación de IA autónomos e interactivos, como la CLI de Antigravity y Claude Code. Cuando se ejecutan flujos de trabajo de desarrollo de agentes, los agentes suelen realizar tareas asíncronas de larga duración (como la generación de código, la refactorización profunda y la ejecución de pruebas) o se detienen mientras esperan la entrada y la revisión humanas.

Los tiempos de espera de inactividad estándar de las estaciones de trabajo pueden apagar y borrar las VMs de estaciones de trabajo efímeras durante períodos prolongados de inactividad, lo que finaliza el contenedor y requiere que se reinicialice el contexto del agente. El desarrollo optimizado para agentes resuelve este problema combinando dos funciones clave:

  1. Suspensión de la estación de trabajo (IdleAction.SUSPEND): Esta función suspende automáticamente la VM de la estación de trabajo cuando alcanza su tiempo de espera de inactividad en lugar de detenerla. La suspensión de la estación de trabajo conserva la RAM de la máquina virtual, los procesos en ejecución, los archivos abiertos y el contexto del agente activo en el almacenamiento persistente, mientras que detiene los costos de procesamiento de la CPU virtual y la memoria.
  2. Hooks keep-alive del ciclo de vida: Estos agentes de IA permiten ejecutar una secuencia de comandos keep-alive en segundo plano (/google/scripts/keep_alive.sh) durante el procesamiento activo para evitar los tiempos de espera y finalizar la secuencia de comandos cuando esperan la entrada del usuario o después de terminar las tareas, lo que permite que la estación de trabajo entre en un estado inactivo y se suspenda.

Cómo funciona la optimización de agentes

La optimización de agentes garantiza un estado persistente, eficiencia de costos y un funcionamiento continuo durante las tareas de larga duración:

  • Procesamiento activo: Cuando un agente comienza a ejecutar instrucciones del usuario, un hook de ciclo de vida inicia /google/scripts/keep_alive.sh en segundo plano. Esta secuencia de comandos envía señales de mantenimiento activo periódicas que impiden que Cloud Workstations marque la estación de trabajo como inactiva.
  • Esperar la entrada del usuario o la finalización de la tarea: Cuando el agente completa su trabajo o se detiene para solicitar al desarrollador una revisión o una entrada adicional, un hook de evento finaliza el proceso de mantenimiento activo en segundo plano.
  • Suspensión automática: Sin señales de keep-alive activas ni tráfico entrante, el temporizador de inactividad de la estación de trabajo realiza una cuenta regresiva hasta el umbral de tiempo de espera de inactividad configurado. Cuando se agota el tiempo de espera, Cloud Workstations hace que la estación de trabajo pase a STATE_SUSPENDED en lugar de apagarse.
  • Reanudación instantánea: Cuando el desarrollador regresa y se vuelve a conectar (a través de la Google Cloud consola, un IDE o SSH), la estación de trabajo se reanuda de inmediato desde el almacenamiento persistente con el estado completo del agente, las sesiones de la terminal y el contexto del espacio de trabajo intactos.

Configura la suspensión de la estación de trabajo

Para habilitar la suspensión de la estación de trabajo, actualiza su configuración con un idleAction establecido en SUSPEND y una duración de idleTimeout en segundos, como 1800s durante 30 minutos.

Selecciona la pestaña según cómo planeas usar las muestras de esta página:

Console

Cuando usas la Google Cloud consola de para acceder a los Google Cloud servicios y las APIs, no necesitas configurar la autenticación.

gcloud

En la Google Cloud consola de, activa Cloud Shell.

Activa Cloud Shell

En la parte inferior de la Google Cloud consola de, se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

REST

Para usar las muestras de la API de REST incluidas en esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la gcloud CLI.

    Instala la Google Cloud CLI.

    Si usas un proveedor de identidad externo (IdP), primero debes acceder a la CLI de gcloud con tu identidad federada.

Para obtener más información, consulta Autentícate para usar REST en la Google Cloud documentación de autenticación de.

Console

Para configurar la suspensión en una configuración de estación de trabajo en la Google Cloud consola, haz lo siguiente:

  1. En la Google Cloud consola de, navega a Parámetros de configuración de las estaciones de trabajo.

    Ir a los parámetros de configuración de las estaciones de trabajo

  2. Haz clic en add Crear o en una configuración existente y, luego, en edit Editar.

  3. Completa la sección Información básica y continúa con Configuración de la máquina.

  4. En Tiempo de espera de inactividad, establece la duración del tiempo de espera de inactividad, como 30 minutos.

  5. En el menú desplegable Acción inactiva, selecciona Suspender (o Suspender la estación de trabajo en el tiempo de espera de inactividad).

  6. Completa los pasos de configuración restantes y haz clic en Crear (o Guardar).

gcloud

Para crear una configuración de estación de trabajo nueva con la suspensión habilitada, ejecuta el gcloud workstations configs create comando con la --idle-action=suspend marca:

gcloud workstations configs create CONFIG_NAME \
  --cluster=CLUSTER_NAME \
  --region=LOCATION \
  --idle-timeout=1800 \
  --idle-action=suspend

Para actualizar una configuración de estación de trabajo existente para usar la suspensión, ejecuta el gcloud workstations configs update comando:

gcloud workstations configs update CONFIG_NAME \
  --cluster=CLUSTER_NAME \
  --region=LOCATION \
  --idle-timeout=1800 \
  --idle-action=suspend

Reemplaza lo siguiente:

  • CONFIG_NAME: Es el nombre de la configuración de la estación de trabajo.
  • CLUSTER_NAME: Es el nombre del clúster de la estación de trabajo.
  • LOCATION: Es la región en la que se encuentra el clúster de la estación de trabajo.

REST

Para configurar la suspensión con la API de REST, establece idleAction en SUSPEND y idleTimeout en la duración elegida en tu workstationConfigs carga útil:

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

Configura agentes con hooks de keep-alive de muestra

Las imágenes base preconfiguradas de Cloud Workstations vienen preinstaladas con archivos de configuración de agentes de muestra en /google/samples/agents/keepalive/. En estas muestras, se muestra cómo configurar agentes de codificación de IA para administrar el ciclo de vida de keep-alive de forma automática.

Cómo funcionan los hooks keep-alive de agentes

Los agentes de codificación de IA modernos proporcionan sistemas de hooks de eventos que ejecutan comandos en los hitos clave del ciclo de vida:

  • Hook de inicio de ejecución: Se activa antes de que el agente comience a procesar la entrada del usuario. El hook inicia /google/scripts/keep_alive.sh en segundo plano y escribe el ID del proceso en segundo plano (PID) en un archivo temporal (por ejemplo, /tmp/agent_keep_alive.pid).
  • Hook de notificación o espera de entrada del usuario: Se activa cuando el agente completa su tarea o se detiene para solicitar al usuario que ingrese datos. El hook lee el PID del archivo temporal y finaliza el proceso keep_alive.sh en segundo plano.

Configuración de Claude Code

Claude Code admite hooks de eventos de ciclo de vida configurados en su configuración. Los archivos de configuración de muestra para Claude Code se encuentran en:

/google/samples/agents/keepalive/claude/

En Claude Code, los siguientes hooks de eventos administran el proceso de keep-alive:

  1. UserPromptSubmit: El hook se ejecuta cuando el usuario envía un mensaje. Inicia el script keep-alive en segundo plano:

    /google/scripts/keep_alive.sh & echo $! > /tmp/claude_keep_alive.pid
    
  2. Notification: El hook se ejecuta cuando Claude Code emite una notificación o se detiene para la entrada del usuario. Finaliza el proceso activo de keep-alive en segundo plano:

    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
    

Para aplicar la configuración de muestra, copia o une los archivos de muestra de /google/samples/agents/keepalive/claude/ en tu directorio de configuración de Claude (por ejemplo, ~/.claude/settings.json o la configuración a nivel del proyecto).

Configuración de la CLI de Antigravity

La CLI de Antigravity admite hooks de eventos de ciclo de vida definidos en su configuración. Los archivos de configuración de muestra para la CLI de Antigravity se encuentran en:

/google/samples/agents/keepalive/gemini/

En la CLI de Antigravity, los siguientes hooks de eventos administran el proceso de keep-alive:

  1. BeforeAgent: El hook se ejecuta antes de que la CLI de Antigravity comience a ejecutar acciones. Inicia la secuencia de comandos keep-alive en segundo plano:

    /google/scripts/keep_alive.sh & echo $! > /tmp/gemini_keep_alive.pid
    
  2. Notification: El hook se ejecuta cuando el agente completa su turno o requiere comentarios del usuario. Finaliza el proceso de 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
    

Para aplicar la configuración de muestra, copia o une los archivos de muestra de /google/samples/agents/keepalive/gemini/ en tu directorio de configuración de la CLI de Antigravity (por ejemplo, ~/.gemini/config.yaml o la configuración del proyecto).

Integración de agentes personalizados

Si compilas o usas agentes de IA personalizados, puedes implementar el mismo patrón de mantenimiento activo iniciando /google/scripts/keep_alive.sh como un proceso en segundo plano durante la ejecución activa del agente y finalizando el proceso cuando el agente entra en un estado inactivo o de espera.

Reanuda una estación de trabajo suspendida

Cuando una estación de trabajo está en STATE_SUSPENDED, puedes reanudarla en cualquier momento:

  • Google Cloud Consola de: En la Google Cloud consola de, ve a la página Estaciones de trabajo y haz clic en Iniciar o Comenzar junto a la estación de trabajo suspendida.
  • gcloud CLI: Ejecuta el gcloud workstations start comando:

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

    Reemplaza lo siguiente:

    • WORKSTATION_NAME: Es el nombre de la estación de trabajo.
    • CLUSTER_NAME: Es el nombre del clúster de la estación de trabajo.
    • LOCATION: Es la región en la que se encuentra el clúster de la estación de trabajo.
    • CONFIG_NAME: Es el nombre de la configuración de la estación de trabajo.
  • Navegador o conexión SSH: Si navegas a la URL web de tu estación de trabajo o te conectas con SSH, se activa automáticamente la reanudación de la estación de trabajo.

Una vez que se reanuda, todos los búferes de la terminal, el historial de comandos del agente y los archivos del espacio de trabajo se restablecen exactamente como los dejaste.

¿Qué sigue?