Elegir un patrón de diseño para tu sistema de IA con agentes

En este documento se ofrecen directrices para ayudarte a elegir un patrón de diseño para tu sistema de IA con agentes. Los patrones de diseño de agentes son enfoques arquitectónicos habituales para crear aplicaciones de agentes. Un patrón de diseño de agente ofrece un marco distinto para organizar los componentes de un sistema, integrar el modelo y coordinar un solo agente o varios para llevar a cabo un flujo de trabajo.

Los agentes de IA son eficaces en aplicaciones que resuelven problemas abiertos, que pueden requerir toma de decisiones autónoma y gestión de flujos de trabajo complejos de varios pasos. Los agentes son expertos en resolver problemas en tiempo real mediante el uso de datos externos y en automatizar tareas que requieren muchos conocimientos. Los agentes de IA son adecuados cuando necesitas que la IA complete tareas centradas en objetivos con cierto grado de autonomía. Para otros casos prácticos, puedes usar aplicaciones de IA asistencial y generativa. Para obtener información sobre las diferencias entre los agentes de IA y las aplicaciones de IA no basadas en agentes, consulta ¿En qué se diferencian los agentes, los asistentes y los bots de IA?

En esta guía se da por hecho que tienes conocimientos básicos sobre los sistemas de IA basados en agentes y sobre cómo se diferencia su arquitectura de la de los sistemas que no se basan en agentes, como los que usan el razonamiento directo de modelos o la generación aumentada por recuperación (RAG).

Para ver un resumen de las directrices sobre patrones de agentes, consulta la sección Comparar patrones de diseño más adelante en este documento.

Descripción general del proceso de diseño

A continuación, se indican los pasos generales para elegir un patrón de diseño para tu sistema de IA con agentes. Estos pasos se describen en detalle más adelante en este documento.

  1. Define tus requisitos: evalúa las características de tu carga de trabajo, como la complejidad de las tareas, las expectativas de latencia y rendimiento, el presupuesto y la necesidad de intervención humana.
  2. Consulta los patrones de diseño de agentes habituales: descubre los patrones de diseño habituales en esta guía, que incluyen sistemas de un solo agente y sistemas multiagente.
  3. Selecciona un patrón: Elige el patrón de diseño adecuado en función de las características de tu carga de trabajo.

Este proceso no es una decisión puntual. Deberías volver a consultar estos pasos periódicamente para perfeccionar tu arquitectura a medida que cambien las características de tu carga de trabajo, evolucionen tus requisitos o haya nuevas funciones de Google Cloud disponibles.

Define tus requisitos

Las preguntas que se incluyen a continuación no son listas de comprobación exhaustivas para la planificación. Usa estas preguntas como punto de partida para identificar el objetivo principal de tu sistema con agentes y seleccionar el mejor patrón de diseño.

  • Características de la tarea: ¿se puede completar la tarea siguiendo pasos predefinidos o es una tarea abierta? ¿Tu tarea necesita usar un modelo de IA para orquestar el flujo de trabajo?
  • Latencia y rendimiento: ¿necesitas priorizar las respuestas rápidas o interactivas a costa de la precisión o la calidad? ¿O tu aplicación puede tolerar un retraso para obtener un resultado más preciso o completo?
  • Coste: ¿cuál es tu presupuesto para los costes de inferencia? ¿Podéis admitir patrones que requieran varias llamadas al modelo para una sola solicitud?
  • Participación humana: ¿tu tarea implica decisiones importantes, operaciones críticas para la seguridad o aprobaciones subjetivas que requieren el juicio de una persona?

Si tu carga de trabajo es predecible o está muy estructurada, o si se puede ejecutar con una sola llamada a un modelo de IA, puede ser más rentable explorar soluciones no basadas en agentes para tu tarea. Por ejemplo, puede que no necesites 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 cómo elegir componentes de arquitectura para aplicaciones de IA generativa que no requieran una infraestructura de agentes, consulta Elegir modelos e infraestructura para tu aplicación de IA generativa.

En las siguientes secciones se describen patrones de diseño de agentes habituales para crear un sistema de IA con agentes fiable y eficaz.

Sistema de un solo agente

Un sistema de un solo agente usa un modelo de IA, un conjunto de herramientas definido y una petición del sistema completa para gestionar de forma autónoma una solicitud de un usuario o para completar una tarea específica. En este patrón fundamental, el agente se basa en las capacidades de razonamiento del modelo para interpretar la solicitud de un usuario, planificar una secuencia de pasos y decidir qué herramientas usar de un conjunto definido. La petición del sistema define el comportamiento del agente al especificar su tarea principal, su rol y sus operaciones, así como las condiciones específicas para usar cada herramienta.

