Uso de la orquestación de entrega
La orquestación de entrega permite a los agentes de IA transferir el control entre sí en función del contexto de la tarea o las solicitudes de usuario. Cada agente puede "entregar" la conversación a otro agente con la experiencia adecuada, asegurándose de que el agente más adecuado controla cada parte de la tarea. Este patrón es ideal para el soporte al cliente, los sistemas expertos o cualquier situación en la que se necesite la delegación dinámica.
Este patrón se ajusta a los escenarios en los que el mejor agente no se conoce por adelantado o donde los requisitos de la tarea se vuelven más claros durante el procesamiento. A diferencia de los patrones paralelos, los agentes trabajan uno a la vez, transfiriendo completamente el control de uno al siguiente.
Cuándo usar la orquestación de entrega
Es posible que desee considerar el uso del patrón de orquestación de entrega en estos escenarios:
- Las tareas necesitan conocimientos o herramientas especializados, pero el número o orden de los agentes no se puede determinar de antemano.
- Los requisitos de experiencia surgen dinámicamente durante el procesamiento, lo que desencadena el enrutamiento de tareas en función del análisis de contenido.
- Los problemas de varios dominios requieren diferentes especialistas que trabajan secuencialmente.
- Puede definir señales claras o reglas que indican cuándo un agente debe transferir el control y a quién.
Cuándo evitar la orquestación de traspaso
Es posible que quiera evitar el uso del patrón de orquestación de entrega en estos escenarios:
- Los agentes implicados y su orden son conocidos de antemano y fijos.
- El enrutamiento de tareas es sencillo y basado en reglas, no necesita interpretación dinámica.
- Las decisiones de enrutamiento deficientes pueden frustrar a los usuarios.
- Varias operaciones deben ejecutarse al mismo tiempo.
- Evitar bucles de entrega infinitos o un aumento excesivo entre agentes es difícil.
Implementación de la orquestación de entrega
El patrón de orquestación de entrega se puede implementar en el SDK de Microsoft Agent Framework mediante flujos de trabajo de control. En un flujo de trabajo de control, cada agente procesa la tarea en secuencia y, en función de su salida, el flujo de trabajo decide a qué agente llamar a continuación. Este enrutamiento se realiza mediante una estructura switch-case que enruta la tarea a distintos agentes en función de los resultados de clasificación.
Configuración de modelos de datos y cliente de chat
- Creación de un cliente de chat para conectarse a los servicios de IA
- Definición de modelos Pydantic para las respuestas JSON estructuradas de los agentes de IA
- Creación de clases de datos simples para pasar información entre pasos de flujo de trabajo
- Configuración de agentes con instrucciones y
response_formatparámetros específicos para la salida JSON estructurada
Creación de funciones de ejecutor especializadas
- Ejecutor de almacenamiento de entrada : guarda los datos entrantes en estado compartido y reenvía al agente de clasificación.
- Ejecutor de transformación: convierte la respuesta JSON del agente en un objeto de enrutamiento con tipo
- Ejecutores del controlador: ejecutores independientes para cada resultado de clasificación con condiciones de protección para comprobar el procesamiento correcto de mensajes
Construir lógica de enrutamiento
- Creación de funciones de fábrica que generan comprobadores de condiciones para cada valor de clasificación
- Establecer condiciones para examinar los mensajes entrantes y retornar verdadero para resultados de clasificación específicos
- Uso de condiciones con objetos Case en grupos perimetrales switch-case
- Incluir siempre un caso predeterminado como reserva para escenarios inesperados
Ensamblar el flujo de trabajo
- Utiliza WorkflowBuilder para conectar ejecutores con aristas regulares
- Adición de un grupo perimetral switch-case para el enrutamiento en función de los resultados de clasificación
- Configuración del flujo de trabajo para seguir el primer caso coincidente o revertir al valor predeterminado
- Configuración del ejecutor de terminal para producir la salida final
La orquestación de transferencia proporciona una manera flexible de enrutar las tareas dinámicamente entre agentes especializados de inteligencia artificial, lo que garantiza que cada parte de un flujo de trabajo se gestione por el experto más adecuado. Funciona bien para tareas complejas y en evolución, como el soporte técnico al cliente o la resolución de problemas de varios dominios en los que la experiencia necesita cambiar durante la conversación. Cuando se usa el SDK de Microsoft Agent Framework, puede crear sistemas adaptables que transfieran sin problemas el control entre agentes (e incluyan la entrada humana cuando sea necesario) para completar tareas sin problemas y eficientes.