Uso de la orquestación secuencial

Completado

En la orquestación secuencial, los agentes se organizan en una canalización donde cada agente procesa la tarea una después de otra. La salida de un agente se convierte en la entrada de la siguiente. Este patrón es ideal para flujos de trabajo en los que cada paso depende del anterior, como la revisión de documentos, las canalizaciones de transformación de datos o el razonamiento de varias fases.

Diagrama que muestra la orquestación secuencial en la que los agentes procesan las tareas en un orden de canalización definido. La salida fluye de un agente al siguiente.

La orquestación secuencial funciona mejor para las tareas que deben realizarse paso a paso, con cada paso mejorando el último. El orden en el que se ejecutan los agentes es fijo y decidido de antemano, y los agentes no deciden lo que sucede a continuación.

Cuándo usar la orquestación secuencial

Considere la posibilidad de usar el patrón de orquestación secuencial cuando el flujo de trabajo tenga:

  • Procesos formados por varios pasos que deben realizarse en un orden específico, donde cada paso se basa en el que se basa en el anterior.
  • Flujos de datos en los que cada etapa aporta algo importante que la siguiente etapa necesita para funcionar correctamente.
  • Tareas en las que las fases no se pueden realizar al mismo tiempo y deben ejecutarse una después de otra.
  • Situaciones que requieren mejoras graduales, como la redacción, la revisión y el pulido del contenido.
  • Sistemas en los que conoce el rendimiento de cada agente y puede controlar retrasos o errores en cualquier paso sin detener todo el proceso.

Cuándo evitar la orquestación secuencial

Evite este patrón cuando:

  • Las fases se pueden ejecutar de forma independiente y en paralelo sin afectar a la calidad.
  • Un solo agente puede realizar la tarea completa de forma eficaz.
  • Las primeras fases pueden producir errores o generar resultados deficientes y no hay ninguna manera de detener o corregir el procesamiento de bajada en función de los errores.
  • Los agentes deben colaborar dinámicamente en lugar de entregar el trabajo secuencialmente.
  • El flujo de trabajo requiere iteración, retroceso o enrutamiento dinámico en función de los resultados intermedios.

Implementación de orquestación secuencial

Implemente el patrón de orquestación secuencial con el SDK de Microsoft Agent Framework:

  1. Creación del cliente de chat
    Configure un cliente de chat (por ejemplo, AzureOpenAIChatClient) con las credenciales adecuadas para conectarse al proveedor de servicios de IA.

  2. Definición de los agentes
    Cree instancias de agente mediante el método create_agent del cliente de chat. Cada agente debe tener instrucciones específicas y un nombre que defina su rol y área de experiencia en el flujo de trabajo.

  3. Compilación del flujo de trabajo secuencial
    Use la SequentialBuilder clase para crear un flujo de trabajo que ejecute agentes entre sí. Agregue las instancias del agente como participantes mediante el método participants(), y llame a build() para crear el flujo de trabajo.

  4. Ejecución del flujo de trabajo
    Llame al método run_stream del flujo de trabajo con la tarea o la entrada en la que desea que los agentes trabajen. El flujo de trabajo procesa la tarea a través de todos los agentes secuencialmente, con la salida de cada agente convirtiéndose en entrada para el siguiente.

  5. Procesamiento de los eventos de flujo de trabajo
    Recorrer en iteración los eventos de flujo de trabajo mediante un bucle asincrónico. Busque las instancias WorkflowOutputEvent, las cuales contienen los resultados del procesamiento secuencial.

  6. Extracción de la conversación final
    Recopile la conversación final de las salidas del flujo de trabajo. El resultado contiene el historial de conversación completo que muestra cómo cada agente de la secuencia contribuyó al resultado final.

La orquestación secuencial es ideal cuando la tarea requiere pasos claros y ordenados en los que cada agente se basa en la salida anterior. Este patrón ayuda a mejorar la calidad de salida a través del refinamiento paso a paso y garantiza flujos de trabajo predecibles. Cuando se aplica cuidadosamente con el SDK de Microsoft Agent Framework, permite canalizaciones multiagente eficaces para tareas complejas, como la creación de contenido, el procesamiento de datos, etc.