GSP1350
Descripción general
Este lab se enfoca en la implementación de un servicio de agente para clientes con el Kit de desarrollo de agentes (ADK) para crear un agente de IA que use herramientas remotas, como un servidor de MCP. El principio arquitectónico clave que se demuestra en este lab es la separación de responsabilidades, con una capa de razonamiento distinta (el agente) que se comunica con una capa de herramientas diferente (el servidor de MCP) a través de una API segura.
En este lab, se implementó previamente un servidor de MCP que proporciona datos sobre los animales en un zoológico ficticio a los LLM, por ejemplo, cuando se usa Gemini CLI. En el lab, crearás un agente guía, que consiste en una aplicación de Python, para el zoológico ficticio. El agente usará el servidor de MCP para acceder a detalles sobre los animales del zoológico y también usará Wikipedia para crear una experiencia óptima de guía.
Por último, implementarás el agente guía en Google Cloud Run para que todos los visitantes del zoológico puedan acceder a él en lugar de solo ejecutarse de forma local.
Requisitos previos
- Un servidor de MCP en ejecución en Cloud Run o su URL de servicio asociada
- Un proyecto de Google Cloud con la facturación habilitada
Qué aprenderás
En este lab, aprenderás a realizar las siguientes tareas:
- Estructurar un proyecto de Python para la implementación del ADK
- Implementar un agente que usa herramientas con google-adk
- Conectar un agente a un servidor de MCP remoto para acceder a su conjunto de herramientas
- Implementar una aplicación de Python como contenedor sin servidores en Cloud Run
- Configurar la autenticación segura de servicio a servicio con roles de IAM
- Borrar los recursos de Cloud para evitar generar costos futuros
Requisitos
- Una cuenta de Google Cloud y un proyecto de Google Cloud
- Un navegador web, como Chrome
¿Por qué realizar la implementación en Cloud Run?
Cloud Run es una excelente opción para alojar agentes del ADK porque es una plataforma sin servidores, lo que significa que puedes enfocarte en tu código y no en administrar la infraestructura subyacente. Cloud Run se encarga del trabajo operativo por ti.
Imagínalo como una tienda temporal: solo abre y usa recursos cuando llegan clientes (solicitudes). Cuando no hay clientes, cierra por completo y no pagas por una tienda vacía.
Funciones clave de Cloud Run
Ejecuta contenedores en cualquier lugar
- Usas un contenedor (imagen de Docker) que contiene tu app.
- Cloud Run lo ejecuta en la infraestructura de Google.
- No hay que preocuparse por aplicar parches al SO, configurar VMs o escalar la app.
Escalado automático
- Si 0 personas usan tu app, se ejecutan 0 instancias (pagas $0 cuando está inactiva).
- Si recibe 1,000 solicitudes, se inician tantas copias como sean necesarias.
Sin estado de forma predeterminada
- Cada solicitud puede ir a una instancia diferente.
- Si necesitas almacenar el estado, usa un servicio externo como Cloud SQL, Firestore o Redis.
Admite cualquier lenguaje o framework
- Siempre que se ejecute en un contenedor de Linux, a Cloud Run no le importa si el lenguaje es Python, Go, Node.js, Java o .NET.
Paga por lo que usas
- Se factura por solicitud más tiempo de procesamiento (hasta 100 ms).
- No pagas por recursos inactivos como con una VM tradicional.
Configuración y requisitos
Antes de hacer clic en el botón Comenzar lab
Lee estas instrucciones. Los labs cuentan con un temporizador que no se puede pausar. El temporizador, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.
Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.
Para completar este lab, necesitarás lo siguiente:
- Acceso a un navegador de Internet estándar. Se recomienda el navegador Chrome.
Nota: Usa una ventana del navegador privada o de incógnito (opción recomendada) para ejecutar el lab. Así evitarás conflictos entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
- Tiempo para completar el lab (recuerda que, una vez que comienzas un lab, no puedes pausarlo).
Nota: Usa solo la cuenta de estudiante para este lab. Si usas otra cuenta de Google Cloud, es posible que se apliquen cargos a esa cuenta.
Activa Cloud Shell
Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.
-
Haz clic en Activar Cloud Shell
en la parte superior de la consola de Google Cloud.
-
Haz clic para avanzar por las siguientes ventanas:
- Continúa en la ventana de información de Cloud Shell.
- Autoriza a Cloud Shell para que use tus credenciales para realizar llamadas a la API de Google Cloud.
Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu Project_ID, . El resultado contiene una línea que declara el Project_ID para esta sesión:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.
- Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
gcloud auth list
- Haz clic en Autorizar.
Resultado:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- Puedes solicitar el ID del proyecto con este comando (opcional):
gcloud config list project
Resultado:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Nota: Para obtener toda la documentación de gcloud, en Google Cloud, consulta la guía con la descripción general de gcloud CLI.
Tarea 1: Descarga e instala el ADK y crea una carpeta de proyecto
En esta tarea, habilitarás las APIs pertinentes y crearás una carpeta de proyecto para almacenar el código fuente de la implementación de tu proyecto de Python.
Habilita las APIs y establece las variables de entorno
- En Cloud Shell, haz clic en Abrir editor para abrir el editor de Cloud Shell en tu directorio principal.
- En la barra de acciones del editor de Cloud Shell, haz clic en Ver > Terminal.
Nota: Es posible que debas agrandar la ventana del navegador para encontrar la opción de menú Ver.
Usa esta ventana como tu IDE, con el editor de Cloud Shell (arriba) y la terminal de Cloud Shell (abajo), durante el resto de este lab.
Cierra cualquier instructivo adicional o panel de Gemini que aparezca en el lado derecho de la pantalla para tener más espacio en la ventana para tu editor de código.
-
En la terminal, ingresa el siguiente comando para configurar tu proyecto:
gcloud config set project {{{project_0.project_id | filled in at lab start}}}
Resultado esperado:
Deberías obtener un mensaje de resultado que confirme la propiedad actualizada.
Nota: En caso de que Cloud Shell se reinicie o se agote su tiempo de espera, deberás volver a configurar el proyecto.
-
Ejecuta el siguiente comando para habilitar todos los servicios necesarios:
gcloud services enable \
run.googleapis.com \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
aiplatform.googleapis.com \
compute.googleapis.com
Resultado esperado:
Deberías obtener un mensaje de resultado que confirme que la operación se realizó correctamente.
Haz clic en Revisar mi progreso para verificar el objetivo.
Habilitar las APIs
Crea los directorios del proyecto
-
Ejecuta el siguiente comando, que creará una carpeta principal en el lab para el código fuente del agente:
mkdir zoo_guide_agent && cd zoo_guide_agent
-
Luego, ejecuta el siguiente comando para crear un entorno virtual:
uv venv
-
Ejecuta el siguiente comando para activar el entorno virtual:
source .venv/bin/activate
Ahora, ya tienes todo listo para crear el archivo requirements.txt. En este archivo, se encuentra una lista de las bibliotecas de Python que necesita tu agente de zoológico.
-
Ejecuta el siguiente comando para crear el archivo en el directorio zoo_guide_agent e implementarlo en el editor de Cloud Shell para que puedas editarlo:
cloudshell edit requirements.txt
-
Agrega lo siguiente al archivo requirements.txt y presiona CTRL + S para guardar los cambios:
google-adk==1.12.0
langchain-community
wikipedia
-
Ejecuta el siguiente comando en la terminal para permitir que el administrador de paquetes uv instale tus paquetes de Python:
uv pip install -r requirements.txt
-
Configura variables para tu proyecto, región y usuario actuales con estos comandos:
export PROJECT_ID=$(gcloud config get-value project)
export REGION=$(gcloud compute project-info describe \
--format="value(commonInstanceMetadata.items[google-compute-default-region])")
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
export SERVICE_ACCOUNT="${PROJECT_NUMBER}-compute@developer.gserviceaccount.com"
Nota: En caso de que Cloud Shell se reinicie o se agote su tiempo de espera, deberás volver a inicializar las variables anteriores.
-
Crea y abre un archivo .env para autenticar el agente en el directorio zoo_guide_agent con el siguiente comando:
cloudshell edit .env
Se abrirá el directorio que contiene el archivo .env en el editor de Cloud Shell.
-
Agrega lo siguiente al archivo .env y guarda los cambios:
MODEL="{{{ project_0.startup_script.gemini_flash_model_id | filled in at lab start }}}"
SERVICE_ACCOUNT="${PROJECT_NUMBER}-compute@developer.gserviceaccount.com"
Conéctate al endpoint seguro del servidor de MCP
En esta sección, establecerás una conexión con tu servidor de MCP remoto.
-
Vuelve a la terminal de Cloud Shell y ejecuta el siguiente comando para otorgarle permiso a la identidad de servicio de Cloud Run para llamar al servidor de MCP remoto:
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$SERVICE_ACCOUNT" \
--role="roles/run.invoker"
-
Ejecuta el siguiente comando para guardar la URL del servidor de MCP en una variable de entorno:
echo -e "\nMCP_SERVER_URL=https://zoo-mcp-server-${PROJECT_NUMBER}.${REGION}.run.app/mcp/" >> .env
-
Luego, crea el archivo __init__.py. Este archivo le indica a Python que el directorio zoo_guide_agent es un paquete:
cloudshell edit __init__.py
-
En el editor de Cloud Shell que se abrirá, agrega el siguiente código a __init__.py y guarda los cambios:
from . import agent
Tarea 2: Crea el flujo de trabajo del agente
En esta tarea, configurarás el flujo de trabajo del agente guía del zoológico. Primero, importarás las bibliotecas pertinentes para la configuración inicial. Luego, definirás las capacidades del agente del zoológico (qué herramientas usa) y los agentes especialistas. Luego, definirás el agente de flujo de trabajo y, por último, organizarás el flujo de trabajo principal.
Crea el archivo principal agent.py
Paso 1: Importa las bibliotecas y realiza la configuración inicial
Este primer bloque incorpora todas las bibliotecas necesarias del ADK y Google Cloud. También configura el registro y carga las variables de entorno desde tu archivo .env, lo que es fundamental para acceder a tu modelo y a la URL del servidor.
Paso 2: Define las herramientas (las capacidades del agente)
La eficacia de un agente depende de las herramientas que puede usar. En esta sección, definirás todas las capacidades de tu agente, incluida una función personalizada para guardar datos, una herramienta de MCP que se conecta a tu servidor de MCP seguro y una herramienta de Wikipedia.
Explicación de las tres herramientas
-
add_prompt_to_state: 📝 Esta herramienta recuerda lo que preguntan los visitantes del zoológico. Cuando un visitante pregunta: "¿Dónde están los leones?", esta herramienta guarda esa pregunta específica en la memoria del agente para que los otros agentes del flujo de trabajo sepan qué investigar.
Funcionamiento: Es una función de Python que escribe la instrucción del visitante en el diccionario compartido tool_context.state. Este contexto de la herramienta representa la memoria a corto plazo del agente para una sola conversación. Los datos que un agente guarda en el estado pueden ser leídos por el siguiente agente en el flujo de trabajo.
-
MCPToolset: 🦁 Se usa para conectar el agente guía al servidor de MCP del zoológico previamente implementado en este lab. Este servidor tiene herramientas especiales para buscar información específica sobre los animales del zoológico, como su nombre, edad y recinto.
Funcionamiento: Se conecta de forma segura a la URL del servidor privado del zoológico. Usa get_id_token para obtener automáticamente una "tarjeta llave" segura (un token de ID de cuenta de servicio) con la que verificar tu identidad y obtener acceso.
-
LangchainTool: 🌍 Le proporciona al agente guía conocimientos generales del mundo. Cuando un visitante hace una pregunta que no está en la base de datos del zoológico, como "¿Qué comen los leones en la naturaleza?", esta herramienta permite que el agente busque la respuesta en Wikipedia.
Funcionamiento: Actúa como un adaptador, lo que permite que tu agente use la herramienta precompilada WikipediaQueryRun de la biblioteca LangChain.
Recursos:
Paso 3: Define los agentes especialistas
En esta sección, definirás dos agentes especialistas: el agente investigador y el formateador de respuestas. El agente investigador es el "cerebro" de tu operación. Este agente toma la instrucción del usuario del State compartido, examina sus potentes herramientas (la herramienta del servidor de MCP del zoológico y la herramienta de Wikipedia) y decide cuáles usar para encontrar la respuesta.
El rol del agente formateador de respuestas es la presentación. No usa ninguna herramienta para encontrar información nueva. En cambio, toma los datos sin procesar que recopila el agente investigador (que se pasan a través de State) y usa las habilidades lingüísticas del LLM para transformarlos en una respuesta amigable y de tono conversacional.
Paso 4: Define el agente de flujo de trabajo
El agente de flujo de trabajo actúa como el encargado de la "oficina administrativa" del recorrido por el zoológico. Toma una solicitud de investigación y garantiza que los dos agentes que definiste en el paso 3 realicen sus trabajos en el orden correcto: primero investigar y, luego, dar formato. Con esto, se crea un proceso predecible y confiable para responder las preguntas de los visitantes del zoológico.
Funcionamiento: Es un SequentialAgent, un tipo especial de agente que no piensa por sí mismo. Su único trabajo es ejecutar una lista de sub_agents (el investigador y el formateador) en una secuencia fija y pasar automáticamente la memoria compartida de uno a otro.
Paso 5: Organiza el flujo de trabajo principal
El flujo de trabajo principal se designa a través de root_agent, que es lo que el framework de ADK usa como punto de partida para todas las conversaciones nuevas. La función principal de este agente es organizar el proceso general. Actúa como el controlador inicial y administra el primer turno de la conversación.
Tu archivo agent.py ya está completo.
Si lo creas de esta manera, puedes ver cómo cada componente (herramientas, agentes de trabajadores y agentes de administradores) tiene un rol específico en la creación del sistema inteligente final. Ahora, pasemos a la implementación.
Tarea 3: Prepara la aplicación para la implementación
Con el entorno local listo, el siguiente paso es preparar tu proyecto de Google Cloud para la implementación del agente guía del zoológico.
Esto implica una verificación final de la estructura del archivo del agente para garantizar que sea compatible con el comando de implementación. Lo que es más importante, debes configurar un permiso de IAM fundamental que permite que tu servicio de Cloud Run implementado actúe en tu nombre y llame a los modelos de Vertex AI. Completar este paso garantiza que el entorno de nube esté listo para ejecutar tu agente correctamente.
-
Vuelve a la terminal de Cloud Shell y ejecuta el siguiente comando para cargar las variables en tu sesión de shell:
source .env
-
Ejecuta el siguiente comando para otorgarle a la cuenta de servicio el rol de usuario de Vertex AI, que le da permiso para hacer predicciones y llamar a los modelos de Google:
# Otorga el rol "usuario de Vertex AI" a tu cuenta de servicio
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$SERVICE_ACCOUNT" \
--role="roles/aiplatform.user"
Tarea 4: Implementa el agente con la CLI del ADK
Con el código local listo y tu proyecto de Google Cloud preparado, es hora de implementar el agente.
En esta tarea, usarás el comando adk deploy cloud_run, que es una herramienta conveniente que automatiza todo el flujo de trabajo de implementación. Este único comando empaqueta tu código, crea una imagen de contenedor, la envía a Artifact Registry y lanza el servicio en Cloud Run para que sea accesible en la Web.
Implementa el agente
-
Ejecuta el siguiente comando para implementar tu agente:
# Ejecuta el comando de implementación
adk deploy cloud_run \
--project=$PROJECT_ID \
--region=$REGION \
--service_name=zoo-tour-guide \
--with_ui \
.
-
Si se te pregunta si quieres continuar o permitir invocaciones sin autenticar a [zoo-tour-guide], escribe Y en cada caso y presiona INTRO.
Nota: Este comando de implementación puede tardar entre 5 y 10 minutos en finalizar su ejecución.
-
Ejecuta el siguiente comando para modificar los parámetros de configuración del servicio de Cloud Run existente:
gcloud run services update zoo-tour-guide \
--region=$REGION \
--update-labels=dev-tutorial=codelab-adk
Obtén el vínculo de implementación
-
Una vez que el agente se haya implementado correctamente en Cloud Run, presiona CTRL y haz clic en la URL del servicio en el resultado para abrirlo en una nueva pestaña del navegador.
Debería parecerse al siguiente formato.
Resultado de la URL del servicio:
https://zoo-tour-guide-{{{project_0.startup_script.project_number | filled in at lab start}}}.{{{project_0.default_region | filled in at lab start}}}.run.app
Como usaste la marca --with_ui cuando realizaste la implementación en Cloud Run, deberías ver la IU para desarrolladores del ADK.
Nota: Cualquier persona que tenga la URL puede acceder a este agente, por lo que este enfoque es mejor usarlo exclusivamente para pruebas.
Haz clic en Revisar mi progreso para verificar el objetivo.
Implementar el agente
Tarea 5: Prueba el agente implementado
Ahora que tu agente está activo en Cloud Run, en esta tarea harás una prueba para confirmar que la implementación se realizó correctamente y que el agente funciona como se espera. Deberás usar la URL pública del servicio para acceder a la interfaz web del ADK y, así, interactuar con el agente.
-
Abre la URL pública del servicio de Cloud Run que se generó en la tarea anterior en el navegador web o haz clic en la URL en el resultado (debería abrirse en una nueva pestaña del navegador). Se abrirá la IU para desarrolladores del ADK.
-
Activa Transmisión de tokens en la parte superior derecha de la barra de herramientas del ADK.
Ahora puedes interactuar con el agente del zoológico.
-
Escribe hello en el cuadro de instrucción y presiona INTRO para comenzar una nueva conversación.
Observa el resultado. El agente debería responder rápidamente con su saludo estándar:
"Hello! I'm your Zoo Tour Guide. I can help you learn about the amazing animals we have here. What would you like to know or explore today?"
-
Ahora, interactúa con el agente guía del zoológico. Ingresa la siguiente consulta para iniciar una nueva conversación:
Where can I find penguins?
Deberías recibir una respuesta similar a la siguiente:

