Orquestación de Agentes con Azure AI Studio
La orquestación de agentes permite combinar las capacidades de múltiples modelos y herramientas para abordar tareas complejas. Azure AI Studio ofrece un entorno para diseñar, probar y desplegar flujos de trabajo que coordinan la interacción entre estos componentes. Esta lección detalla cómo utilizar sus funcionalidades para construir soluciones de IA más robustas y autónomas.

Concepto de Orquestación de Agentes
La orquestación de agentes se refiere a la gestión de la secuencia de ejecución y la interacción entre múltiples agentes de IA y herramientas para alcanzar un objetivo. En lugar de un solo agente intentando resolver un problema multifacético, la orquestación permite delegar subproblemas a agentes especializados o a herramientas externas. Esto es fundamental para escenarios donde una única invocación a un modelo de lenguaje grande (LLM) no es suficiente, ya sea por limitaciones de contexto, necesidad de acceso a datos externos o la ejecución de lógica de negocio específica.
Las ventajas operativas de la orquestación incluyen:
- Modularidad: Cada agente o herramienta se enfoca en una tarea específica, facilitando el desarrollo y mantenimiento.
- Escalabilidad: Se pueden añadir o modificar componentes sin afectar la totalidad del sistema.
- Complejidad: Permite abordar problemas que requieren múltiples pasos lógicos, acceso a diversas fuentes de información y ejecución de acciones.
- Reusabilidad: Los agentes y herramientas desarrollados pueden ser reutilizados en diferentes flujos de trabajo.
Flujos de Trabajo en Azure AI Studio
Azure AI Studio proporciona un entorno gráfico y programático para construir y gestionar flujos de trabajo de IA. Estos flujos definen la secuencia de operaciones, la lógica condicional y la interacción entre los distintos nodos, que pueden ser invocaciones a LLMs, agentes personalizados, herramientas o código Python. La interfaz visual permite diseñar el flujo arrastrando y soltando componentes, mientras que la vista de código (YAML o Python) ofrece control granular sobre la configuración.
Los componentes clave de un flujo de trabajo en Azure AI Studio son:
- Nodos LLM: Invocaciones a modelos de lenguaje, configurables con prompts, temperatura y parámetros específicos del modelo.
- Nodos de Herramienta: Ejecución de funciones o APIs externas, encapsuladas como herramientas.
- Nodos de Agente: Invocaciones a agentes previamente definidos, que pueden tener sus propias herramientas y lógica.
- Nodos de Código Python: Permiten ejecutar lógica personalizada, preprocesamiento de datos, postprocesamiento o integración con sistemas no directamente soportados por nodos predefinidos.
- Nodos de Entrada/Salida: Definen los parámetros de entrada del flujo y el resultado final.
Antes de diseñar un flujo complejo, mapee las dependencias y la secuencia lógica en papel o con un diagrama de flujo. Un diseño claro evita iteraciones innecesarias y asegura que cada componente tenga un propósito operativo definido.
Diseño y Configuración de Flujos
Para crear un flujo de trabajo en Azure AI Studio:
- Iniciar un nuevo flujo: En su proyecto de Azure AI Studio, navegue a la sección 'Prompt flow' y seleccione 'Create'. Puede empezar desde una plantilla o un flujo en blanco.
- Agregar nodos: Arrastre y suelte los tipos de nodos necesarios (LLM, Python, Tool) al lienzo. Conecte los nodos para definir la secuencia de ejecución. Las salidas de un nodo pueden ser las entradas de otro.
- Configurar nodos LLM: Defina el modelo a usar (ej.,
gpt-4), el sistema de prompt y los parámetros de inferencia. Asegúrese de que el prompt instruya al LLM sobre su rol dentro del flujo. - Configurar nodos Python: Escriba o pegue el código Python necesario. Defina las entradas y salidas de la función Python para que sean accesibles desde otros nodos. Utilice las dependencias correctas en el archivo
requirements.txt. - Configurar nodos de Herramienta: Seleccione la herramienta previamente registrada y mapee las entradas de la herramienta a las salidas de los nodos precedentes.
- Definir entradas y salidas del flujo: Especifique qué variables el flujo espera al inicio y qué resultado final producirá.
Un ejemplo de configuración de un nodo Python para preprocesar texto podría ser:
from promptflow import tool
@tool
def preprocess_text(input_text: str) -> str:
"""Limpia y normaliza el texto de entrada."""
# Lógica de limpieza: convertir a minúsculas, eliminar caracteres especiales, etc.
cleaned_text = input_text.lower().strip()
# Más lógica de preprocesamiento...
return cleaned_textPruebas y Versiones de Flujos
Una vez diseñado el flujo, es crucial realizar pruebas exhaustivas. Azure AI Studio permite ejecutar el flujo con datos de entrada de prueba y visualizar la ejecución paso a paso, inspeccionando las entradas y salidas de cada nodo. Esto es vital para depurar errores lógicos o de configuración.
Para las pruebas:
- Ejecución interactiva: Utilice la funcionalidad 'Run' en el editor de flujo para probar con entradas manuales.
- Ejecuciones por lotes (Batch Runs): Para pruebas más robustas, cree un conjunto de datos de prueba y ejecute el flujo en modo por lotes. Esto permite evaluar el rendimiento y la consistencia del flujo frente a múltiples escenarios.
- Evaluación: Conecte un flujo de evaluación (previamente configurado o personalizado) al flujo principal para medir métricas clave como la relevancia, la coherencia o la seguridad de las respuestas generadas.
Azure AI Studio también soporta el versionado de flujos, lo que es esencial para la gestión del ciclo de vida del desarrollo. Cada cambio significativo debe ser versionado para permitir reversiones y mantener un historial de desarrollo. Esto se alinea con las prácticas de DevOps y Git.
Aplicación Práctica: Orquestación para Soporte Técnico
El lunes, identifique un proceso interno en INT que actualmente requiera intervención manual o múltiples pasos para resolver una consulta. Un ejemplo podría ser un sistema de soporte técnico que necesita consultar una base de conocimientos, verificar el estado de una cuenta en un CRM y, si es necesario, generar un ticket.
- Defina el problema: "Responder consultas de clientes sobre el estado de sus servicios y, si es necesario, escalar a un agente humano."
- Desglose en pasos: a. Recibir la consulta del cliente. b. Identificar la intención y entidades clave (ej., número de cuenta). c. Consultar el estado del servicio en un sistema externo (simulado por una herramienta). d. Generar una respuesta inicial al cliente. e. Si la consulta no se resuelve, generar un ticket en un sistema de gestión (simulado por otra herramienta).
- Diseñe el flujo en Azure AI Studio: a. Un nodo LLM inicial para clasificar la intención y extraer entidades. b. Un nodo de Herramienta para "consultar_estado_servicio" (simule esta herramienta con un nodo Python que devuelve un estado ficticio). c. Un nodo LLM para generar la respuesta al cliente basándose en el estado del servicio. d. Un nodo de Código Python con lógica condicional: si la respuesta del LLM no es satisfactoria o el estado es crítico, invocar a la herramienta "generar_ticket" (otro nodo Python simulado). e. Un nodo de salida para la respuesta final al cliente.
- Pruebe el flujo: Ejecute el flujo con al menos tres escenarios: consulta resuelta, consulta que requiere escalada, y consulta ambigua. Observe la secuencia de ejecución y las salidas de cada nodo.
There are no comments for now.