En el siguiente diagrama se muestra una vista general de un patrón de un solo agente:

Arquitectura del patrón de diseño de un solo agente.

Un sistema de un solo agente es ideal para tareas que requieren varios pasos y acceso a datos externos. Por ejemplo, un agente del servicio de asistencia debe consultar una base de datos para buscar el estado de un pedido, o un asistente de investigación necesita llamar a APIs para resumir noticias recientes. Un sistema no agentivo no puede realizar estas tareas porque no puede usar herramientas de forma autónoma ni ejecutar un plan de varios pasos para sintetizar una respuesta final.

Si estás en las primeras fases del desarrollo de tu agente, te recomendamos que empieces con un solo agente. Si empiezas a desarrollar tu agente con un sistema de un solo agente, puedes centrarte en perfeccionar la lógica principal, la petición y las definiciones de herramientas de tu agente antes de añadir componentes de arquitectura más complejos.

El rendimiento de un solo agente puede ser menos eficaz cuando utiliza más herramientas y cuando las tareas aumentan su complejidad. Puede que observes un aumento de la latencia, una selección o un uso incorrectos de la herramienta o que no se pueda completar la tarea. A menudo, puedes mitigar estos problemas refinando el proceso de razonamiento del agente con técnicas como el patrón Razonar y actuar (ReAct). Sin embargo, si tu flujo de trabajo requiere que un agente gestione varias responsabilidades distintas, es posible que estas técnicas no sean suficientes. En estos casos, te recomendamos que utilices un sistema multiagente, que puede mejorar la resiliencia y el rendimiento delegando habilidades específicas en agentes especializados.

Sistemas multiagente

Un sistema multiagente coordina varios agentes especializados para resolver un problema complejo que un solo agente no puede gestionar fácilmente. El principio fundamental es descomponer un objetivo grande en subtareas más pequeñas y asignar cada subtarea a un agente específico con una habilidad concreta. Estos agentes interactúan a través de flujos de trabajo colaborativos o jerárquicos para alcanzar el objetivo final. Los patrones multiagente proporcionan un diseño modular que puede mejorar la escalabilidad, la fiabilidad y el mantenimiento del sistema en general en comparación con un solo agente con una petición monolítica.

En un sistema multiagente, cada agente requiere un contexto específico para llevar a cabo su tarea de forma eficaz. El contexto puede incluir documentación, preferencias históricas, enlaces relevantes, historial de conversaciones o cualquier restricción operativa. El proceso de gestión de este flujo de información se denomina ingeniería del contexto. La ingeniería del contexto incluye estrategias como aislar el contexto de un agente específico, conservar la información en varios pasos o comprimir grandes cantidades de datos para mejorar la eficiencia.

Crear un sistema multiagente requiere consideraciones adicionales sobre evaluación, seguridad, fiabilidad y costes en comparación con un sistema de un solo agente. Por ejemplo, los sistemas multiagente deben 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 ver un ejemplo de arquitectura de referencia para crear un sistema multiagente, consulta Sistemas de IA multiagente en Google Cloud.

Patrón secuencial

El patrón secuencial multiagente ejecuta una serie de agentes especializados en un orden lineal predefinido, donde la salida de un agente sirve como entrada directa para el siguiente. Este patrón usa un agente de flujo de trabajo secuencial que opera con una lógica predefinida sin tener que consultar un modelo de IA para la orquestación de sus subagentes.

En el siguiente diagrama se muestra una vista general de un patrón secuencial multiagente:

Arquitectura del patrón de diseño secuencial multiagente.

Usa el patrón secuencial en procesos muy estructurados y repetibles en los que la secuencia de operaciones no cambia. Por ejemplo, una canalización de procesamiento de datos puede usar este patrón para que un agente de extracción de datos obtenga primero datos sin procesar y, a continuación, transfiera esos datos a un agente de limpieza de datos para darles formato. Este agente, a su vez, transfiere los datos limpios a un agente de carga de datos para guardarlos en una base de datos.

El patrón secuencial puede reducir la latencia y los costes operativos en comparación con un patrón que usa un modelo de IA para orquestar el flujo de trabajo de las tareas. Sin embargo, esta eficiencia conlleva una pérdida de flexibilidad. La estructura rígida y predefinida de la canalización dificulta la adaptación a condiciones dinámicas o la omisión de pasos innecesarios, lo que puede provocar un procesamiento ineficiente o una latencia acumulativa más alta si un paso innecesario es lento.

