GENAI120

El protocolo Agent2Agent (A2A) aborda un desafío importante en el panorama de la IA: permitir que los agentes de IA generativa, creados en diversos frameworks por diferentes empresas que se ejecutan en servidores separados, se comuniquen y colaboren de manera eficaz, como agentes, no solo como herramientas. El objetivo del A2A es proporcionar un lenguaje común para los agentes, lo que fomenta un ecosistema de IA más interconectado, innovador y potente.
El A2A se basa en algunos conceptos fundamentales que lo hacen potente y flexible:
-
Comunicación estandarizada: JSON-RPC 2.0 a través de HTTP(S)
-
Descubrimiento de agentes: En las tarjetas de agentes, se detallan las capacidades y la información de conexión de un agente, de modo que los agentes puedan descubrirse entre sí y conocer las capacidades de los demás
-
Intercambio de datos enriquecidos: Controla texto, archivos y datos JSON estructurados
-
Interacción flexible: Admite solicitudes y respuestas síncronas, transmisión (SSE) y notificaciones push asíncronas
-
Preparado para empresas: Se diseñó teniendo en cuenta la seguridad, la autenticación y la observabilidad
Objetivos
En este lab, aprenderás a hacer lo siguiente:
- Implementar un agente de ADK como servidor A2A
- Preparar una tarjeta de agente en formato JSON para describir las capacidades de un agente A2A
- Habilitar otro agente del ADK para que lea la tarjeta de agente de tu agente A2A implementado y lo use como agente secundario
Configuración y requisitos
Antes de hacer clic en el botón Comenzar lab
Lea estas instrucciones. Los labs tienen un tiempo límite; no puede ponerlos en pausa. El cronómetro, que comienza a funcionar cuando hace clic en Comenzar lab, indica por cuánto tiempo estarán los recursos en la nube a su disposición.
Este lab práctico de Qwiklabs le permitirá llevar a cabo las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, recibe nuevas credenciales temporales que utilizará para acceder a Google Cloud Platform durante el transcurso del lab.
Lo que necesita
Para completar este lab, necesitará lo siguiente:
- Acceso a un navegador de Internet estándar. Se recomienda el navegador Chrome
- Tiempo para completar el lab
Nota: Si ya tiene un proyecto o una cuenta personal de GCP, no los use para este lab.
Cómo iniciar tu lab y acceder a la consola de Google Cloud
-
Haz clic en el botón Comenzar lab. Si debes pagar por el lab, se abrirá un diálogo para que selecciones la forma de pago.
A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:
- El botón para abrir la consola de Google Cloud
- El tiempo restante
- Las credenciales temporales que debes usar para el lab
- Otra información para completar el lab, si es necesaria
-
Haz clic en Abrir la consola de Google Cloud (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito si ejecutas el navegador Chrome).
El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.
Sugerencia: Ordena las pestañas en ventanas separadas, una junto a la otra.
Nota: Si ves el diálogo Elegir una cuenta, haz clic en Usar otra cuenta.
-
De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.
{{{user_0.username | "Username"}}}
También puedes encontrar el nombre de usuario en el panel Detalles del lab.
-
Haz clic en Siguiente.
-
Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.
{{{user_0.password | "Password"}}}
También puedes encontrar la contraseña en el panel Detalles del lab.
-
Haz clic en Siguiente.
Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud.
Nota: Usar tu propia cuenta de Google Cloud para este lab podría generar cargos adicionales.
-
Haz clic para avanzar por las páginas siguientes:
- Acepta los Términos y Condiciones.
- No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
- No te registres para obtener pruebas gratuitas.
Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.
Nota: Para acceder a los productos y servicios de Google Cloud, haz clic en el menú de navegación o escribe el nombre del servicio o producto en el campo Buscar.
Tarea 1: Instala el ADK y configura tu entorno
En este entorno de lab, se habilitaron para ti la API de Vertex AI y la API de Cloud Run. Si aplicaras estos pasos en tu propio proyecto, podrías habilitarlas navegando a Vertex AI y siguiendo la instrucción para hacerlo.
Prepara una pestaña del editor de Cloud Shell
-
Con la ventana de la consola de Google Cloud seleccionada, abre Cloud Shell presionando la tecla G y, luego, la tecla S. También puedes hacer clic en el botón Activar Cloud Shell (
) en la parte superior derecha de la consola de Cloud.
-
Haz clic en Continuar.
-
Cuando se te solicite que autorices Cloud Shell, haz clic en Autorizar.
-
En la esquina superior derecha del panel de la terminal de Cloud Shell, haz clic en el botón Abrir en una ventana nueva
.
-
En la terminal de Cloud Shell, ingresa lo siguiente para abrir el Editor de Cloud Shell en tu directorio principal:
cloudshell workspace ~
-
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.
-
Durante el resto de este lab, puedes trabajar en esta ventana como tu IDE con el Editor de Cloud Shell y la terminal de Cloud Shell.
Descarga e instala el ADK y las muestras de código para este lab
-
Instala el ADK ejecutando el siguiente comando en la terminal de Cloud Shell. Nota: Debes especificar la versión para asegurarte de que la versión del ADK que instales corresponda a la utilizada en este lab:
# Instala el ADK y el SDK de Python para el A2A
cd ~
export PATH=$PATH:"/home/${USER}/.local/bin"
python3 -m pip install google-adk==1.8.0 a2a-sdk==0.2.16
pip install --upgrade google-genai
# Corrige un error tipográfico en esta versión
sed -i 's/{a2a_option}"/{a2a_option} "/' ~/.local/lib/python3.12/site-packages/google/adk/cli/cli_deploy.py
-
Pega los siguientes comandos en la terminal de Cloud Shell para copiar el código del lab desde un bucket de Cloud Storage y descomprimirlo:
gcloud storage cp gs://{{{project_0.project_id| YOUR_GCP_PROJECT_ID}}}-bucket/adk_and_a2a.zip ./adk_and_a2a.zip
unzip adk_and_a2a.zip
Haz clic en Revisar mi progreso para verificar el objetivo.
Instalar el ADK y configurar tu entorno
Tarea 2: Explora el agente del ADK que estará disponible de forma remota
Para los fines de este lab, imagina que trabajas para una empresa de mantenimiento de estadios llamada Cymbal Stadiums. Como parte de un proyecto reciente, desarrollaste un agente de generación de imágenes que puede crear ilustraciones según los lineamientos de la marca. Ahora, diferentes equipos de tu organización también quieren usarlo.
Si copiaras el código para que muchos agentes lo usaran como agente secundario, sería muy difícil mantener y mejorar todas esas copias.
En cambio, puedes implementar el agente una vez como un agente unido a un servidor A2A, y los agentes de los otros equipos pueden incorporarlo consultándolo de forma remota.
-
En el panel del explorador de archivos del Editor de Cloud Shell, navega al directorio adk_and_a2a/illustration_agent. Este directorio contiene el agente del ADK que dejarás disponible forma remota. Haz clic en el directorio para abrirlo.
-
Abre el archivo agent.py en este directorio y desplázate hasta la sección etiquetada como # Tools.
-
Observa la función generate_image(), que este agente usará como herramienta. Recibe una instrucción y realiza un proceso de dos pasos. Primero, usa el SDK de IA generativa de Google para llamar a generate_content(), que devuelve los datos de imagen sin procesar directamente en la respuesta. En segundo lugar, la función usa la biblioteca de Cloud Storage para subir estos bytes de imagen a un bucket de GCS. Por último, la herramienta devuelve la URL pública del archivo de imagen recién creado.
-
Ten en cuenta que la instruction proporcionada al root_agent brinda instrucciones específicas al agente para que use instrucciones de generación de imágenes que respeten los lineamientos de la marca de la empresa. Por ejemplo, especifica lo siguiente:
- un estilo de ilustración específico: (Corporate Memphis)
- una paleta de colores (púrpuras y verdes en degradados de atardecer)
- ejemplos de imágenes de estadios, deportes y mantenimiento (ya que es una empresa de mantenimiento de estadios)
-
Para verlo en acción, primero deberás escribir un archivo .env para establecer las variables de entorno que necesitan los agentes del ADK. Ejecuta lo siguiente en la terminal de Cloud Shell para escribir este archivo en este directorio.
cd ~/adk_and_a2a
cat << EOF > illustration_agent/.env
GOOGLE_GENAI_USE_VERTEXAI=TRUE
GOOGLE_CLOUD_PROJECT={{{project_0.project_id| YOUR_GCP_PROJECT_ID}}}
GOOGLE_CLOUD_LOCATION=global
MODEL={{{project_0.startup_script.gemini_flash_model_id | gemini_flash_model_id}}}
IMAGE_MODEL={{{project_0.startup_script.gemini_flash_image_model_id | gemini_flash_image_model_id}}}
EOF
-
Ejecuta el siguiente comando para copiar el archivo .env en otro directorio de agente que usarás en este lab:
cp illustration_agent/.env slide_content_agent/.env
-
Ahora, desde la terminal de Cloud Shell, inicia la IU de desarrollo del ADK con este comando:
adk web
Resultado
INFO: Started server process [2434]
INFO: Waiting for application startup.
+-------------------------------------------------------+
| ADK Web Server started |
| |
| For local testing, access at http://localhost:8000. |
+-------------------------------------------------------+
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
-
Para ver la interfaz web en una pestaña nueva, haz clic en el vínculo http://127.0.0.1:8000, que se encuentra en la parte inferior del resultado de la terminal.
-
Se abrirá una nueva pestaña del navegador con la IU de desarrollo del ADK.
-
En el menú desplegable Seleccionar un agente de la izquierda, selecciona illustration_agent.
-
Hazle una pregunta al agente con un texto que se podría usar en una presentación de diapositivas de reclutamiento:
¡Si nos apoyamos, podemos lograr mucho!
-
Después de unos 10 segundos, el agente debería responder con la instrucción que generó y una URL para obtener una vista previa de la imagen. Haz clic en la URL de la imagen para obtener una vista previa y, luego, en Atrás en el navegador para volver a la IU para desarrolladores.
Resultado de ejemplo

