En este documento se ofrecen directrices para ayudarte a elegir los componentes de arquitectura de tus aplicaciones de IA basadas en agentes en Google Cloud. En él se describe cómo evaluar las características de tu aplicación y carga de trabajo para elegir el producto o servicio adecuado que mejor se adapte a tus necesidades. El proceso para diseñar una arquitectura de IA basada en agentes es iterativo. Deberías volver a evaluar periódicamente tu arquitectura a medida que cambien las características de tu carga de trabajo, evolucionen tus requisitos o se lancen nuevos productos y funciones de Google Cloud .
Los agentes de IA son eficaces en aplicaciones que resuelven problemas abiertos, que pueden requerir una toma de decisiones autónoma y una gestión compleja de flujos de trabajo de varios pasos. Los agentes son expertos en resolver problemas en tiempo real usando datos externos y en automatizar tareas que requieren muchos conocimientos. Estas funciones permiten a los agentes aportar más valor empresarial que las funciones asistenciales y generativas de un modelo de IA.
Puedes usar agentes de IA para problemas deterministas con pasos predefinidos. Sin embargo, hay otros enfoques que pueden ser más eficientes y rentables. Por ejemplo, no necesitas un flujo de trabajo con agentes para tareas como resumir un documento, traducir texto o clasificar los comentarios de los clientes.
Para obtener información sobre soluciones alternativas de IA no basadas en agentes, consulta los siguientes recursos:
- ¿En qué se diferencian los agentes, los asistentes y los bots de IA?
- Elegir modelos e infraestructura para tu aplicación de IA generativa
Información general sobre la arquitectura del agente
Un agente es una aplicación que consigue un objetivo procesando entradas, razonando con las herramientas disponibles y tomando medidas en función de sus decisiones. Un agente usa un modelo de IA como motor de razonamiento principal para automatizar tareas complejas. El agente usa un conjunto de herramientas que permiten que el modelo de IA interactúe con sistemas externos y fuentes de datos. Un agente puede usar un sistema de memoria para mantener el contexto y aprender de las interacciones. El objetivo de una arquitectura de agente es crear un sistema autónomo que pueda entender la intención de un usuario, crear un plan de varios pasos y ejecutarlo mediante las herramientas disponibles.
En el siguiente diagrama se muestra una descripción general de los componentes de la arquitectura de un sistema basado en agentes:
La arquitectura del sistema de agente incluye los siguientes componentes:
- Framework frontend: conjunto de componentes, bibliotecas y herramientas prediseñados que se usan para crear la interfaz de usuario (IU) de una aplicación.
- Framework de desarrollo de agentes: los frameworks y las bibliotecas que usas para crear y estructurar la lógica de tu agente.
- Herramientas del agente: conjunto de herramientas, como APIs, servicios y funciones, que obtienen datos y realizan acciones o transacciones.
- Memoria del agente: el sistema que usa tu agente para almacenar y recordar información.
- Patrones de diseño de agentes: enfoques arquitectónicos habituales para estructurar tu aplicación de agentes.
- Tiempo de ejecución del agente: el entorno de computación en el que se ejecuta la lógica de aplicación de tu agente.
- Modelos de IA: el motor de razonamiento principal que impulsa las capacidades de toma de decisiones de tu agente.
- Tiempo de ejecución del modelo: la infraestructura que aloja y sirve tu modelo de IA.
En las siguientes secciones se ofrece un análisis detallado de los componentes para ayudarte a tomar decisiones sobre cómo crear tu arquitectura. Los componentes que elijas influirán en el rendimiento, la escalabilidad, el coste y la seguridad de tu agente. Este documento se centra en los componentes de arquitectura esenciales que se usan para crear e implementar la lógica de razonamiento y ejecución principal de un agente. En este documento no se tratan temas como los marcos de seguridad de la IA responsable y la gestión de identidades de agentes.
Framework de frontend
El framework frontend es un conjunto de componentes, bibliotecas y herramientas prediseñados que se usan para crear la interfaz de usuario de tu aplicación basada en agentes. El framework frontend que elijas define los requisitos de tu backend. Una interfaz sencilla para una demo interna solo puede requerir una API HTTP síncrona, mientras que una aplicación de nivel de producción requiere un backend que admita protocolos de streaming y una gestión de estados sólida.
Ten en cuenta las siguientes categorías de frameworks:
- Prototipos y frameworks de herramientas internas: para el desarrollo rápido, las demos internas y las aplicaciones de prueba de concepto, elige frameworks que prioricen la experiencia y la velocidad de los desarrolladores. Estos frameworks suelen favorecer un modelo sencillo y síncrono que se denomina modelo de solicitud-respuesta. Un modelo de solicitud y respuesta te permite crear una interfaz de usuario funcional con un mínimo de código y un backend más sencillo que un framework de producción. Este enfoque es ideal para probar rápidamente la lógica de los agentes y las integraciones de herramientas, pero puede que no sea adecuado para aplicaciones públicas altamente escalables que requieran interacciones en tiempo real. Entre los frameworks habituales de esta categoría se incluyen Mesop y Gradio.
- Frameworks de producción: para crear aplicaciones escalables, adaptables y con muchas funciones para usuarios externos, elige un framework que permita usar componentes personalizados. Estos frameworks requieren una arquitectura de backend que pueda ofrecer una experiencia de usuario moderna. Un framework de producción debe incluir compatibilidad con protocolos de streaming, un diseño de API sin estado y un sistema de memoria externo y robusto para gestionar el estado de la conversación en varias sesiones de usuario. Entre los frameworks habituales para aplicaciones de producción se incluyen Streamlit, React y el kit de herramientas de IA de Flutter.
Para gestionar la comunicación entre estos frameworks y tu agente de IA, puedes usar el protocolo de interacción entre el agente y el usuario (AG-UI). AG-UI es un protocolo abierto que permite que los agentes de IA del backend interactúen con tu framework del frontend. AG-UI indica al framework frontend cuándo debe renderizar la respuesta del agente, actualizar el estado de la aplicación o activar una acción del lado del cliente. Para crear aplicaciones de IA interactivas, combina AG-UI con Agent Development Kit (ADK). Para obtener información sobre el ADK, consulta la siguiente sección "Frameworks de desarrollo de agentes".
Frameworks de desarrollo de agentes
Los frameworks de desarrollo de agentes son bibliotecas que simplifican el proceso de crear, probar y desplegar aplicaciones de IA agentiva. Estas herramientas de desarrollo proporcionan componentes y abstracciones prediseñados para las funciones principales de los agentes, como bucles de razonamiento, memoria e integración de herramientas.
Para acelerar el desarrollo de agentes en Google Cloud, te recomendamos que uses el ADK. ADK es un framework de código abierto, modular y con opiniones definidas que proporciona un alto nivel de abstracción para crear y orquestar flujos de trabajo, desde tareas sencillas hasta sistemas multiagente complejos.
El ADK está optimizado para los modelos de Gemini y Google Cloud, pero se ha diseñado para que sea compatible con otros frameworks. ADK admite otros modelos de IA y tiempos de ejecución, por lo que puedes usarlo con cualquier modelo o método de implementación. En el caso de los sistemas multiagente, ADK admite la interacción a través de estados de sesión compartidos, la delegación basada en modelos para enrutar tareas entre agentes y la invocación explícita, que permite que un agente llame a otro como función o herramienta.
Para ayudarte a empezar rápidamente, el ADK proporciona ejemplos de código en Python, Java y Go que muestran diversos casos prácticos en varios sectores. Aunque muchos de estos ejemplos destacan los flujos de conversación, ADK también es adecuado para crear agentes autónomos que realicen tareas de backend. En estos casos prácticos no interactivos, elige un patrón de diseño de agente que destaque en el procesamiento de una única solicitud autónoma y que implemente un control de errores sólido.
Aunque puedes usar un framework de IA de uso general, como Genkit, te recomendamos que uses ADK. Genkit proporciona primitivas que puedes usar para desarrollar tu propia arquitectura de agente. Sin embargo, un framework de agentes específico como ADK proporciona herramientas más especializadas.
Herramientas para agentes
La capacidad de un agente para interactuar con sistemas externos a través de herramientas define su eficacia. Las herramientas de agente son funciones o APIs que están disponibles para el modelo de IA y que el agente usa para mejorar los resultados y automatizar tareas. Cuando conectas un agente de IA a sistemas externos, las herramientas transforman al agente de un simple generador de texto en un sistema que puede automatizar tareas complejas de varios pasos.
Para habilitar las interacciones con la herramienta, elige uno de los siguientes patrones de uso de la herramienta:
| Caso práctico | Patrón de uso de la herramienta |
|---|---|
| Tienes que realizar una tarea habitual, como completar una búsqueda web, hacer un cálculo o ejecutar código, y quieres acelerar el desarrollo inicial. | Herramientas integradas |
| Quieres crear un sistema modular o multiagente que requiera herramientas interoperables y reutilizables. | Model Context Protocol (MCP) |
| Necesitas gestionar, proteger y monitorizar un gran número de herramientas basadas en APIs a escala empresarial. | Plataforma de gestión de APIs |
| Necesitas integrar una API interna o de terceros específica que no tenga un servidor de MCP. | Herramientas de funciones personalizadas |
Cuando selecciones herramientas para tu agente, evalúa sus capacidades funcionales y su fiabilidad operativa. Prioriza las herramientas que sean observables, fáciles de depurar y que incluyan un control de errores sólido. Estas funciones te ayudan a asegurarte de que puedes monitorizar las acciones y resolver los errores rápidamente. Además, evalúa la capacidad del agente para seleccionar la herramienta adecuada para completar correctamente las tareas que se le han asignado.
Herramientas integradas
ADK proporciona varias herramientas integradas que se integran directamente en el tiempo de ejecución del agente. Puedes llamar a estas herramientas como funciones sin configurar protocolos de comunicación externos. Estas herramientas proporcionan funcionalidades comunes, como acceder a información en tiempo real de la Web, ejecutar código de forma programática en un entorno seguro, obtener información de datos empresariales privados para implementar RAG e interactuar con datos estructurados en bases de datos en la nube. Las herramientas integradas funcionan junto con las herramientas personalizadas que crees.
MCP
Para que los componentes de tu sistema de agente puedan interactuar, debes establecer protocolos de comunicación claros. MCP es un protocolo abierto que proporciona una interfaz estandarizada para que los agentes accedan y usen las herramientas, los datos y otros servicios necesarios.
MCP desacopla la lógica de razonamiento principal del agente de la implementación específica de sus herramientas, de forma similar a como un puerto de hardware estándar permite que diferentes periféricos se conecten a un dispositivo. MCP simplifica la integración de herramientas porque proporciona una lista cada vez mayor de conectores precompilados y una forma coherente de crear integraciones personalizadas. La flexibilidad para integrar herramientas fomenta la interoperabilidad entre diferentes modelos y herramientas.
Puedes conectarte a un servidor MCP remoto si hay alguno disponible o alojar tu propio servidor MCP. Si alojas tu propio servidor MCP, tendrás control total sobre cómo expones las APIs propietarias o de terceros a tus agentes. Para alojar tu propio servidor MCP personalizado, despliégalo como una aplicación en contenedores en Cloud Run o GKE.
Plataforma de gestión de APIs
Una plataforma de gestión de APIs es un sistema centralizado que te permite proteger, monitorizar y controlar servicios internos o externos a través de APIs. Una plataforma de gestión de APIs proporciona una ubicación centralizada para catalogar todas las APIs de tu organización, simplifica la forma de exponer los datos y ofrece observabilidad mediante la monitorización del uso.
Para gestionar las herramientas basadas en APIs de tu agente a escala empresarial en Google Cloud, te recomendamos que uses API Hub de Apigee. El centro de APIs permite que los agentes se conecten a los datos al instante mediante llamadas HTTP directas, conectores precompilados, APIs personalizadas registradas en el centro o acceso directo a fuentes de datos. Google Cloud Con este enfoque, tus agentes tienen acceso inmediato a la información que necesitan sin la complejidad de crear flujos de datos e integración personalizados.
Una plataforma de gestión de APIs y un protocolo de comunicación como MCP resuelven problemas de arquitectura diferentes. Un protocolo de comunicación estandariza el formato de interacción entre el agente y la herramienta, lo que asegura que los componentes se puedan reutilizar e intercambiar. Por el contrario, una plataforma de gestión de APIs rige el ciclo de vida y la seguridad del endpoint de la API, y gestiona tareas como la autenticación, la limitación de frecuencia y la monitorización. Estos patrones son complementarios. Por ejemplo, un agente puede usar MCP para comunicarse con una herramienta, y esa herramienta puede ser un endpoint de API seguro que el centro de APIs gestiona y protege.
Herramienta de función personalizada
Una herramienta de función proporciona nuevas funciones a un agente. Puedes escribir una herramienta de función personalizada para dotar a tu agente de funciones especializadas, como integrarse con una API externa o un sistema empresarial propietario. Escribir una herramienta de función personalizada es el patrón más habitual para ampliar las capacidades de un agente más allá de lo que pueden ofrecer las herramientas integradas.
Para crear una herramienta de función personalizada, escribe una función en el lenguaje de programación que prefieras y, a continuación, proporciona una descripción clara en lenguaje natural de su finalidad, sus parámetros y sus valores devueltos. El modelo del agente usa esta descripción para determinar cuándo se necesita la herramienta, qué entradas debe proporcionar y cómo interpretar la salida para completar la solicitud de un usuario.
También puedes crear una herramienta de función personalizada que implemente una función de agente como herramienta. Una función de agente como herramienta expone un agente como una función a la que se puede llamar y que otro agente puede invocar. Esta técnica te permite crear sistemas multiagente complejos en los que un agente puede coordinar y delegar tareas especializadas en otros agentes especializados. Para obtener más información sobre los patrones de diseño de agentes y la coordinación de la orquestación de varios agentes, consulta la sección sobre patrones de diseño de agentes más adelante en este documento.
Memoria del agente
La capacidad de un agente para recordar interacciones anteriores es fundamental para ofrecer una experiencia conversacional coherente y útil. Para crear agentes con estado y contextuales, debes implementar mecanismos de memoria a corto plazo y a largo plazo. En las siguientes secciones se analizan las opciones de diseño y los servicios que puedes usar para implementar la memoria a corto y largo plazo de tu agente. Google Cloud
Memoria a corto plazo
La memoria a corto plazo permite que un agente mantenga el contexto en una conversación única y continua. Para implementar la memoria a corto plazo, debes gestionar tanto la sesión como su estado asociado.
- Sesión: Una sesión es la conversación entre un usuario y el agente, desde la interacción inicial hasta el final del diálogo.
- Estado: El estado son los datos que el agente usa y recoge en una sesión específica. Los datos de estado que se recogen incluyen el historial de mensajes que han intercambiado el usuario y el agente, los resultados de las llamadas a herramientas y otras variables que el agente necesita para entender el contexto de la conversación.
Estas son las opciones para implementar la memoria a corto plazo con el ADK:
- Almacenamiento en memoria: para el desarrollo, las pruebas o las aplicaciones sencillas que se ejecutan en una sola instancia, puedes almacenar el estado de la sesión directamente en la memoria de tu aplicación. El agente usa una estructura de datos, como un diccionario o un objeto, para almacenar una lista de pares clave-valor y actualiza estos valores a lo largo de la sesión. Sin embargo, cuando usas el almacenamiento en memoria, el estado de la sesión no es persistente. Si la aplicación se reinicia, perderá todo el historial de conversaciones.
- Gestión de estado externo: en el caso de las aplicaciones de producción que requieran escalabilidad y fiabilidad, te recomendamos que crees una aplicación de agente sin estado y que gestiones el estado de la sesión en un servicio de almacenamiento externo. En esta arquitectura, cada vez que la aplicación del agente recibe una solicitud, recupera el estado actual de la conversación del almacén externo, procesa el nuevo turno y, a continuación, guarda el estado actualizado en el almacén. Este diseño te permite escalar tu aplicación horizontalmente, ya que cualquier instancia puede atender la solicitud de cualquier usuario. Entre las opciones habituales para gestionar el estado externo se incluyen Memorystore para Redis, Firestore o sesiones de Vertex AI Agent Engine.
Memoria a largo plazo
La memoria a largo plazo proporciona al agente una base de conocimientos persistente que se mantiene en todas las conversaciones de los usuarios. La memoria a largo plazo permite al agente recuperar y usar información externa, aprender de interacciones anteriores y ofrecer respuestas más precisas y relevantes.
Estas son algunas opciones para implementar la memoria a largo plazo con el ADK:
- Almacenamiento en memoria: para el desarrollo y las pruebas, puedes almacenar el estado de la sesión directamente en la memoria de tu aplicación. Este método es sencillo de implementar, pero no es persistente. Si la aplicación se reinicia,
perderá el historial de conversaciones. Normalmente, este patrón se implementa mediante un proveedor en memoria en un framework de desarrollo, como
InMemoryMemoryService, que se incluye en ADK para las pruebas. - Almacenamiento externo: en las aplicaciones de producción, gestiona la base de conocimientos de tu agente en un servicio de almacenamiento externo y persistente. Un servicio de almacenamiento externo asegura que el conocimiento de tu agente sea duradero, escalable y accesible en varias instancias de la aplicación. Usa Memory Bank para el almacenamiento a largo plazo con cualquier tiempo de ejecución del agente en Google Cloud.
Patrones de diseño de agentes
Los patrones de diseño de agentes son enfoques arquitectónicos habituales para crear aplicaciones de agentes. Estos patrones ofrecen un marco de trabajo distinto para organizar los componentes de un sistema, integrar el modelo de IA y orquestar un solo agente o varios para llevar a cabo un flujo de trabajo. Para determinar qué enfoque es el más adecuado para tu flujo de trabajo, debes tener en cuenta la complejidad y el flujo de trabajo de tus tareas, así como los requisitos de latencia, rendimiento y coste.
Un sistema de un solo agente se basa en las capacidades de razonamiento de un modelo para interpretar la solicitud de un usuario, planificar una secuencia de pasos y decidir qué herramientas usar. Este enfoque es un punto de partida eficaz que te permite centrarte en perfeccionar la lógica principal, las peticiones y las definiciones de herramientas antes de añadir complejidad a la arquitectura. Sin embargo, el rendimiento de un agente puede disminuir a medida que las tareas y el número de herramientas aumentan en complejidad.
Para resolver problemas complejos, un sistema multiagente coordina varios agentes especializados para alcanzar un objetivo que un solo agente no puede gestionar fácilmente. Este diseño modular puede mejorar la escalabilidad, la fiabilidad y la capacidad de mantenimiento del sistema. Sin embargo, también introduce consideraciones adicionales sobre evaluación, seguridad y costes en comparación con un sistema de un solo agente.
Cuando desarrolles un sistema multiagente, debes implementar controles de acceso precisos para cada agente especializado, diseñar un sistema de orquestación sólido para asegurar una comunicación fiable entre agentes y gestionar el aumento de los costes operativos derivado de la sobrecarga computacional que supone ejecutar varios agentes. Para facilitar la comunicación entre agentes, usa el protocolo Agent2Agent (A2A) con ADK. A2A es un protocolo estándar abierto que permite que los agentes de IA se comuniquen y colaboren en diferentes plataformas y frameworks, independientemente de sus tecnologías subyacentes.
Para obtener más información sobre los patrones de diseño de agentes habituales y cómo seleccionar un patrón en función de los requisitos de tu carga de trabajo, consulta Elige un patrón de diseño para tu sistema de IA con agentes.
Modelos de IA
Las aplicaciones de agentes dependen de las capacidades de razonamiento y comprensión de un modelo para actuar como orquestador de tareas principal. Para este rol de agente principal, te recomendamos que uses Gemini Pro.
Los modelos de Google, como Gemini, proporcionan acceso a los modelos propietarios más recientes y potentes a través de una API gestionada. Este enfoque es ideal para minimizar la sobrecarga operativa. Por el contrario, un modelo abierto y autohospedado proporciona el control exhaustivo que se necesita cuando se ajusta con datos propietarios. Las cargas de trabajo con requisitos estrictos de seguridad y residencia de datos también necesitan un modelo autohospedado, ya que te permite ejecutar el modelo en tu propia red.
Para mejorar el rendimiento del agente, puedes ajustar las funciones de razonamiento del modelo. Los modelos, como los modelos Gemini Pro y Flash más recientes, incorporan un proceso de pensamiento que mejora el razonamiento y la planificación de varios pasos. Para depurar y perfeccionar el modelo, puedes consultar los resúmenes de sus reflexiones, que son versiones sintetizadas de sus pensamientos internos, para entender su proceso de razonamiento. Puedes controlar las capacidades de razonamiento del modelo ajustando el presupuesto de reflexión, es decir, el número de tokens de reflexión, en función de la complejidad de la tarea. Un presupuesto de pensamiento más alto permite al modelo llevar a cabo un razonamiento y una planificación más detallados antes de proporcionar una respuesta. Un presupuesto de reflexión más alto puede mejorar la calidad de las respuestas, pero también puede aumentar la latencia y el coste.
Para optimizar el rendimiento y los costes, implementa el enrutamiento de modelos para seleccionar dinámicamente el modelo más adecuado para cada tarea en función de la complejidad, el coste o los requisitos de latencia de la tarea. Por ejemplo, puedes dirigir solicitudes sencillas a un modelo de lenguaje pequeño (SLM) para tareas estructuradas, como la generación de código o la clasificación de texto, y reservar un modelo más potente y caro para tareas de razonamiento complejas. Si implementas el enrutamiento de modelos en tu aplicación basada en agentes, puedes crear un sistema rentable que mantenga un rendimiento alto.
Google Cloud proporciona acceso a una amplia selección de modelos de Google, modelos de partners y modelos abiertos que puedes usar en tu arquitectura de agentes. Para obtener más información sobre los modelos disponibles y cómo elegir el que mejor se adapte a tus necesidades, consulta Model Garden en Vertex AI.
Tiempo de ejecución del modelo
Un tiempo de ejecución de un modelo es el entorno que aloja y sirve tu modelo de IA, y que pone sus capacidades de razonamiento a disposición de tu agente.
Elegir un tiempo de ejecución del modelo
Para seleccionar el mejor tiempo de ejecución al alojar tus modelos de IA, sigue estas directrices:
| Caso práctico | Tiempo de ejecución del modelo |
|---|---|
| Necesitas una API totalmente gestionada para ofrecer modelos de Gemini, modelos de partners, modelos abiertos o modelos personalizados con seguridad, escalabilidad y herramientas de IA generativa de nivel empresarial. | Vertex AI |
| Necesitas desplegar un modelo en contenedor abierto o personalizado y priorizar la sencillez y la rentabilidad de las soluciones sin servidor para el tráfico variable. | Cloud Run |
| Necesitas tener el máximo control sobre la infraestructura para ejecutar un modelo contenedorizado abierto o personalizado en hardware especializado, o bien para cumplir requisitos complejos de seguridad y redes. | GKE |
En las siguientes secciones se ofrece una descripción general de los tiempos de ejecución del modelo anterior, incluidas las funciones clave y las consideraciones de diseño. Este documento se centra en Vertex AI, Cloud Run y GKE. Sin embargo, Google Cloud ofrece otros servicios que puedes tener en cuenta para el tiempo de ejecución de un modelo:
- API de Gemini: La API de Gemini se ha diseñado para desarrolladores que necesitan un acceso rápido y directo a los modelos de Gemini sin las funciones de gestión empresarial que suelen requerir los sistemas de agentes complejos.
- Compute Engine: es un producto de infraestructura como servicio (IaaS) adecuado para aplicaciones antiguas. Supone una sobrecarga operativa significativa en comparación con los tiempos de ejecución modernos basados en contenedores.
Para obtener más información sobre las funciones que distinguen todas las opciones de servicio de los tiempos de ejecución de modelos, consulta Infraestructura de alojamiento de modelos.
Vertex AI
Vertex AI proporciona un entorno sin servidor totalmente gestionado que aloja tus modelos de IA. Puedes usar y ajustar modelos de Google, de partners y abiertos a través de una API segura y escalable. Este enfoque abstrae toda la gestión de la infraestructura y te permite centrarte en integrar la inteligencia del modelo en tus aplicaciones.
Cuando usas Vertex AI como tiempo de ejecución de modelos, las principales funciones y consideraciones son las siguientes:
- Control de la infraestructura: una API totalmente gestionada para tus modelos. Google gestiona la infraestructura subyacente.
- Seguridad: los valores predeterminados de seguridad gestionados y las certificaciones de cumplimiento estándar son suficientes para tus necesidades. Para proteger las peticiones y las respuestas, y para asegurar que se aplican prácticas de IA responsables, puedes integrar Model Armor en Vertex AI.
- Disponibilidad de modelos: acceso a una amplia selección de modelos, incluidos los últimos modelos de Gemini, a través de una API gestionada.
- Coste: modelo de precios de pago por uso que se adapta al tráfico de tu aplicación. Para obtener más información, consulta Coste de crear y desplegar modelos de IA en Vertex AI.
Cloud Run
Cloud Run proporciona un tiempo de ejecución sin servidor que aloja tus modelos en contenedores personalizados. Cloud Run ofrece un equilibrio entre la sencillez totalmente gestionada de Vertex AI y el control profundo de la infraestructura de GKE. Este enfoque es ideal cuando necesitas flexibilidad para ejecutar tu modelo en un entorno en contenedores sin gestionar servidores ni clústeres.
Cuando usas Cloud Run como tiempo de ejecución de modelos, las principales funciones y consideraciones son las siguientes:
- Control de la infraestructura: ejecuta cualquier modelo en un contenedor personalizado, que proporciona control total sobre el entorno de software, mientras que la plataforma gestiona la infraestructura sin servidor subyacente.
- Seguridad: proporciona seguridad a través de instancias de proceso efímeras y aisladas, y permite establecer conexiones seguras con recursos privados mediante la salida de VPC directa o un conector de acceso a VPC sin servidor. Para obtener más información, consulta Redes privadas y Cloud Run.
- Disponibilidad del modelo: sirve modelos abiertos, como Gemma, o tus propios modelos personalizados. No puedes alojar ni servir modelos de Gemini en Cloud Run.
- Coste: ofrece un modelo de precios basado en las peticiones y de pago por uso que se puede reducir a cero, lo que lo convierte en una opción muy rentable para modelos con tráfico esporádico o variable. Para obtener más información, consulta los precios de Cloud Run.
GKE
GKE ofrece el máximo control y flexibilidad para alojar tus modelos de IA. Para usar este método, debes ejecutar tus modelos en contenedores en un clúster de GKE que configures y gestiones. GKE es la opción ideal si necesitas ejecutar modelos en hardware especializado, colocarlos junto a tus aplicaciones para minimizar la latencia o tener un control granular sobre todos los aspectos del entorno de servicio.
Si usas GKE como tiempo de ejecución de modelos, las principales funciones y consideraciones son las siguientes:
- Control de la infraestructura: proporciona un control máximo y granular sobre todo el entorno de servicio, incluidas las configuraciones de los nodos, los aceleradores de máquinas especializadas y el software de servicio de modelos específico.
- Seguridad: ofrece el máximo nivel de seguridad y aislamiento de datos, ya que te permite ejecutar modelos por completo en tu red y aplicar políticas de seguridad de Kubernetes detalladas. Para analizar el tráfico hacia y desde un clúster de GKE, así como para proteger todas las interacciones con los modelos de IA, puedes integrar Model Armor con GKE .
- Disponibilidad de modelos: sirve modelos abiertos, como Gemma, o tus propios modelos personalizados. No puedes alojar ni servir modelos de Gemini en GKE.
- Coste: ofrece un modelo de costes basado en los recursos de computación y de clúster subyacentes que consumes, lo que lo hace muy optimizado para cargas de trabajo predecibles y de gran volumen cuando usas descuentos por uso confirmado (CUDs). Para obtener más información, consulta los precios de Google Kubernetes Engine.
Tiempo de ejecución del agente
Para alojar e implementar tu aplicación de agente, debes elegir un tiempo de ejecución del agente. Este servicio ejecuta el código de tu aplicación, es decir, la lógica empresarial y la orquestación que escribes cuando usas un framework de desarrollo de agentes. Desde este tiempo de ejecución, tu aplicación hace llamadas a la API de los modelos que aloja y gestiona el tiempo de ejecución del modelo que hayas elegido.
Elegir un tiempo de ejecución del agente
Para seleccionar el tiempo de ejecución al alojar tus agentes de IA, sigue estas instrucciones:
| Caso práctico | Tiempo de ejecución del agente |
|---|---|
| Tu aplicación es un agente de Python y requiere una experiencia totalmente gestionada con una sobrecarga operativa mínima. | Vertex AI Agent Engine |
| Tu aplicación está en contenedores y requiere escalado sin servidor basado en eventos con flexibilidad de lenguaje. | Cloud Run |
| Tu aplicación está en contenedores, tiene requisitos complejos con estado y necesita una configuración de infraestructura precisa. | GKE |
Si ya gestionas aplicaciones en Cloud Run o en GKE, puedes acelerar el desarrollo y simplificar las operaciones a largo plazo usando la misma plataforma para tu carga de trabajo de agente.
En las siguientes secciones se ofrece una descripción general de cada tiempo de ejecución del agente, incluidas las funciones clave y los aspectos que hay que tener en cuenta para el diseño.
Vertex AI Agent Engine
Vertex AI Agent Engine es un tiempo de ejecución totalmente gestionado y con opiniones definidas que puedes usar para desplegar, operar y escalar aplicaciones agentivas. Vertex AI Agent Engine abstrae la infraestructura subyacente, lo que te permite centrarte en la lógica del agente en lugar de en las operaciones.
Estas son las funciones y consideraciones de Vertex AI Agent Engine:
- Flexibilidad de lenguaje de programación y framework: desarrolla agentes en Python con cualquiera de los frameworks compatibles.
- Protocolos de comunicación: coordina agentes y herramientas que usan MCP y A2A. Vertex AI Agent Engine gestiona de forma eficiente el tiempo de ejecución de estos componentes, pero no admite el alojamiento de servidores MCP personalizados.
- Memoria: ofrece funciones de memoria gestionadas e integradas, lo que elimina la necesidad de configurar bases de datos externas para la memoria principal del agente.
Requisito Opciones disponibles Memoria a corto plazo Sesiones de Vertex AI Agent Engine Memoria a largo plazo Memory Bank Búsqueda y recuperación de bases de datos - Escalabilidad: se escala automáticamente para satisfacer las demandas de tu carga de trabajo de agente, lo que elimina la necesidad de realizar configuraciones manuales. Vertex AI Agent Engine se basa en Cloud Run y utiliza el escalado de instancias integrado de Cloud Run para proporcionar este escalado automático.
- Observabilidad: proporciona servicios integrados de registro, monitorización y seguimiento a través de los servicios de Observabilidad de Google Cloud.
- Seguridad: ofrece la siguiente fiabilidad, escalabilidad y cumplimiento de nivel empresarial:
- Identidad de servicio integrada para hacer llamadas seguras y autenticadas a las APIs de Google Cloud.
- Ejecuta código en un entorno aislado, seguro y gestionado con Vertex AI Agent Engine Code Execution.
- Protege tus datos con tu propia clave de cifrado gestionada por el cliente (CMEK) en Secret Manager.
- Restringe los permisos de gestión de identidades y accesos y usa reglas de cortafuegos de VPC para evitar llamadas de red no deseadas.
Para obtener información sobre las funciones de seguridad de Vertex AI Agent Engine, consulta Seguridad empresarial.
Vertex AI Agent Engine acelera el proceso de producción porque proporciona un entorno gestionado y diseñado específicamente que se encarga de muchos aspectos complejos al operar agentes, como la gestión del ciclo de vida y del contexto. Vertex AI Agent Engine es menos adecuado para casos prácticos que requieren una personalización exhaustiva del entorno de computación o que requieren lenguajes de programación distintos de Python. En el caso de las cargas de trabajo que tienen requisitos de seguridad estrictos para la gestión de dependencias privadas, Cloud Run y GKE ofrecen una ruta de configuración más directa basada en IAM.
Cloud Run
Cloud Run es una plataforma sin servidor totalmente gestionada que te permite ejecutar el código de tu aplicación de agente en un contenedor sin reconocimiento del estado. Cloud Run es ideal si quieres desplegar toda la aplicación del agente, componentes individuales o herramientas personalizadas como endpoints HTTP escalables sin tener que gestionar la infraestructura subyacente.
Estas son las funciones y consideraciones de Cloud Run:
- Flexibilidad de lenguaje de programación y framework: cuando empaquetas tu aplicación en un contenedor, puedes desarrollar agentes en cualquier lenguaje de programación y con cualquier framework.
- Protocolos de comunicación: coordina agentes y herramientas que usan MCP y A2A. Aloja clientes y servidores de MCP con transporte HTTP de flujo en Cloud Run.
- Memoria: las instancias de Cloud Run no tienen estado, lo que significa que una instancia pierde los datos en memoria cuando finaliza. Para implementar la memoria persistente, conecta tu servicio a unGoogle Cloud servicio de almacenamiento gestionado:
Requisito Opciones disponibles Memoria a corto plazo Memoria a largo plazo - Firestore
- Memory Bank con Cloud Run
Búsqueda y recuperación de bases de datos - Escalabilidad: escala automáticamente el número de instancias en función del tráfico entrante y también reduce el número de instancias a cero. Esta función ayuda a que Cloud Run sea rentable para las aplicaciones que tienen cargas de trabajo variables.
- Observabilidad: proporciona servicios integrados de registro, monitorización y seguimiento a través de Google Cloud Observability. Para obtener más información, consulta el resumen de la monitorización y el registro.
- Seguridad: proporciona los siguientes controles de seguridad para tus agentes:
- Servicio de identidad integrado para hacer llamadas seguras y autenticadas a las APIs de Google Cloud.
- Ejecuta código sin probar en un entorno seguro con el entorno de pruebas de Cloud Run o con la ejecución de código de Vertex AI Agent Engine.
- Almacena los datos sensibles que usa Cloud Run configurando secretos en Secret Manager.
- Evita las llamadas de red no deseadas restringiendo los permisos de gestión de identidades y accesos y usando reglas de firewall de VPC.
Cloud Run ofrece una gran sencillez operativa y rentabilidad, ya que elimina la gestión de la infraestructura. Sin embargo, la naturaleza sin estado de Cloud Run requiere que uses un servicio de almacenamiento para gestionar el contexto en un flujo de trabajo de varios pasos. Además, el tiempo de espera máximo de las solicitudes de los servicios de Cloud Run es de una hora, lo que puede limitar las tareas de agente de larga duración.
GKE
Google Kubernetes Engine (GKE) es un servicio de orquestación de contenedores gestionado que proporciona un control granular sobre la arquitectura y la infraestructura de tu aplicación basada en agentes. GKE es adecuado para sistemas de agentes complejos que requieren funciones sólidas y de nivel de producción, o si ya eres cliente de GKE y quieres implementar un flujo de trabajo de agentes en tu aplicación.
Estas son las funciones y consideraciones disponibles en GKE:
- Flexibilidad de lenguaje de programación y framework: cuando empaquetas tu aplicación en un contenedor, puedes desarrollar agentes en cualquier lenguaje de programación y con cualquier framework.
- Protocolos de comunicación: coordina agentes y herramientas que usan MCP y A2A. Aloja clientes y servidores de MCP en GKE cuando los empaquetes como contenedores.
- Memoria: los pods de GKE son efímeros.
Sin embargo, puedes crear agentes con estado y memoria persistente usando recursos del clúster o conectándote a servicios externos:
Requisito Opciones disponibles Memoria a corto plazo Memoria a largo plazo - Firestore
- Memory Bank con GKE
Búsqueda y recuperación de bases de datos - StatefulSets y volúmenes persistentes para el almacenamiento duradero en tu clúster.
- Cloud SQL
- AlloyDB for PostgreSQL
- Escalabilidad: los clústeres de GKE aprovisionan y escalan automáticamente tus grupos de nodos para satisfacer los requisitos de tu carga de trabajo.
- Observabilidad: proporciona registro, monitorización y seguimiento integrados a nivel de clúster, nodo y pod con Google Cloud Observability. Para recoger métricas de terceros y definidas por el usuario configuradas y, a continuación, enviarlas a Cloud Monitoring, también puede usar Google Cloud Managed Service para Prometheus. Para obtener más información, consulta el resumen de la observabilidad de GKE.
- Seguridad: proporciona controles de seguridad detallados para tus agentes.
- Usa Workload Identity Federation para GKE para autenticarte de forma segura en las APIs de Google Cloud.
- Aísla el código que no sea de confianza con GKE Sandbox.
- Almacena los datos sensibles que usan tus clústeres de GKE en Secret Manager.
- Restringe los permisos de gestión de identidades y accesos (IAM) y usa reglas de cortafuegos de VPC y políticas de red para evitar llamadas de red no deseadas.
GKE ofrece el máximo control y flexibilidad, lo que te permite ejecutar agentes complejos con reconocimiento del estado. Sin embargo, este control introduce una sobrecarga operativa y una complejidad significativas. Debes configurar y gestionar el clúster de Kubernetes, incluidos los grupos de nodos, la red y las políticas de escalado, lo que requiere más experiencia y esfuerzo de desarrollo que una plataforma sin servidor.
Siguientes pasos
- Herramientas para agentes:
- Memoria del agente:
- Patrones de diseño de agentes:
- Tiempo de ejecución del agente:
- Otros recursos de IA con agentes en Google Cloud:
- Para ver más arquitecturas de referencia, diagramas y prácticas recomendadas, consulta el centro de arquitectura de Cloud.
Colaboradores
Autor: Samantha He | Redactora técnica
Otros colaboradores:
- Amina Mansour | Responsable del equipo de evaluaciones de Cloud Platform
- Amit Maraj | Ingeniero de Relaciones con Desarrolladores
- Casey West | Asesor de arquitectura, Google Cloud
- Jack Wotherspoon | Developer Advocate
- Joe Fernandez | Redactor técnico
- Joe Shirey | Gestor de relaciones con desarrolladores de Cloud
- Karl Weinmeister | Director de Relaciones con Desarrolladores de Productos de Cloud
- Kumar Dhanagopal | Desarrollador de soluciones entre productos
- Lisa Shen | Responsable sénior de productos salientes, Google Cloud
- Mandy Grover | Directora del Centro de Arquitectura
- Megan O'Keefe | Developer Advocate
- Olivier Bourgeois | Ingeniero de Relaciones con Desarrolladores
- Polong Lin | Jefe de Ingeniería de Relaciones con Desarrolladores
- Shir Meir Lador | Gestora de Ingeniería de Relaciones con Desarrolladores
- Vlad Kolesnikov | Ingeniero de relaciones con desarrolladores