Patrón paralelo

En el patrón paralelo multiagente, también conocido como patrón simultáneo, varios subagentes especializados realizan una tarea o subtareas de forma independiente al mismo tiempo. Después, se sintetizan las salidas de los subagentes para generar la respuesta final consolidada. Al igual que en el patrón secuencial, en el patrón paralelo se usa un agente de flujo de trabajo paralelo para gestionar cómo y cuándo se ejecutan los demás agentes sin tener que consultar un modelo de IA para coordinar sus subagentes.

En el siguiente diagrama se muestra una vista general de un patrón paralelo multiagente:

Arquitectura del patrón de diseño paralelo multiagente.

Usa el patrón paralelo cuando las subtareas se puedan ejecutar simultáneamente para reducir la latencia o reunir diferentes perspectivas, como recoger datos de fuentes dispares o evaluar varias opciones a la vez. Por ejemplo, para analizar los comentarios de los clientes, un agente paralelo puede enviar una única entrada de comentarios a cuatro agentes especializados al mismo tiempo: un agente de análisis de sentimientos, un agente de extracción de palabras clave, un agente de categorización y un agente de detección de urgencias. Un agente final recopila estos cuatro resultados en un análisis único y completo de esa información.

El patrón paralelo puede reducir la latencia general en comparación con un enfoque secuencial, ya que puede recopilar información diversa de varias fuentes al mismo tiempo. Sin embargo, este enfoque conlleva ciertas contrapartidas en cuanto a costes y complejidad. Ejecutar varios agentes en paralelo puede aumentar la utilización inmediata de recursos y el consumo de tokens, lo que conlleva un aumento de los costes operativos. Además, el paso de recogida requiere una lógica compleja para sintetizar resultados que pueden ser contradictorios, lo que aumenta la carga de trabajo de desarrollo y mantenimiento del sistema.

Patrón de bucle

El patrón de agente de bucle multagente ejecuta repetidamente una secuencia de subagentes especializados hasta que se cumple una condición de finalización específica. Este patrón usa un agente de flujo de trabajo de bucle que, al igual que otros agentes de flujo de trabajo, opera con una lógica predefinida sin consultar un modelo de IA para la orquestación. Una vez que todos los subagentes completan sus tareas, el agente de bucle evalúa si se cumple una condición de salida. La condición puede ser un número máximo de iteraciones o un estado personalizado. Si no se cumple la condición de salida, el agente de bucle vuelve a iniciar la secuencia de subagentes. Puedes implementar un patrón de bucle en el que la condición de salida se evalúa en cualquier punto del flujo. Usa el patrón de bucle para tareas que requieran refinamiento iterativo o autocorrección, como generar contenido y hacer que un agente crítico lo revise hasta que cumpla un estándar de calidad.

En el siguiente diagrama se muestra una vista general de un patrón de bucle multiagente:

Arquitectura del patrón de diseño de bucle multiagente.

El patrón de agente de bucle proporciona una forma de crear flujos de trabajo complejos e iterativos. Permite a los agentes perfeccionar su trabajo y seguir procesándolo hasta que se alcance una calidad o un estado específicos. Sin embargo, la principal desventaja de este patrón es el riesgo de que se produzca un bucle infinito. Si la condición de finalización no se define correctamente o si los subagentes no producen el estado necesario para detenerse, el bucle puede ejecutarse indefinidamente. Esto puede provocar costes operativos excesivos, un consumo elevado de recursos y posibles bloqueos del sistema.

Patrón de revisión y crítica

El patrón de revisión y crítica multiagente, también conocido como patrón de generador y crítico, mejora la calidad y la fiabilidad del contenido generado mediante el uso de dos agentes especializados, normalmente en un flujo de trabajo secuencial. El patrón de revisión y crítica es una implementación del patrón de agente de bucle.

En el patrón de revisión y crítica, un agente generador crea un resultado inicial, como un bloque de código o un resumen de un documento. A continuación, un agente crítico evalúa este resultado en función de un conjunto de criterios predefinidos, como la precisión de los datos, el cumplimiento de las reglas de formato o las directrices de seguridad. En función de la evaluación, el crítico puede aprobar el contenido, rechazarlo o devolverlo al generador con comentarios para que lo revise.

En el siguiente diagrama se muestra una vista general de un patrón de revisión y crítica multiagente:

Arquitectura del patrón de diseño de revisión y crítica multiagente.

