Nota: ✋ Este post se publicó originalmente en mi blog wiki-cloud.co
Introducción
El desarrollo de soluciones de inteligencia artificial está evolucionando desde los asistentes conversacionales tradicionales hacia sistemas capaces de razonar, utilizar herramientas, consultar información, ejecutar procesos y colaborar con otros agentes.
En este contexto, Google Agent Development Kit (ADK) proporciona un framework para diseñar, desarrollar, probar y desplegar aplicaciones basadas en agentes de inteligencia artificial. Su arquitectura modular permite construir desde un agente sencillo hasta sistemas multiagente capaces de coordinar flujos de trabajo empresariales complejos.
De acuerdo con la guía oficial del producto, algunas investigaciones y a la experiencia de muchos desarrolladores, presento una arquitectura a alto nivel de Google ADK con diferentes componentes y puede explicarse mediante las siguientes capas:
- Interfaces de usuario.
- ADK Runtime y Runner.
- Sistema de agentes.
- Componentes fundamentales.
- Modelos y conocimiento.
- Observabilidad y gobierno.
- Opciones de despliegue.
Cada capa cumple una función específica y se integra con las demás para procesar las solicitudes de los usuarios de forma organizada, segura y escalable.
Arquitectura alto nivel
A continuación presento la arquitectura a alto nivel dividida en capas y componentes donde explicare cado uno de ellos:
Interfaces de usuario
La capa superior de esta arquitectura a alto nivel representa los diferentes canales desde los que los usuarios o aplicaciones pueden interactuar con los agentes.
Google ADK no obliga a utilizar una interfaz concreta. Los usuarios y desarrolladores pueden interactuar con los agentes mediante distintas opciones, entre ellas:
- CLI: para ejecutar y probar agentes desde la línea de comandos.
- Web UI: para interactuar con los agentes desde una interfaz web.
- API Endpoints: para integrar los agentes con otras aplicaciones o servicios.
- Frontends personalizados: como portales corporativos, aplicaciones móviles, asistentes conversacionales o canales de mensajería.
Esta separación permite que la lógica del agente sea independiente de la experiencia de usuario. Un mismo sistema de agentes puede ser utilizado desde distintos canales sin necesidad de modificar su comportamiento interno.
Por ejemplo, un agente de soporte puede atender consultas desde una aplicación web, un chatbot interno y una API utilizada por otras aplicaciones corporativas.
ADK Runtime & Runner
El ADK Runtime y Runner constituyen el entorno responsable de ejecutar y coordinar el funcionamiento de los agentes.
Esta capa actúa como el motor operativo de la arquitectura y se encarga de conectar las interfaces de usuario con el sistema de agentes y los servicios que estos necesitan.
Sus principales capacidades son:
Bucle de eventos
El bucle de eventos es el patrón operativo central que define la interacción entre el Runner y el código personalizado (agentes, herramientas, devoluciones de llamada, denominados colectivamente “lógica de ejecución” o “componentes lógicos” en el documento de diseño). El bucle de eventos gestiona la secuencia de acciones que se producen durante una interacción.
Orquestación
La orquestación controla cómo participan los agentes y en qué orden se ejecutan las tareas.
Puede determinar, por ejemplo:
- Qué agente debe atender una solicitud.
- Si varios agentes deben ejecutarse secuencialmente.
- Si determinadas tareas pueden procesarse en paralelo.
- Cuando debe repetirse una acción.
- Cuando debe transferirse el control a otro agente.
- Cuando debe finalizar el flujo de ejecución.
Esta capacidad es especialmente importante en arquitecturas multiagente.
Gestión de Servicios
La gestión de servicios conecta el Runner con los componentes de infraestructura utilizados por la aplicación.
Esto incluye servicios como:
- Sesiones.
- Memoria.
- Estado.
- Artefactos.
- Herramientas.
- Servicios de evaluación.
- Sistemas de observabilidad.
Gracias a esta separación, la lógica del agente puede mantenerse desacoplada del mecanismo utilizado para almacenar información o desplegar la solución.
Sistema de Agentes
El núcleo funcional de la arquitectura es el sistema de agentes. ADK permite combinar diferentes tipos de agentes dependiendo del nivel de autonomía, control y especialización requerido por la solución.
Agentes LLM
Los LLM Agents utilizan modelos de lenguaje para interpretar las solicitudes, razonar sobre el contexto y decidir qué acción realizar. Google ADK utilizan modelos de la familia Gemini a través de Vertex AI o Google AI Studio para razonar y tomar decisiones.
Este tipo de agente puede:
- Comprender lenguaje natural.
- Analizar información.
- Generar respuestas.
- Seleccionar herramientas.
- Decidir qué agente debe intervenir.
- Resolver tareas que no siguen un flujo completamente determinista.
Por ejemplo, un agente de atención al cliente puede analizar una solicitud, consultar el estado de un pedido y determinar si debe responder directamente o transferir el caso a un agente especializado.
Flujo de trabajo de agentes
Los flujos de trabajo controlan la ejecución de otros agentes mediante patrones más estructurados. Son útiles cuando el proceso requiere un comportamiento predecible y un orden de ejecución definido.
Los principales patrones son:
- Ejecución secuencial
- Ejecución paralela
- Ejecución mediante bucles
Agentes personalizados
Los agentes personalizados permiten implementar comportamientos especializados cuando los agentes basados exclusivamente en modelos de lenguaje o los flujos predefinidos no son suficientes.
Un agente personalizado puede incluir:
- Lógica de negocio específica.
- Algoritmos propios.
- Validaciones deterministas.
- Integraciones complejas.
- Reglas de seguridad.
- Procesamiento especializado de datos.
- Control avanzado del ciclo de ejecución.
Por ejemplo, una organización podría crear un agente personalizado para validar transacciones financieras aplicando reglas internas antes de permitir que otro agente continúe el proceso.
Componentes fundamentales
La arquitectura de ADK se apoya en un conjunto de componentes que conservan el contexto, coordinan las acciones y permiten interactuar con sistemas externos. Estos componentes son esenciales para que el agente mantenga continuidad y pueda ejecutar tareas más allá de una simple conversación. Los componentes básicos o fundamentales son los siguientes:
Sesión
Una sesión representa una interacción continua entre un usuario y una aplicación de agentes. La sesión permite conservar:
- Mensajes del usuario.
- Respuestas de los agentes.
- Llamadas a herramientas.
- Resultados intermedios.
- Transferencias entre agentes.
- Eventos producidos durante la ejecución.
La sesión proporciona el contexto necesario para mantener una conversación coherente a lo largo de varios intercambios.
Por ejemplo, si un usuario proporciona un número de pedido al comienzo de una conversación, el agente puede reutilizarlo en solicitudes posteriores dentro de la misma sesión.
Estado
El estado almacena información estructurada que puede cambiar durante la ejecución. A diferencia del historial conversacional, el estado contiene valores concretos que los agentes pueden consultar o actualizar. Algunos ejemplos son:
- Nombre del usuario.
- Idioma seleccionado.
- Número de incidencia.
- Producto elegido.
- Estado de una aprobación.
- Resultado de una validación.
- Paso actual de un proceso.
El estado facilita la construcción de flujos conversacionales de varios pasos y evita depender únicamente del texto del historial.
Memoria
La memoria permite conservar y recuperar información más allá de una única sesión. Puede utilizarse para recordar:
- Preferencias de los usuarios.
- Interacciones anteriores.
- Proyectos relacionados.
- Decisiones previas.
- Información relevante de conversaciones pasadas.
La memoria ayuda a ofrecer experiencias más personalizadas y a mantener continuidad entre diferentes sesiones.
Es importante diferenciar tres conceptos:
- Sesión: representa una conversación específica.
- Estado: almacena valores estructurados durante la ejecución.
- Memoria: conserva información reutilizable a largo plazo.
Eventos
Los eventos son las unidades fundamentales del flujo de información dentro del Kit de Desarrollo de Agentes (ADK). Representan cada suceso significativo durante el ciclo de vida de la interacción de un agente, desde la entrada inicial del usuario hasta la respuesta final, incluyendo todos los pasos intermedios. Comprender los eventos es crucial, ya que son la principal vía de comunicación entre componentes, la gestión del estado y la dirección del flujo de control. Un evento puede corresponder a:
- Un mensaje.
- Una respuesta.
- Una llamada a una herramienta.
- El resultado de una herramienta.
- Un cambio de estado.
- Una transferencia entre agentes.
- Un error.
El uso de eventos permite reconstruir el recorrido seguido por el sistema y entender cómo se generó una respuesta. También es una base importante para la trazabilidad, la depuración y la evaluación.
Herramientas
Las herramientas permiten que los agentes interactúen con servicios externos y ejecuten acciones reales. Una herramienta puede ser:
- Una función de Python.
- Una API empresarial.
- Una consulta a una base de datos.
- Un servicio de Google Cloud.
- Un sistema de tickets.
- Una herramienta de búsqueda.
- Una aplicación SaaS.
- Otro agente.
- Un servidor compatible con MCP.
Cuando el agente necesita información o debe ejecutar una acción, puede seleccionar una herramienta, generar sus parámetros y procesar el resultado obtenido. Por ejemplo, un agente de soporte puede consultar una base de conocimiento, revisar el estado de un servicio y crear una incidencia en una plataforma externa.
Artefactos
Los artefactos representan un mecanismo crucial para gestionar datos binarios con nombre y versión, asociados a una sesión de interacción de usuario específica o de forma persistente a un usuario a lo largo de varias sesiones. Permiten que los agentes y herramientas gestionen datos más allá de simples cadenas de texto, posibilitando interacciones más completas que incluyan archivos, imágenes, audio y otros formatos binarios.
Modelos y Conocimiento
La capa de modelos y conocimientos proporciona la inteligencia, el contexto y las fuentes de información utilizadas por los agentes. Esta capa incluye cuatro elementos principales.
Gemini y otros modelos
Google ADK está diseñado para integrarse de forma natural con Gemini, aunque también puede utilizar otros modelos de terceros según las necesidades de la solución.
El modelo puede encargarse de:
- Comprender la intención del usuario.
- Razonar sobre un problema.
- Generar respuestas.
- Seleccionar herramientas.
- Clasificar solicitudes.
- Resumir información.
- Coordinar agentes.
Una arquitectura puede utilizar diferentes modelos dependiendo de la tarea.
Por ejemplo:
- Un modelo avanzado para razonamiento complejo.
- Un modelo más rápido para clasificación.
- Un modelo multimodal para procesar imágenes o documentos.
- Un modelo especializado para una tarea concreta.
Esta flexibilidad permite equilibrar calidad, latencia y coste.
Memoria de largo plazo
La memoria de largo plazo conserva información relevante obtenida en interacciones anteriores. Puede utilizarse para recuperar:
Preferencias del usuario.
Decisiones históricas.
Contexto de proyectos.
Interacciones previas.
Información asociada a procesos de larga duración.
La recuperación debe realizarse de forma selectiva para evitar enviar al modelo información innecesaria. También es importante aplicar políticas de privacidad, retención y eliminación de datos.
Generación Aumentada de Recuperación – RAG
La arquitectura puede integrar mecanismos de Retrieval-Augmented Generation, conocidos como RAG. Este enfoque permite que el agente busque información en fuentes de conocimiento antes de generar una respuesta. Las fuentes pueden incluir:
- Documentación empresarial.
- Manuales.
- Políticas internas.
- Bases de conocimiento.
- Documentos técnicos.
- Repositorios.
- Bases de datos vectoriales.
RAG permite reducir la dependencia del conocimiento general del modelo y mejorar la precisión de las respuestas.
APIs, servicios y sistemas externos
Los agentes pueden conectarse con sistemas internos y externos mediante herramientas e integraciones. Algunos ejemplos son:
- APIs corporativas.
- Bases de datos.
- Sistemas ERP.
- CRM.
- Plataformas de tickets.
- Servicios SaaS.
- Sistemas de almacenamiento.
- Motores de búsqueda.
- Servicios de Google Cloud.
- Aplicaciones de terceros.
Esta capacidad permite que el agente no solo responda preguntas, sino que también consulte información actualizada y ejecute acciones dentro de procesos empresariales.
Observabilidad y Gobierno
La observabilidad y el gobierno permite comprender qué ocurre dentro de un agente mientras ejecuta una tarea. A través de la telemetría y de registros estructurados, es posible analizar aspectos como sus pasos de razonamiento, las llamadas a herramientas y las respuestas generadas por los modelos. Esta información resulta especialmente útil durante el desarrollo, ya que facilita la identificación de errores, el diagnóstico de comportamientos inesperados, la mejora continua del agente y controlar el funcionamiento del sistema.
Esta capa se compone de:
- Trazabilidad: Permite reconstruir el recorrido completo de una solicitud. Esta información es fundamental para analizar errores y comprender el comportamiento de sistemas multiagente.
- Logs: Los logs registran eventos importantes producidos durante la ejecución. Los logs facilitan la investigación de incidencias y el seguimiento operativo.
- Métricas: Las métricas permiten medir el rendimiento y la calidad del sistema. Estas métricas ayudan a identificar problemas de rendimiento, coste o diseño.
- Evaluación: La evaluación permite comprobar si los agentes cumplen los objetivos esperados. En un sistema agentico no basta con evaluar la respuesta final. También es necesario revisar si el agente siguió el proceso adecuado.
- Alertas: Las alertas notifican comportamientos inesperados o condiciones críticas. Las alertas permiten responder rápidamente antes de que el problema afecte a un mayor número de usuarios.
- Seguridad: La seguridad debe formar parte de toda la arquitectura permitiendo tener control en la autenticación de usuarios, autorización por roles y permisos, protección de datos, auditoría, entre otros. Por ejemplo, un agente puede consultar una factura, pero no modificarla. Otro agente autorizado podría ejecutar cambios después de una validación o aprobación humana.
Opciones de Despliegue
Una aplicación desarrollada con Google ADK puede desplegarse en diferentes entornos. La elección depende del nivel de control, escalabilidad, costos, integración, seguridad y operación requerida por la organización. A continuación se mencionan las opciones de despliegue más comunes:
- Agent Runtime: Es un servicio de escalado automático totalmente administrado en Google Cloud, diseñado específicamente para implementar, administrar y escalar agentes de IA creados con marcos de trabajo como ADK.
- Cloud Run: Cloud Run permite desplegar agentes como contenedores serverless. Cloud Run puede utilizarse para exponer el agente mediante una API o integrarlo con eventos y otros servicios de Google Cloud.
- Google Kubernetes Engine: Google Kubernetes Engine (GKE) es un servicio de Kubernetes administrado de Google Cloud que permite ejecutar agentes en un entorno de contenedores. GKE es una buena opción si se necesita mayor control sobre la implementación y para ejecutar Open Models.
- Otros entornos: Al ser un framework abierto y basado en código, ADK también puede desplegarse en otros entornos compatibles como por ejemplo infraestructura local centros de datos privados, otras plataformas de contenedores, entornos on-premises, otras nubes y máquinas virtuales. Esta flexibilidad permite adaptar el despliegue a requisitos de soberanía, regulación, integración o estrategia multicloud.
Conclusión
La arquitectura de Google ADK proporciona una estructura modular para construir aplicaciones basadas en agentes de inteligencia artificial.
Las interfaces de usuario permiten acceder al sistema desde distintos canales. El Runtime y el Runner coordinan la ejecución. El sistema de agentes aporta razonamiento, orquestación y comportamientos especializados. Los componentes fundamentales gestionan las sesiones, el estado, la memoria, los eventos, las herramientas y los artefactos.
A su vez, la capa de modelos y conocimiento conecta los agentes con Gemini, otros modelos, sistemas RAG y fuentes externas. La observabilidad y el gobierno permiten controlar el rendimiento, la calidad y la seguridad. Finalmente, las distintas opciones de despliegue hacen posible ejecutar la solución en entornos administrados, serverless, Kubernetes o infraestructuras propias.
La principal fortaleza de ADK no consiste únicamente en conectar una aplicación con un modelo de lenguaje, sino en proporcionar los componentes necesarios para transformar ese modelo en un sistema agentic organizado, extensible, observable y preparado para integrarse con procesos empresariales reales.
El diseño adecuado dependerá de cada caso de uso, pero debería mantener siempre un equilibrio entre autonomía, control, seguridad y simplicidad.
En próximos artículos seguiremos profundizaremos más sobre el tema.
Otros artículos:
Espero sea de utilidad !!!
Síguenos:
👉Wiki Cloud | 👉X | 👉LinkedIn | 👉Github | 👉Youtube



Top comments (0)