Desplegar una aplicación de IA basada en agentes en GKE con Agent Development Kit (ADK) y un LLM autohospedado

En este tutorial se muestra cómo desplegar y gestionar aplicaciones de IA/ML de agentes en contenedores mediante Google Kubernetes Engine (GKE). Si combinas el kit de desarrollo de agentes (ADK) de Google con un modelo de lenguaje extenso (LLM) autohospedado, como Llama 3.1, servido por vLLM, puedes poner en marcha agentes de IA de forma eficiente y a gran escala, al tiempo que mantienes el control total de la pila del modelo. En este tutorial se explica el proceso completo para llevar un agente basado en Python desde el desarrollo hasta el despliegue en producción en un clúster de Autopilot de GKE con aceleración de GPU.

Este tutorial está dirigido a ingenieros de aprendizaje automático, desarrolladores y arquitectos de Cloud que estén interesados en usar las funciones de orquestación de contenedores de Kubernetes para servir aplicaciones de IA y aprendizaje automático de agentes. Para obtener más información sobre los roles habituales y las tareas de ejemplo a las que hacemos referencia en el contenido, consulta Roles y tareas habituales de los usuarios de GKE Enterprise. Google Cloud

.

Antes de empezar, asegúrate de que conoces lo siguiente:

Fondo

En esta sección se describen las tecnologías clave que se usan en este tutorial.

Agent Development Kit (ADK)

Agent Development Kit (ADK) es un framework flexible y modular para desarrollar e implementar agentes de IA. Aunque está optimizado para Gemini y el ecosistema de Google, el ADK no requiere que uses un modelo o una implementación específicos, y se ha creado para que sea compatible con otros frameworks. ADK se ha diseñado para que el desarrollo de agentes se parezca más al desarrollo de software, de modo que los desarrolladores puedan crear, implementar y orquestar más fácilmente arquitecturas de agentes que van desde tareas básicas hasta flujos de trabajo complejos.

Para obtener más información, consulta la documentación del ADK.

Servicio de Kubernetes gestionado de GKE

Google Cloud ofrece una amplia gama de servicios, incluido GKE, que es ideal para desplegar y gestionar cargas de trabajo de IA y aprendizaje automático. GKE es un servicio de Kubernetes gestionado que simplifica el despliegue, el escalado y la gestión de aplicaciones en contenedores. GKE proporciona la infraestructura necesaria, incluidos recursos escalables, computación distribuida y redes eficientes, para gestionar las demandas de computación de los LLMs.

Para obtener más información sobre los conceptos clave de Kubernetes, consulta Empezar a aprender sobre Kubernetes. Para obtener más información sobre GKE y cómo te ayuda a escalar, automatizar y gestionar Kubernetes, consulta la descripción general de GKE.

vLLM

vLLM es un framework de servicio de LLMs de código abierto muy optimizado que puede aumentar el rendimiento del servicio en GPUs. Incluye funciones como las siguientes:

  • Implementación optimizada de Transformer con PagedAttention.
  • Agrupación continua para mejorar el rendimiento general del servicio.
  • Paralelismo de tensores y servicio distribuido en varias GPUs.

Para obtener más información, consulta la documentación de vLLM.

Objetivos

En este tutorial te explicamos cómo hacer lo siguiente:

  1. Configura tu Google Cloud entorno.
  2. Aprovisiona un clúster de GKE con GPU.
  3. Despliega un modelo Llama 3.1 mediante el servidor de inferencia vLLM.
  4. Crea una imagen de contenedor para tu agente basado en ADK.
  5. Implementa el agente en el clúster de GKE y conéctalo al LLM autohosted.
  6. Prueba el agente desplegado.

Arquitectura

En este tutorial se presenta una arquitectura escalable para desplegar aplicaciones de IA basadas en agentes en GKE. La aplicación del agente del ADK se ejecuta en un grupo de nodos de CPU estándar y el LLM autohospedado (Llama 3.1 en vLLM) se ejecuta en un grupo de nodos con GPU, ambos en el mismo clúster de GKE. Esta arquitectura separa la lógica de la aplicación del agente de la carga de trabajo de inferencia del LLM, lo que permite que cada componente se escale y se gestione de forma independiente.