Este patrón es adecuado para tareas en las que las salidas deben ser muy precisas o cumplir restricciones estrictas antes de presentarse a un usuario o de usarse en un proceso posterior. Por ejemplo, en un flujo de trabajo de generación de código, un agente de generador podría escribir una función para satisfacer la solicitud de un usuario. Este código generado se envía a un agente crítico que actúa como auditor de seguridad. El trabajo del agente de crítica consiste en comprobar el código en función de una serie de restricciones, como buscar vulnerabilidades de seguridad o verificar que supera todas las pruebas unitarias, antes de que se apruebe su uso.

El patrón de revisor y crítico puede mejorar la calidad, la precisión y la fiabilidad de los resultados, ya que añade un paso de verificación específico. Sin embargo, esta garantía de calidad conlleva un aumento directo de la latencia y de los gastos operativos. El flujo de trabajo requiere al menos una llamada de modelo adicional para la evaluación del crítico. Si el proceso incluye bucles de revisión en los que el contenido se envía de vuelta para que se perfeccione, tanto la latencia como los costes se acumulan con cada iteración.

Patrón de refinamiento iterativo

El patrón de refinamiento iterativo usa un mecanismo de bucle para mejorar progresivamente un resultado en varios ciclos. El patrón de refinamiento iterativo es una implementación del patrón de agente de bucle.

En este patrón, uno o varios agentes trabajan en un bucle para modificar un resultado que se almacena en el estado de la sesión durante cada iteración. El proceso continúa hasta que el resultado cumple un umbral de calidad predefinido o hasta que se alcanza un número máximo de iteraciones, lo que evita bucles infinitos.

En el siguiente diagrama se muestra una vista general de un patrón de refinamiento iterativo multiagente:

Arquitectura del patrón de diseño de refinamiento iterativo multiagente.

Este patrón es adecuado para tareas de generación complejas en las que es difícil obtener el resultado en un solo paso. Por ejemplo, escribir y depurar un fragmento de código, desarrollar un plan detallado de varias partes o redactar y revisar un documento extenso. Por ejemplo, en un flujo de trabajo de escritura creativa, un agente puede generar un borrador de una entrada de blog, analizar el borrador para comprobar el flujo y el tono, y, a continuación, reescribirlo en función de ese análisis. Este proceso se repite en bucle hasta que el trabajo del agente cumple un estándar de calidad predefinido o hasta que la repetición alcanza un número máximo de iteraciones.

El patrón de refinamiento iterativo puede producir resultados muy complejos o pulidos que serían difíciles de conseguir en un solo paso. Sin embargo, el mecanismo de bucle aumenta directamente la latencia y los costes operativos con cada ciclo. Este patrón también añade complejidad a la arquitectura, ya que requiere condiciones de salida cuidadosamente diseñadas, como una evaluación de calidad o un límite máximo de iteraciones, para evitar costes excesivos o una ejecución descontrolada.

Patrón de coordinador

El patrón de coordinador multiagente usa un agente central, el coordinador, para dirigir un flujo de trabajo. El coordinador analiza y descompone la solicitud de un usuario en subtareas y, a continuación, envía cada subtarea a un agente especializado para que la ejecute. Cada agente especializado es experto en una función específica, como consultar una base de datos o llamar a una API.

Una característica distintiva del patrón de coordinador es el uso de un modelo de IA para orquestar y enrutar tareas de forma dinámica. Por el contrario, el patrón paralelo se basa en un flujo de trabajo codificado para enviar tareas para que se ejecuten simultáneamente sin necesidad de orquestación de modelos de IA.

En el siguiente diagrama se muestra una vista general de un patrón de coordinador multiagente:

Arquitectura del patrón de diseño de coordinador multiagente.

Usa el patrón de coordinador para automatizar procesos empresariales estructurados que requieran un enrutamiento adaptativo. Por ejemplo, un agente del servicio de atención al cliente puede actuar como coordinador. El agente coordinador analiza la solicitud para determinar si se trata de una solicitud de estado de pedido, de devolución de producto o de reembolso. En función del tipo de solicitud, el coordinador asigna la tarea al agente especializado correspondiente.

El patrón de coordinador ofrece flexibilidad en comparación con los flujos de trabajo predefinidos más rígidos. Al usar un modelo para enrutar tareas, el coordinador puede gestionar una mayor variedad de entradas y adaptar el flujo de trabajo en tiempo de ejecución. Sin embargo, este enfoque también conlleva ciertas desventajas. Como el coordinador y cada agente especializado dependen de un modelo para razonar, este patrón da lugar a más llamadas al modelo que un sistema de un solo agente. Aunque el patrón de coordinador puede dar lugar a un razonamiento de mayor calidad, también aumenta el rendimiento de los tokens, los costes operativos y la latencia general en comparación con un sistema de un solo agente.