Explicación del flujo del agente
Tu sistema funciona como un equipo inteligente de múltiples agentes. El proceso se administra con una secuencia clara para garantizar un flujo eficiente y fluido desde la pregunta de un usuario hasta la respuesta final y detallada.
1. El agente de bienvenida del zoológico (el mostrador de recepción)
El proceso comienza con el agente de bienvenida.
Su trabajo: Iniciar la conversación. Su instrucción es saludar al usuario y preguntarle sobre qué animal le gustaría aprender.
Su herramienta: Cuando el usuario responde, el agente de bienvenida usa su herramienta add_prompt_to_state para capturar las palabras exactas (p. ej., "cuéntame sobre los leones") y guardarlas en la memoria del sistema.
Siguiente eslabón del proceso: Después de guardar la instrucción, le pasa inmediatamente el control a su agente secundario, tour_guide_workflow.
2. El investigador integral (el superinvestigador)
Este es el primer paso en el flujo de trabajo principal y el "cerebro" de la operación. En lugar de un equipo grande, ahora tienes un solo agente altamente capacitado que puede acceder a toda la información disponible.
Su trabajo: Analizar la pregunta del usuario y crear un plan inteligente. Utiliza la potente capacidad de uso de herramientas del modelo de lenguaje para decidir si necesita lo siguiente:
- Datos internos de los registros del zoológico (a través del servidor de MCP)
- Información general de la Web (a través de la API de Wikipedia)
- O, para preguntas complejas, ambos tipos de datos
Su acción: Ejecuta las herramientas necesarias para recopilar todos los datos sin procesar requeridos. Por ejemplo, si se le pregunta: "¿Cuántos años tienen nuestros leones y qué comen en la naturaleza?", llamará al servidor de MCP para obtener las edades y a la herramienta de Wikipedia para obtener la información sobre la dieta.
3. El formateador de respuestas (el presentador)
Una vez que el investigador integral haya recopilado todos los hechos, este es el agente final que se debe ejecutar.
Su trabajo: Actuar como la voz amigable del guía del zoológico. Toma los datos sin procesar (que podrían ser de una o ambas fuentes) y los pule.
Su acción: Sintetiza toda la información en una respuesta única, coherente y atractiva. Siguiendo sus instrucciones, primero presenta la información específica del zoológico y, luego, agrega los datos generales interesantes.
El resultado final: El texto generado por este agente es la respuesta completa y detallada que el usuario ve en la ventana de chat.
Próximos pasos y más información
Si te interesa obtener más información sobre la creación de agentes, consulta los siguientes recursos:
Tarea 6: Limpia el entorno
En esta tarea, borrarás los recursos de Cloud que creaste en el lab para evitar generar costos futuros.
¡Felicitaciones!
En este lab, exploraste cómo estructurar un proyecto de Python para la implementación con la interfaz de línea de comandos del ADK, implementaste un flujo de trabajo de varios agentes, te conectaste a un servidor de MCP remoto para consumir sus herramientas, aumentaste los datos internos integrando herramientas externas como la API de Wikipedia y, por último, implementaste el agente como un contenedor sin servidores en Cloud Run.
Actualización más reciente del manual: 13 de octubre de 2025
Prueba más reciente del lab: 13 de octubre de 2025
Copyright 2026 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.