En este diagrama se muestra una arquitectura escalable para desplegar aplicaciones de IA basadas en agentes en GKE, que separa la lógica de la aplicación del agente de la carga de trabajo de inferencia del modelo de lenguaje extenso (LLM) para que se puedan escalar y gestionar de forma independiente. La arquitectura consta de dos componentes principales: la aplicación del agente del ADK, que se ejecuta en un grupo de nodos de CPU estándar, y el LLM autohospedado (Llama 3.1 en vLLM), que se ejecuta en un grupo de nodos con GPU. Ambos componentes se encuentran en el mismo clúster de GKE.
Figura 1: arquitectura escalable para desplegar IA basada en agentes en GKE.

La arquitectura tiene dos componentes principales, cada uno en su propio GKE Deployment:

  • Aplicación del agente de ADK: la lógica empresarial y las herramientas personalizadas de tu agente (como get_weather) se encuentran en una imagen de contenedor. La imagen se ejecuta en un grupo de nodos de CPU estándar y se comunica con el LLM mediante un servicio interno de Kubernetes.

  • LLM autohospedado (Llama 3.1 en vLLM): el modelo Llama 3.1 se ejecuta en un servidor vLLM dedicado en un pool de nodos con GPU. En esta implementación se usa una imagen de contenedor pública (vllm/vllm-openai:v0.8.5) configurada para descargar y servir el modelo especificado de Hugging Face cuando se inicia el contenedor. El agente se comunica con este servidor a través de una API REST expuesta por el servicio de vllm-llama3-serviceKubernetes.

Tanto el agente del ADK como las implementaciones de vLLM se ejecutan en el mismo clúster de GKE. Esta colocación en un solo clúster simplifica la conexión en red, la gestión y la implementación, al tiempo que permite asignar hardware especializado a los componentes de la aplicación.

Costes

En este tutorial se usan los siguientes componentes facturables de Google Cloud:

Consulta los precios de cada servicio para conocer los posibles costes.