Patrón de descomposición de tareas jerárquica

El patrón de descomposición de tareas jerárquica multiagente organiza los agentes en una jerarquía multinivel para resolver problemas complejos que requieren una planificación exhaustiva. El patrón de descomposición de tareas jerárquica es una implementación del patrón de coordinador. Un agente superior o raíz recibe una tarea compleja y es el responsable de desglosarla en varias subtareas más pequeñas y fáciles de gestionar. El agente raíz delega cada subtarea a un subagente especializado de un nivel inferior. Este proceso puede repetirse en varias capas, con agentes que descomponen progresivamente las tareas que tienen asignadas hasta que son lo suficientemente sencillas para que un agente de trabajador del nivel más bajo las ejecute directamente.

En el siguiente diagrama se muestra una vista general de un patrón de descomposición de tareas jerárquico multiagente:

Arquitectura del patrón de diseño de descomposición de tareas jerárquica multiagente.

Usa el patrón de descomposición de tareas jerárquica para problemas ambiguos y abiertos que requieran un razonamiento de varios pasos, como las tareas que implican investigación, planificación y síntesis. Por ejemplo, para completar un proyecto de investigación complejo, un agente coordinador descompone el objetivo de alto nivel en varias tareas, como recopilar información, analizar los resultados y sintetizar el informe final. A continuación, el agente coordinador delega esas tareas en subagentes especializados, como un agente de recogida de datos, un agente de análisis y un agente que redacta informes, para que las ejecuten o las desglosen aún más.

El patrón de descomposición de tareas jerárquica es ideal para resolver problemas muy complejos y ambiguos, ya que los descompone sistemáticamente en subtareas manejables. Este patrón puede dar lugar a resultados más completos y de mayor calidad que los patrones más sencillos. Sin embargo, esta función avanzada conlleva importantes contrapartidas. La estructura multinivel añade una complejidad arquitectónica considerable, lo que dificulta el diseño, la depuración y el mantenimiento del sistema. Las múltiples capas de delegación y razonamiento también dan lugar a un gran número de llamadas al modelo, lo que aumenta significativamente tanto la latencia general como los costes operativos en comparación con otros patrones.

Patrón de enjambre

El patrón de enjambre multiagente usa un enfoque de comunicación colaborativo de todos con todos. En este patrón, varios agentes especializados trabajan juntos para perfeccionar de forma iterativa una solución a un problema complejo.

En el siguiente diagrama se muestra una vista general de un patrón de enjambre multiagente:

Arquitectura del patrón de diseño de enjambre multiagente.

El patrón de enjambre usa un agente de distribución para enrutar una solicitud de usuario a un grupo colaborativo de agentes especializados. El agente de distribución interpreta la solicitud y determina qué agente del clúster es el más adecuado para empezar la tarea. En este patrón, cada agente puede comunicarse con todos los demás, lo que les permite compartir resultados, criticar propuestas y desarrollar el trabajo de los demás para refinar una solución de forma iterativa. Cualquier agente del enjambre puede transferir la tarea a otro agente que considere más adecuado para gestionar el siguiente paso, o bien puede comunicar la respuesta final al usuario a través del agente coordinador.

Por lo general, un enjambre no tiene un agente supervisor o coordinador central que controle el proceso. El agente de distribución no orquesta el flujo de trabajo de los agentes, a diferencia del patrón de coordinador. En su lugar, el agente de distribución facilita la comunicación entre los subagentes del enjambre y el usuario. Para asegurarte de que el enjambre se detenga y devuelva un resultado, debes definir una condición de salida explícita. Esta condición suele ser un número máximo de iteraciones, un límite de tiempo o la consecución de un objetivo específico, como llegar a un consenso.

Usa el patrón de enjambre para problemas ambiguos o muy complejos que se beneficien del debate y del refinamiento iterativo. Por ejemplo, el diseño de un nuevo producto podría implicar la participación de un agente de investigación de mercado, un agente de ingeniería y un agente de modelización financiera. Los agentes compartirían ideas iniciales, debatirían las ventajas y desventajas de las funciones y los costes, y llegarían a un acuerdo colectivo sobre una especificación de diseño final que equilibrara todos los requisitos.

