Desarrollo optimizado para agentes

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

Los tiempos de espera de inactividad de las estaciones de trabajo estándar pueden apagar y borrar las VMs de las 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. La optimización del desarrollo 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 el tiempo de espera por inactividad en lugar de detenerla. Suspender 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 de mantenimiento con vida del ciclo de vida: Estos hooks permiten que los agentes de IA ejecuten una secuencia de comandos de mantenimiento con vida en segundo plano (/google/scripts/keep_alive.sh) durante el procesamiento activo para evitar tiempos de espera y finalizar la secuencia de comandos cuando se espera la entrada del usuario o después de finalizar las tareas, lo que permite que la estación de trabajo entre en un estado de inactividad y se suspenda.

Cómo funciona la optimización de agentes

La optimización del agente garantiza un estado persistente, eficiencia de costos y un funcionamiento sin problemas durante las tareas de larga duración:

  • Procesamiento activo: Cuando un agente comienza a ejecutar las instrucciones del usuario, un hook del ciclo de vida inicia /google/scripts/keep_alive.sh en segundo plano. Esta secuencia de comandos envía señales de actividad periódicas que impiden que Cloud Workstations marque la estación de trabajo como inactiva.
  • Espera de la entrada del usuario o la finalización de la tarea: Cuando el agente completa su trabajo o se detiene para solicitarle al desarrollador que revise o ingrese información adicional, un hook de evento finaliza el proceso de mantenimiento en segundo plano.
  • Suspensión automática: Sin indicadores de actividad activos 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 consola Google Cloud , 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 terminal y el contexto del espacio de trabajo intactos.

Cómo configurar la suspensión de la estación de trabajo

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

Selecciona la pestaña que corresponda a la forma en que planeas usar las muestras de esta página:

Console

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

gcloud

En la consola de Google Cloud , activa Cloud Shell.

Activa Cloud Shell

En la parte inferior de la consola de Google Cloud , 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 CLI de gcloud.

    Instala 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 documentación de autenticación de Google Cloud .

Console

Para configurar la suspensión en una configuración de estación de trabajo en la consola deGoogle Cloud , sigue estos pasos:

  1. En la consola de Google Cloud , navega a Configuraciones de estaciones de trabajo.

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

  2. Haz clic en Agregar Crear o en una configuración existente y, luego, en Editar 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, por ejemplo, 30 minutos.

  5. En el menú desplegable Respuesta de inactividad, selecciona Suspender (o Suspender la estación de trabajo cuando se agote 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 nueva configuración de estación de trabajo con la suspensión habilitada, ejecuta el comando gcloud workstations configs create con la marca --idle-action=suspend:

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

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

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 estaciones 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 la carga útil de workstationConfigs:

{
  "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 estos ejemplos, se muestra cómo configurar agentes de programación de IA para administrar el ciclo de vida de keep-alive automáticamente.

Cómo funcionan los hooks de keep-alive del agente

Los agentes de programación de IA modernos proporcionan sistemas de hooks de eventos que ejecutan comandos en 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).
  • Webhook de notificación o espera de entrada del usuario: Se activa cuando el agente completa su tarea o se detiene para solicitarle información al usuario. El gancho 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 sus parámetros de configuración. Los archivos de configuración de muestra para Claude Code se encuentran en la siguiente ubicación:

/google/samples/agents/keepalive/claude/

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

  1. UserPromptSubmit: El gancho se ejecuta cuando el usuario envía una instrucción. Inicia la secuencia de comandos de 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 recibir la entrada del usuario. Cierra el proceso activo en segundo plano de 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
    

Para aplicar la configuración de ejemplo, copia o combina los archivos de ejemplo 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 del ciclo de vida definidos en su configuración. Los archivos de configuración de ejemplo para la CLI de Antigravity se encuentran en la siguiente ubicación:

/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 de keep-alive en segundo plano:

    /google/scripts/keep_alive.sh & echo $! > /tmp/gemini_keep_alive.pid
    
  2. Notification: El gancho 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 ejemplo, copia o combina los archivos de ejemplo de /google/samples/agents/keepalive/gemini/ en el 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 mantener activo lanzando /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 de inactividad o espera.

Reanuda una estación de trabajo suspendida

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

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

    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.
  • Conexión SSH o de navegador: Navegar a la URL web de tu estación de trabajo o conectarte con SSH activa automáticamente la reanudación de la estación de trabajo.

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

¿Qué sigue?