Imagen de ejemplo

-
Ten en cuenta que la instrucción que le proporcionaste al agente no mencionó deportes, estadios ni trabajos de mantenimiento, pero el agente tomó tu texto y los lineamientos de la marca, y los combinó en una sola instrucción para el modelo de generación de imágenes.
Cuando termines de explorar el agente base, cierra la pestaña del navegador.
-
Haz clic en el panel de la terminal de Cloud Shell y presiona CTRL + C para detener el servidor.
Haz clic en Revisar mi progreso para verificar el objetivo.
Explorar el agente del ADK
Tarea 3: Implementa el agente como un servidor A2A
Ahora, seguirás los pasos para implementar este agente como un agente A2A remoto.
-
Un agente A2A se identifica a sí mismo y a sus capacidades publicando una tarjeta de agente. Ejecuta el siguiente comando para crear un archivo agent.json.
touch illustration_agent/agent.json
-
Abre el archivo agent.json dentro del directorio adk_and_a2a/illustration_agent y pega el siguiente contenido:
{
"name": "illustration_agent",
"description": "Un agente diseñado para generar ilustraciones de marca para Cymbal Stadiums.",
"defaultInputModes": ["text/plain"],
"defaultOutputModes": ["application/json"],
"skills": [
{
"id": "illustrate_text",
"name": "Illustrate Text",
"description": "Genera una ilustración para explicar el significado del texto proporcionado.",
"tags": ["illustration", "image generation"]
}
],
"url": "https://illustration-agent-{{{project_0.startup_script.project_number|Project Number}}}.{{{project_0.default_region| GCP_LOCATION}}}.run.app/a2a/illustration_agent",
"capabilities": {},
"version": "1.0.0"
}
-
Guarda el archivo.
-
Revisa el código JSON en el archivo agent.json. Observa que le da al agente un name y una description, y que identifica algunas skills. También indica una url en la que se puede llamar al agente.
La url del agente se construye para que sea la URL del servicio de Cloud Run una vez que lo implementes siguiendo las instrucciones de este lab.
Si bien el nombre es similar al de skills, el parámetro capabilities aquí se reserva para indicar habilidades como la transmisión.
-
Ejecuta el siguiente comando para crear un archivo requirements.txt en el directorio illustration_agent.
touch illustration_agent/requirements.txt
-
Selecciona el archivo y pega lo siguiente en él.
google-adk==1.8.0
a2a-sdk==0.2.16
-
Guarda el archivo.
-
En el siguiente comando, usarás adk deploy cloud_run con la marca --a2a para implementar tu agente en Cloud Run como un servidor A2A. Para obtener más información sobre la implementación de agentes en Cloud Run, busca el lab "Implementa agentes del ADK en Cloud Run". Este comando incluye lo siguiente:
-
--project y --region definen el proyecto y la región en los que se implementará tu servicio de Cloud Run.
-
--service_name define el nombre del servicio de Cloud Run.
- La marca
--a2a indica que se debe alojar como un agente A2A. Esto significa lo siguiente:
- Tu agente se unirá con una clase que une los agentes del ADK y A2A: A2aAgentExecutor. Esta clase traduce el lenguaje de tareas y mensajes del protocolo A2A a un Runner del ADK en su lenguaje de eventos.
- La tarjeta de agente también se alojará en
CLOUD_RUN_URL/a2a/AGENT_NAME/.well-known/agent.json. Nota: Si bien esta versión de la tarjeta se podrá usar pronto, la reescritura dinámica de la URL del agente actualmente no funciona con Cloud Run, por lo que no la usaremos en esta versión del lab.
Implementa el agente en Cloud Run como un servidor A2A con el siguiente comando:
adk deploy cloud_run \
--project {{{project_0.project_id| YOUR_GCP_PROJECT_ID}}} \
--region {{{project_0.default_region| GCP_LOCATION}}} \
--service_name illustration-agent \
--a2a \
illustration_agent
-
Se te solicitará que permitas respuestas no autenticadas para este contenedor. Para probar el lab, ingresa Y en la terminal de Cloud Shell (para "sí") y presiona Intro.
Nota: La implementación debería tardar entre 5 y 10 minutos. Si encuentras un error de PERMISSION_DENIED, intenta ejecutar el comando anterior de nuevo.
Resultado esperado:
Verás los pasos relacionados con la compilación de un Dockerfile y la implementación del contenedor, luego la implementación del servicio y, por último, lo siguiente:
Service [illustration-agent] revision [illustration-agent-00001-xpp] has been deployed and is serving 100 percent of traffic.
Service URL: https://illustration-agent-{{{project_0.startup_script.project_number|Project Number}}}.{{{project_0.default_region| GCP_LOCATION}}}.run.app
Haz clic en Revisar mi progreso para verificar el objetivo.
Implementar el agente como un servidor A2A
Tarea 4: Habilita otro agente del ADK para que llame a este agente de forma remota
En esta tarea, le proporcionarás a un segundo agente del ADK la capacidad de identificar las capacidades de tu agente de ilustración y llamarlo de forma remota. Este segundo agente tendrá la tarea de crear contenido para las diapositivas. Escribirá un título y un par de oraciones para el texto del cuerpo y, luego, se transferirá al agente de ilustración para generar una imagen que ilustre ese texto.
-
En la terminal de Cloud Shell, ejecuta el siguiente comando para copiar el archivo JSON de la tarjeta de agente en tu directorio adk_and_a2a y cambiar su nombre para indicar que representa el illustration_agent.
cp illustration_agent/agent.json illustration-agent-card.json
-
En el panel del explorador de archivos del Editor de Cloud Shell, navega a adk_and_a2a/slide_content_agent y abre el archivo agent.py.
Revisa la instruction de este agente para ver que tomará la sugerencia de un usuario para una diapositiva y escribirá un título y un texto del cuerpo y, luego, se transferirá a tu agente A2A para ilustrar la diapositiva.
-
Pega el siguiente código debajo del encabezado # Agents para agregar el agente remoto con la clase RemoteA2aAgent del ADK:
illustration_agent = RemoteA2aAgent(
name="illustration_agent",
description="Agente que genera ilustraciones",
agent_card=(
"illustration-agent-card.json"
),
)
-
Agrega illustration_agent como un agente secundario de root_agent ingresando el siguiente parámetro a root_agent:
sub_agents=[illustration_agent]
-
Guarda el archivo.
-
Inicia la IU desde la terminal de Cloud Shell con el siguiente comando:
cd ~/adk_and_a2a
adk web
-
Una vez más, haz clic en el vínculo http://127.0.0.1:8000 en el resultado de la terminal.
-
Se abrirá una nueva pestaña del navegador con la IU de desarrollo del ADK. En el menú desplegable Seleccionar un agente de la izquierda, selecciona slide_content_agent.
-
Hazle una pregunta al agente con una idea para una diapositiva:
Crea contenido para una diapositiva sobre nuestra excelente capacitación en el trabajo
Deberías ver el siguiente resultado:
- Un título y un texto del cuerpo escritos por el propio slide_content_agent
- Una llamada a transfer_to_agent, que indica una transferencia al illustration_agent
- La respuesta de illustration_agent con un vínculo en el que puedes hacer clic para ver la imagen nueva

Haz clic en Revisar mi progreso para verificar el objetivo.
Habilitar otro agente del ADK para que llame al agente de forma remota
¡Felicitaciones!
En este lab, implementaste un agente del ADK como servidor A2A, preparaste una tarjeta de agente en formato JSON para describir las capacidades de un agente A2A y habilitaste otro agente del ADK para que lea la tarjeta de agente de tu agente A2A implementado, y lo use como agente secundario.
Capacitación y certificación de Google Cloud
Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.
Última actualización del manual: 6 de octubre de 2025
Prueba más reciente del lab: 6 de octubre de 2025
Copyright 2020 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.