El patrón de enjambre simula un equipo de expertos que colaboran entre sí, por lo que puede ofrecer soluciones creativas y de una calidad excepcional. Sin embargo, representa el patrón de varios agentes más complejo y costoso de implementar. La falta de un agente que use un modelo de IA para coordinar puede suponer el riesgo de que se produzcan bucles improductivos o de que no se llegue a una solución. Por lo tanto, debes diseñar una lógica sofisticada para gestionar la compleja comunicación entre agentes, controlar el flujo de trabajo iterativo y gestionar los costes operativos y la latencia significativos que conlleva ejecutar una conversación dinámica de varias interacciones entre varios agentes.

Patrón de razonamiento y acción (ReAct)

El patrón ReAct es un enfoque que usa el modelo de IA para enmarcar sus procesos de pensamiento y acciones como una secuencia de interacciones en lenguaje natural. En este patrón, el agente opera en un bucle iterativo de pensamiento, acción y observación hasta que se cumple una condición de salida.

  • Reflexión: El modelo reflexiona sobre la tarea y decide qué hacer a continuación. El modelo evalúa toda la información que ha recogido para determinar si se ha respondido por completo a la solicitud del usuario.
  • Acción: en función de su proceso de reflexión, el modelo lleva a cabo una de estas dos acciones:
    • Si la tarea no se completa, selecciona una herramienta y, a continuación, formula una consulta para obtener más información.
    • Si la tarea se completa, formula la respuesta final para enviársela al usuario, lo que pone fin al bucle.
  • Observación: el modelo recibe la salida de la herramienta y guarda la información pertinente en su memoria. Como el modelo guarda los resultados relevantes, puede basarse en observaciones anteriores, lo que ayuda a evitar que se repita o que pierda el contexto.

El bucle iterativo finaliza cuando el agente encuentra una respuesta concluyente, alcanza un número máximo de iteraciones predefinido o se produce un error que le impide continuar. Este bucle iterativo permite que el agente cree un plan de forma dinámica, recoja pruebas y ajuste su enfoque mientras trabaja para dar una respuesta final.

En el siguiente diagrama se muestra una vista general del patrón ReAct:

Arquitectura del patrón de diseño ReAct.

Usa el patrón ReAct para tareas complejas y dinámicas que requieran una planificación y una adaptación continuas. Por ejemplo, supongamos que tienes un agente robótico que debe generar una ruta para pasar de un estado inicial a un estado objetivo:

  • Reflexión: El modelo razona sobre la ruta óptima para pasar de su estado actual al estado objetivo. Durante el proceso de reflexión, el modelo se optimiza en función de métricas como el tiempo o la energía.
  • Acción: el modelo ejecuta el siguiente paso de su plan moviéndose por un segmento de ruta calculado.
  • Observación: el modelo observa y guarda el nuevo estado del entorno. El modelo guarda su nueva posición y los cambios que percibe en el entorno.

Este bucle permite que el agente se adapte a las restricciones dinámicas, como evitar nuevos obstáculos o seguir las normas de tráfico, actualizando constantemente su plan en función de las nuevas observaciones. El agente continúa con su bucle iterativo hasta que alcanza su objetivo o se produce un error.

Un solo agente ReAct puede ser más sencillo y rentable de implementar y mantener que un sistema multiagente complejo. La función de reflexión del modelo proporciona una transcripción del razonamiento del modelo, lo que ayuda a depurar. Sin embargo, esta flexibilidad conlleva ciertos inconvenientes. La naturaleza iterativa y de varios pasos del bucle puede provocar una latencia de extremo a extremo mayor que la de una sola consulta. Además, la eficacia del agente depende en gran medida de la calidad del razonamiento del modelo de IA. Por lo tanto, un error o un resultado engañoso de una herramienta en un paso de observación puede propagarse y provocar que la respuesta final sea incorrecta.

Patrón con intervención humana

El patrón de intervención humana integra puntos para la intervención humana directamente en el flujo de trabajo de un agente. En un punto de control predefinido, el agente pausa su ejecución y llama a un sistema externo para esperar a que una persona revise su trabajo. Este patrón permite que una persona apruebe una decisión, corrija un error o proporcione la información necesaria antes de que el agente pueda continuar.

En el siguiente diagrama se muestra una vista general de un patrón de intervención humana:

Arquitectura del patrón de diseño multiagente con intervención humana.

Usa el patrón de intervención humana para tareas que requieran supervisión humana, juicios subjetivos o aprobación final para acciones críticas. Entre estas acciones se incluyen aprobar una transacción financiera de gran importe, validar el resumen de un documento sensible o proporcionar comentarios subjetivos sobre el contenido creativo generado. Por ejemplo, se le puede asignar a un agente la tarea de anonimizar un conjunto de datos de pacientes para una investigación. El agente identificaría y ocultaría automáticamente toda la información sanitaria protegida, pero se detendría en un punto de control final. Después, se esperaría a que un responsable de cumplimiento de las normas validara manualmente el conjunto de datos y aprobara su publicación, lo que ayuda a asegurar que no se expongan datos sensibles.