Antes de empezar

  • Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  • In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  • Verify that billing is enabled for your Google Cloud project.

  • Enable the required APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  • In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  • Verify that billing is enabled for your Google Cloud project.

  • Enable the required APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  • Make sure that you have the following role or roles on the project: roles/container.admin, roles/iam.serviceAccountAdmin, roles/artifactregistry.admin, roles/cloudbuild.builds.editor, roles/resourcemanager.projectIamAdmin

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Ir a IAM
    2. Selecciona el proyecto.
    3. Haz clic en Conceder acceso.
    4. En el campo Nuevos principales, introduce tu identificador de usuario. Normalmente, se trata de la dirección de correo de una cuenta de Google.

    5. En la lista Selecciona un rol, elige un rol.
    6. Para conceder más roles, haz clic en Añadir otro rol y añade cada rol adicional.
    7. Haz clic en Guardar.
    8. Obtén un token de acceso de lectura de Hugging Face para descargar el modelo Llama. También debes solicitar acceso al modelo Llama 3.1.
    9. Preparar el entorno

      En este tutorial se usa Cloud Shell para gestionar los recursos alojados en Google Cloud. Cloud Shell viene preinstalado con el software que necesitas para este tutorial, como kubectl, terraform y Google Cloud CLI.

      Para configurar tu entorno con Cloud Shell, sigue estos pasos:

      1. En la Google Cloud consolaIcono de activación de Cloud Shell, inicia una sesión de Cloud Shell y haz clic en Activar Cloud Shell. Esta acción inicia una sesión en un panel de consola. Google Cloud
      2. Define las variables de entorno predeterminadas:

        gcloud config set project PROJECT_ID
        export GOOGLE_CLOUD_REGION=REGION
        export PROJECT_ID=PROJECT_ID
        

        Sustituye los siguientes valores:

        • PROJECT_ID: tu Google Cloud ID de proyecto.
        • REGION: la Google Cloud región (por ejemplo, us-east4) para aprovisionar tu clúster de GKE, Artifact Registry y otros recursos regionales. Asegúrate de especificar una región que admita GPUs L4 e instancias de tipo de máquina G2. Para comprobar la disponibilidad de las regiones, consulta las regiones y zonas de las GPUs en la documentación de Compute Engine.

      Clonar el proyecto de ejemplo

      1. En el terminal de Cloud Shell, clona el repositorio de código de ejemplo del tutorial:

        git clone https://github.com/GoogleCloudPlatform/kubernetes-engine-samples.git
        
      2. Ve al directorio del tutorial:

        cd kubernetes-engine-samples/ai-ml/adk-vllm
        

      Crear y configurar Google Cloud recursos

      Para desplegar tu agente, primero debes aprovisionar los recursos Google Cloud necesarios. Puedes crear el clúster de GKE y el repositorio de Artifact Registry con gcloud CLI o Terraform.

      gcloud

      En esta sección se proporcionan comandos de la CLI de gcloud para configurar tu clúster de GKE y Artifact Registry.

      1. Crea un clúster de GKE: puedes desplegar tu aplicación basada en agentes en contenedores en un clúster Autopilot o Estándar de GKE. Usa un clúster Autopilot para disfrutar de una experiencia de Kubernetes totalmente gestionada. Para elegir el modo de funcionamiento de GKE que mejor se adapte a tus cargas de trabajo, consulta Acerca de los modos de funcionamiento de GKE.

        Autopilot

        En Cloud Shell, ejecuta el siguiente comando:

        gcloud container clusters create-auto CLUSTER_NAME \
            --location=$GOOGLE_CLOUD_REGION
        

        Sustituye CLUSTER_NAME por el nombre de tu clúster de GKE.

        Con Autopilot, GKE aprovisiona automáticamente los nodos en función de las solicitudes de recursos de tu carga de trabajo. La GPU necesaria para el LLM se solicita en el deploy-llm.yaml manifiesto mediante un nodeSelector.

        Para añadir una nodeSelector solicitud de la nvidia-l4 GPU, sigue estos pasos:

        1. Abre kubernetes-engine-samples/ai-ml/adk-vllm/deploy-llm/deploy-llm.yaml en un editor.
        2. Añade lo siguiente a nodeSelector en spec.template.spec:

          nodeSelector:
          cloud.google.com/gke-accelerator: nvidia-l4
          

        Estándar

        1. En Cloud Shell, crea un clúster Standard ejecutando el siguiente comando:

          gcloud container clusters create CLUSTER_NAME \
              --location=$GOOGLE_CLOUD_REGION
          

          Sustituye CLUSTER_NAME por el nombre de tu clúster de GKE.

        2. Crea un grupo de nodos con GPU para tu clúster ejecutando el siguiente comando:

          gcloud container node-pools create gpu-node-pool \
              --cluster=CLUSTER_NAME \
              --location=$GOOGLE_CLOUD_REGION \
              --machine-type=g2-standard-8 \
              --accelerator=type=nvidia-l4,count=1 \
              --enable-gvnic
          

          El archivo deploy-llm.yaml especifica una GPU nvidia-l4, que está disponible en la serie de máquinas G2. Para obtener más información sobre este tipo de máquina, consulta Tipos de máquinas con GPU en la documentación de Compute Engine.

      2. Crea un repositorio de Artifact Registry: crea un repositorio de Artifact Registry para almacenar y gestionar de forma segura la imagen de contenedor Docker de tu agente.

        gcloud artifacts repositories create REPO_NAME \
            --repository-format=docker \
            --location=$GOOGLE_CLOUD_REGION
        

        Sustituye REPO_NAME por el nombre del repositorio de Artifact Registry que quieras usar (por ejemplo, adk-repo).

      3. Obtener la URL del repositorio: para verificar la ruta completa a tu repositorio, ejecuta este comando. Usarás este formato para etiquetar tu imagen Docker cuando compiles la imagen del agente.

        gcloud artifacts repositories describe REPO_NAME \
            --location $GOOGLE_CLOUD_REGION
        

      Terraform

      En esta sección se describe cómo usar la configuración de Terraform incluida en el repositorio de ejemplo para aprovisionar tus recursos de Google Cloud automáticamente.

      1. Ve al directorio de Terraform: el directorio \terraform contiene todos los archivos de configuración necesarios para crear el clúster de GKE y otros recursos obligatorios.

        cd terraform
        
      2. Crea un archivo de variables de Terraform: copia el archivo de variables de ejemplo (example_vars.tfvars) para crear tu propio archivo vars.tfvars.

        cp example_vars.tfvars vars.tfvars
        

        Abre el archivo vars.tfvars en un editor y sustituye los valores de marcador de posición por tu configuración específica. Como mínimo, debes sustituir PROJECT_ID por el Google Cloud ID de tu proyectoCLUSTER_NAME y por el nombre de tu clúster de GKE.

      3. Inicializa Terraform: para descargar los complementos de proveedor necesarios para Google Cloud, ejecuta este comando.

        terraform init
        
      4. Revisa el plan de ejecución: este comando muestra los cambios que Terraform hará en la infraestructura.

        terraform plan -var-file=vars.tfvars
        
      5. Aplica la configuración: para crear los recursos en tu Google Cloud proyecto, ejecuta el plan de Terraform. Confirma la acción con yes cuando se te solicite.

        terraform apply -var-file=vars.tfvars
        

      Después de ejecutar estos comandos, Terraform aprovisiona tu clúster de GKE y tu repositorio de Artifact Registry, y configura los roles de gestión de identidades y accesos y las cuentas de servicio necesarios, incluida la federación de identidades de carga de trabajo para GKE.

      Para obtener más información sobre cómo usar Terraform, consulta Aprovisionar recursos de GKE con Terraform.

      Configurar kubectl para que se comunique con tu clúster

      Para configurar kubectl de forma que se comunique con tu clúster, ejecuta el siguiente comando:

      gcloud container clusters get-credentials CLUSTER_NAME \
          --location=${GOOGLE_CLOUD_REGION}
      

      Sustituye CLUSTER_NAME por el nombre de tu clúster de GKE.

      Crear la imagen del agente

      Una vez que hayas creado la infraestructura con la CLI de gcloud o Terraform, sigue estos pasos para crear tu aplicación de agente.

      1. Concede el rol de gestión de identidades y accesos necesario para Cloud Build: el servicio de Cloud Build requiere permisos para enviar la imagen de contenedor del agente a Artifact Registry. Asigna el rol roles/artifactregistry.writer a la cuenta de servicio predeterminada de Compute Engine, que usa Cloud Build.

        1. Crea el correo de la cuenta de servicio predeterminada de Compute Engine:

          export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
          export COMPUTE_SA_EMAIL=${PROJECT_NUMBER}-compute@developer.gserviceaccount.com
          
        2. Asigna el rol roles/artifactregistry.writer a la cuenta de servicio:

          gcloud projects add-iam-policy-binding $PROJECT_ID \
              --member=serviceAccount:${COMPUTE_SA_EMAIL} \
              --role=roles/artifactregistry.writer
          
      2. Crea y envía la imagen del contenedor del agente: desde el directorio raíz del proyecto (adk/llama/vllm), crea tu imagen Docker y envíala a Artifact Registry ejecutando estos comandos.

        export IMAGE_URL="${GOOGLE_CLOUD_REGION}-docker.pkg.dev/${PROJECT_ID}/REPO_NAME/adk-agent:latest"
        gcloud builds submit --tag $IMAGE_URL
        
      3. Verifica que la imagen se haya enviado: una vez que se haya completado correctamente el proceso de compilación, comprueba que la imagen de contenedor de tu agente se haya enviado a Artifact Registry. Para ello, consulta la lista de imágenes de tu repositorio.

        gcloud artifacts docker images list ${GOOGLE_CLOUD_REGION}-docker.pkg.dev/${PROJECT_ID}/REPO_NAME
        

        Debería ver un resultado que muestre la imagen que acaba de enviar y etiquetar como latest.

      Desplegar el modelo

      Después de configurar tu clúster de GKE y crear la imagen del agente, el siguiente paso es desplegar el modelo Llama 3.1 autohosted en tu clúster. Para ello, despliega un servidor de inferencia de vLLM preconfigurado que extrae el modelo de Hugging Face y lo sirve internamente en el clúster.

      1. Crea un secreto de Kubernetes para las credenciales de Hugging Face: para permitir que el clúster de GKE descargue el modelo Llama 3.1 protegido, debes proporcionar tu token de Hugging Face como secreto de Kubernetes. El manifiesto deploy-llm.yaml está configurado para usar este secreto con fines de autenticación.

        kubectl create secret generic hf-secret \
            --from-literal=hf-token-secret=HUGGING_FACE_TOKEN
        

        Sustituye HUGGING_FACE_TOKEN por tu token.

      2. Ver el archivo de manifiesto: en el directorio raíz del proyecto (adk/llama/vllm), vaya al directorio /deploy-llm que contiene el archivo de manifiesto de la implementación del modelo.

        cd deploy-llm
        
      3. Aplica el manifiesto: ejecuta el siguiente comando para aplicar el manifiesto deploy-llm.yaml a tu clúster.

        kubectl apply -f deploy-llm.yaml
        

        El comando crea tres recursos de Kubernetes:

        • Una implementación que ejecuta el servidor vLLM, configurado para usar el modelo meta-llama/Llama-3.1-8B-Instruct.
        • Un servicio llamado vllm-llama3-service que expone el servidor vLLM en una dirección IP de clúster interna, lo que permite que el agente del ADK se comunique con él.
        • Un ConfigMap que contiene una plantilla de chat de Jinja que requiere el modelo Llama 3.1.
      4. Verifica el despliegue del modelo: el servidor vLLM extrae los archivos del modelo de Hugging Face. Este proceso puede tardar varios minutos. Puedes monitorizar el estado del pod para asegurarte de que está listo.

        1. Espera a que la implementación esté disponible.

          kubectl wait --for=condition=available --timeout=600s deployment/vllm-llama3-deployment
          
        2. Consulta los registros del pod en ejecución para confirmar que el servidor se ha iniciado correctamente.

          export LLM_POD=$(kubectl get pods -l app=vllm-llama3 -o jsonpath='{.items[0].metadata.name}')
          kubectl logs -f $LLM_POD
          

          La implementación estará lista cuando veas un resultado de registro similar al siguiente, que indica que el servidor LLM se ha iniciado y que las rutas de la API están disponibles:

          INFO 07-16 14:15:16 api_server.py:129] Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
          
        3. Envía una solicitud directamente al servidor del modelo para confirmar que el LLM está listo. Para ello, abre un nuevo terminal de Cloud Shell y ejecuta el siguiente comando para reenviar el vllm-llama3-service a tu máquina local:

          kubectl port-forward service/vllm-llama3-service 8000:8000
          
        4. En otra terminal, envía una solicitud de ejemplo al endpoint de la API del modelo mediante curl. Por ejemplo:

          curl -X POST http://localhost:8000/v1/completions \
            -H "Content-Type: application/json" \
            -d '{
              "model": "meta-llama/Llama-3.1-8B-Instruct",
              "prompt": "Hello!",
              "max_tokens": 10
            }'
          

          Si el comando devuelve una respuesta JSON correcta, tu LLM estará listo. Ahora puedes finalizar el proceso de reenvío de puertos volviendo a la ventana de su terminal y pulsando Ctrl+C. Después, puedes implementar el agente.

      Desplegar la aplicación del agente

      El siguiente paso es implementar la aplicación de agente basada en ADK.

      1. Ve al directorio /deploy-agent: desde el directorio raíz de tu proyecto (adk/llama/vllm), ve al directorio /deploy-agent que contiene el código fuente y el manifiesto de implementación del agente.

        cd ../deploy-agent
        
      2. Actualiza el archivo de manifiesto de la implementación del agente:

        1. El archivo de manifiesto de deploy-agent.yamlejemplo contiene un marcador de posición para el ID de tu proyecto en la URL de la imagen de contenedor. Debes sustituir el marcador de posición por el ID de tu proyecto Google Cloud .

          image: us-central1-docker.pkg.dev/PROJECT_ID/adk-repo/adk-agent:latest
          

          Para realizar esta sustitución, puedes ejecutar el siguiente comando:

          sed -i "s/<PROJECT_ID>/$PROJECT_ID/g" deploy-agent.yaml
          
        2. Asegúrate de que la ruta readinessProbe esté configurada como / en lugar de /dev-ui. Para realizar esta sustitución, puedes ejecutar el siguiente comando:

          sed -i "s|path: /dev-ui/|path: /|g" deploy-agent.yaml
          
      3. Aplica el manifiesto: ejecuta el siguiente comando para aplicar el manifiesto deploy-agent.yaml a tu clúster.

        kubectl apply -f deploy-agent.yaml
        

        Este comando crea dos recursos de Kubernetes:

        • Un Deployment llamado adk-agent que ejecuta la imagen de contenedor de tu agente personalizado.
        • Un servicio llamado adk-agent de tipo NodePort que expone la aplicación del agente para que se pueda acceder a ella con fines de prueba.
      4. Verifica la implementación del agente: comprueba el estado del pod para asegurarte de que se está ejecutando correctamente.

        1. Espera a que la implementación esté disponible:

          kubectl wait --for=condition=available --timeout=300s deployment/adk-agent
          
        2. Consulta los registros del pod del agente en ejecución:

          export AGENT_POD=$(kubectl get pods -l app=adk-agent -o jsonpath='{.items[0].metadata.name}')
          kubectl logs -f $AGENT_POD
          

      El despliegue se habrá realizado correctamente cuando veas un resultado de registro similar al siguiente, que indica que el servidor Uvicorn está en funcionamiento y listo para aceptar solicitudes:

      INFO:     Uvicorn running on http://0.0.0.0:8001 (Press CTRL+C to quit)
      

      Probar el agente desplegado

      Una vez que hayas implementado correctamente el servidor vLLM y la aplicación del agente, puedes probar la funcionalidad integral interactuando con la interfaz de usuario web del agente.

      1. Reenvía el servicio del agente a tu máquina local: el servicio adk-agent es de tipo NodePort, pero la forma más directa de acceder a él desde tu entorno de Cloud Shell es usar el comando kubectl port-forward. Crea un túnel seguro al pod del agente ejecutando este comando.

        kubectl port-forward $AGENT_POD 8001:8001
        
      2. Accede a la interfaz de usuario web del agente: en Cloud Shell, haz clic en el botón Vista previa web y selecciona Obtener vista previa en el puerto 8001. Se abrirá una nueva pestaña del navegador con la interfaz de chat del agente.

      3. Interactúa con el agente: hazle una pregunta que invoque su herramienta get_weather. Por ejemplo:

        What's the weather like in Tokyo?
        

        El agente primero llamará al LLM para entender la intención e identificar la necesidad de usar la herramienta get_weather. A continuación, ejecutará la herramienta con "Tokio" como parámetro. Por último, usará el resultado de la herramienta para generar una respuesta. Deberías ver una respuesta similar a la siguiente:

          The weather in Tokyo is 25°C and sunny.
        
      4. (Opcional) Verifica la llamada a la herramienta en los registros: puedes observar la interacción del agente con el LLM y la ejecución de la herramienta consultando los registros de los pods correspondientes.

        1. Registros de Agent Pod: en un nuevo terminal, consulta los registros del Pod adk-agent. Verás la llamada a la herramienta y su resultado.

          kubectl logs -f $AGENT_POD
          

          El resultado muestra la herramienta a la que se llama y el resultado que se está procesando.

        2. Registros de LLM Pod: consulta los registros del vllm-llama3-deployment Pod para ver la solicitud entrante del agente.

          kubectl logs -f $LLM_POD
          

          En los registros se muestra la petición completa que ha enviado el agente al LLM, incluido el mensaje del sistema, tu consulta y la definición de la herramienta get_weather.

      Cuando termines las pruebas, puedes finalizar el proceso port-forward volviendo a la ventana de su terminal y pulsando Ctrl+C.

      Limpieza

      Para evitar que los recursos utilizados en este tutorial se cobren en tu cuenta de Google Cloud, elimina el proyecto que contiene los recursos o conserva el proyecto y elimina los recursos.

      Eliminar los recursos desplegados

      Para evitar que se apliquen cargos en tu cuenta de Google Cloud por los recursos que has creado en este tutorial, ejecuta los siguientes comandos:

      gcloud

      Si has usado la CLI de gcloud para crear tus recursos, ejecuta los siguientes comandos para eliminar el clúster de GKE y el repositorio de Artifact Registry, y para restaurar los permisos de la cuenta de servicio a su estado original.

      gcloud container clusters delete CLUSTER_NAME \
          --location=$GOOGLE_CLOUD_REGION
      
      gcloud artifacts repositories delete REPO_NAME \
          --location=$GOOGLE_CLOUD_REGION
      
      gcloud projects remove-iam-policy-binding $PROJECT_ID \
          --member=serviceAccount:${COMPUTE_SA_EMAIL} \
          --role=roles/artifactregistry.writer
      

      Terraform

      Si has usado Terraform para aprovisionar tu infraestructura, puedes destruir todos los recursos ejecutando un solo comando desde el directorio /terraform.

      1. En el directorio raíz del proyecto (adk/llama/vllm), ve al directorio /terraform:

        cd terraform
        
      2. Ejecuta este comando para quitar todos los recursos definidos en tus archivos de configuración de Terraform:

        terraform destroy
        

      Siguientes pasos

      • Consulta cómo configurar Horizontal Pod Autoscaler (HPA) para ajustar automáticamente los recursos de tu agente en función de la demanda.
      • Consulta cómo configurar Identity-Aware Proxy (IAP) para tus aplicaciones web que se ejecutan en Google Cloud, lo que proporciona una autorización centralizada para acceder a la interfaz de usuario de tu agente.
      • Consulta cómo usar Cloud Logging y Cloud Monitoring para obtener información valiosa sobre el rendimiento y el estado de tu agente en el clúster de GKE.
      • Consulta ejemplos experimentales en GKE AI Labs que pueden ayudarte a usar GKE para acelerar tus iniciativas de IA basada en agentes.