El patrón de intervención humana mejora la seguridad y la fiabilidad al insertar el criterio humano en los puntos de decisión críticos del flujo de trabajo. Este patrón puede añadir una complejidad arquitectónica significativa, ya que requiere que crees y mantengas el sistema externo para la interacción de los usuarios.

Patrón de lógica personalizada

El patrón de lógica personalizada ofrece la máxima flexibilidad en el diseño de tu flujo de trabajo. Este enfoque te permite implementar una lógica de orquestación específica que usa código, como instrucciones condicionales, para crear flujos de trabajo complejos con varias rutas de ramificación.

En el siguiente diagrama se muestra un ejemplo de uso de un patrón de lógica personalizado para registrar un proceso de reembolso:

Arquitectura del patrón de diseño personalizado multiagente.

En el diagrama anterior, se muestra el flujo de trabajo del agente de reembolso de cliente de ejemplo:

  1. El usuario envía una consulta al agente de reembolsos para clientes, que actúa como agente coordinador.
  2. La lógica personalizada del coordinador invoca primero a un agente verificador paralelo, que envía simultáneamente a dos subagentes: el agente verificador del comprador y el agente de idoneidad para recibir reembolsos.
  3. Una vez que se han recogido los resultados, el agente coordinador ejecuta una herramienta para comprobar si la solicitud cumple los requisitos para recibir un reembolso.
    1. Si el usuario cumple los requisitos, el coordinador asigna la tarea a un agente de procesamiento de reembolsos, que llama a la herramienta process_refund.
    2. Si el usuario no cumple los requisitos, el coordinador dirige la tarea a un flujo secuencial independiente, que empieza con el agente de saldo de la tienda y el agente de decisión de crédito del proceso.
  4. El resultado de la ruta que se siga se envía al agente de respuesta final para que formule la respuesta al usuario.

El ejemplo de agente de reembolsos a clientes requiere una solución única para su orquestación a nivel de lógica, que va más allá de los enfoques estructurados que ofrecen otros patrones. Este flujo de trabajo combina patrones porque ejecuta una comprobación en paralelo y, a continuación, ejecuta una rama condicional personalizada que se dirige a dos procesos posteriores completamente diferentes. Este tipo de flujo de trabajo complejo y con patrones mixtos es el caso práctico ideal para el patrón de lógica personalizada.

Usa el patrón de lógica personalizada cuando necesites un control preciso sobre la ejecución del agente o cuando tu flujo de trabajo no se ajuste a ninguno de los otros patrones que se describen en este documento. Sin embargo, este enfoque aumenta la complejidad del desarrollo y del mantenimiento. Eres responsable de diseñar, implementar y depurar todo el flujo de orquestación, lo que requiere más esfuerzo de desarrollo y puede ser más propenso a errores que usar un patrón predefinido compatible con una herramienta de desarrollo de agentes como Agent Development Kit (ADK).

Para obtener información sobre los agentes personalizados y cómo implementar lógica personalizada con el ADK, consulta Agentes personalizados.

Comparar patrones de diseño

Elegir un patrón de agente es una decisión arquitectónica fundamental. Cada patrón ofrece diferentes ventajas y desventajas en cuanto a flexibilidad, complejidad y rendimiento. Para determinar el patrón adecuado para tu carga de trabajo, consulta los patrones de diseño de las siguientes secciones.

Flujos de trabajo deterministas

Los flujos de trabajo deterministas incluyen tareas predecibles y secuenciales, y tienen una ruta de flujo de trabajo claramente definida de principio a fin. Los pasos de tus tareas se conocen de antemano y el proceso no cambia mucho de una ejecución a otra. A continuación, se indican los patrones de diseño de agentes para flujos de trabajo deterministas:

Características de la carga de trabajo Patrón de diseño de agente
  • Tareas de varios pasos que siguen un flujo de trabajo rígido y predefinido.
  • No requiere la orquestación de modelos.
  • Secuencia de operaciones fija. El resultado de un agente es la entrada directa del siguiente agente de la secuencia.
Patrón secuencial multagente
  • Tareas independientes que se pueden ejecutar al mismo tiempo.
  • No requiere la orquestación de modelos.
  • Reduce la latencia general ejecutando subtareas simultáneamente.
Patrón paralelo de varios agentes
  • Tareas de generación complejas o abiertas que son difíciles de completar en un solo intento.
  • Requiere que el agente mejore progresivamente el resultado en varios ciclos.
  • No requiere la orquestación de modelos.
  • Prioriza la calidad del resultado por encima de la latencia.
Patrón de refinamiento iterativo multagente

Flujos de trabajo que requieren una orquestación dinámica

Los flujos de trabajo que requieren una orquestación dinámica incluyen problemas complejos en los que los agentes deben determinar la mejor forma de proceder. El sistema de IA de agente debe planificar, delegar y coordinar tareas de forma dinámica sin un guion predefinido. Estos son los patrones de diseño de agentes para flujos de trabajo que requieren una orquestación autónoma y dinámica:

Características de la carga de trabajo Patrón de diseño de agente
  • Tareas estructuradas y de varios pasos que requieren el uso de herramientas externas.
  • Requiere un desarrollo rápido para crear un prototipo de una solución como prueba de concepto.
Patrón de un solo agente
  • Requiere un enrutamiento dinámico a un subagente especializado adecuado para tareas estructuradas con entradas variadas.
  • Latencia alta debido a las múltiples llamadas al modelo de IA coordinador para que pueda dirigir las tareas al subagente adecuado.
  • Puede suponer un coste elevado debido a las múltiples llamadas al agente coordinador.
Patrón de coordinador de varios agentes
  • Requiere una orquestación de modelos multinivel para tareas complejas, ambiguas y sin un objetivo claro.
  • Requiere resultados completos y de alta calidad en los que la principal dificultad sea desglosar la ambigüedad.
  • Latencia alta debido a una descomposición anidada de varios niveles que conlleva varias llamadas al modelo de IA para razonar.
Patrón de descomposición jerárquica de tareas multagente
  • Requiere un debate colaborativo y un perfeccionamiento iterativo por parte de varios agentes especializados para tareas muy complejas, abiertas o ambiguas.
  • Prioriza la síntesis de múltiples perspectivas para crear una solución completa o creativa.
  • Latencia alta y costes operativos elevados debido a la comunicación dinámica entre todos los agentes.
Patrón de enjambre de varios agentes

Flujos de trabajo que implican iteraciones

Los flujos de trabajo que implican iteración incluyen tareas en las que el resultado final se consigue mediante ciclos de perfeccionamiento, comentarios y mejoras. A continuación, se muestran patrones de diseño de agentes para flujos de trabajo que implican iteraciones:

Características de la carga de trabajo Patrón de diseño de agente
  • Requiere que un agente razone, actúe y observe de forma iterativa para crear o adaptar un plan para tareas complejas, abiertas y dinámicas.
  • Prioriza un resultado más preciso y exhaustivo por encima de la latencia.
Patrón ReAct
  • Requiere tareas de monitorización o sondeo que repitan una acción predefinida, como comprobaciones automatizadas, hasta que el agente cumpla una condición de salida.
  • Latencia impredecible o prolongada mientras se espera a que se cumpla una condición de salida.
Patrón de bucle de varios agentes
  • Las tareas requieren un paso de validación distinto antes de completarse.
Patrón de revisión y crítica de varios agentes
  • Tareas de generación complejas o abiertas que son difíciles de completar en un solo intento.
  • Requiere que el agente mejore progresivamente el resultado en varios ciclos.
  • No requiere la orquestación de modelos.
  • Prioriza la calidad del resultado por encima de la latencia.
Patrón de refinamiento iterativo multagente

Flujos de trabajo que tienen requisitos especiales

Los flujos de trabajo que tienen requisitos especiales incluyen tareas que no siguen los patrones de agente habituales. Tus tareas pueden incluir una lógica de negocio única o requerir la intervención y el criterio de una persona en momentos críticos. Tu sistema de IA de agentes es una máquina diseñada específicamente para un único propósito. A continuación, se muestran patrones de diseño de agentes para flujos de trabajo que tienen requisitos especiales:

Características de la carga de trabajo Patrón de diseño de agente
  • Requiere supervisión humana debido a tareas subjetivas o de alto riesgo que pueden incluir requisitos de seguridad, fiabilidad y cumplimiento.
Patrón de intervención humana
  • Lógica compleja y ramificada que va más allá de una secuencia lineal directa.
  • Requiere el máximo control para combinar reglas predefinidas con el razonamiento del modelo.
  • Requiere un control detallado de los procesos de un flujo de trabajo que no se ajusta a una plantilla estándar.
Patrón de lógica personalizada

Siguientes pasos

Colaboradores

Autor: Samantha He | Redactora técnica

Otros colaboradores: