Usare l'orchestrazione sequenziale
Nell'orchestrazione sequenziale, gli agenti vengono disposti in una pipeline in cui ogni agente elabora l'attività una dopo l'altra. L'output di un agente diventa l'input per il successivo. Questo modello è ideale per i flussi di lavoro in cui ogni passaggio dipende da quello precedente, ad esempio la revisione dei documenti, le pipeline di trasformazione dei dati o il ragionamento a più fasi.
L'orchestrazione sequenziale funziona meglio per le attività che devono essere eseguite passo dopo passo, con ogni passaggio che migliora l'ultimo. L'ordine in cui gli agenti vengono eseguiti è fisso e deciso in anticipo. Gli agenti non decidono cosa succederà successivamente.
Quando usare l'orchestrazione sequenziale
Prendere in considerazione l'uso del modello di orchestrazione sequenziale quando il flusso di lavoro ha:
- Processi costituiti da più passaggi che devono essere eseguiti in un ordine specifico, in cui ogni passaggio si basa su quello prima.
- Flussi di lavoro di dati in cui ogni fase aggiunge qualcosa di importante che la fase successiva deve funzionare correttamente.
- Attività in cui le fasi non possono essere eseguite contemporaneamente e devono essere eseguite una dopo l'altra.
- Situazioni che richiedono miglioramenti graduali, ad esempio la stesura, la revisione e la lucidatura del contenuto.
- Sistemi in cui si conoscono le prestazioni di ogni agente e possono gestire ritardi o errori in qualsiasi passaggio senza arrestare l'intero processo.
Quando evitare l'orchestrazione sequenziale
Evitare questo modello quando:
- Le fasi possono essere eseguite in modo indipendente e in parallelo senza influire sulla qualità.
- Un singolo agente può eseguire l'intera attività in modo efficace.
- Le fasi iniziali possono non riuscire o produrre output scarso e non è possibile arrestare o correggere l'elaborazione downstream in base agli errori.
- Gli agenti devono collaborare in modo dinamico anziché consegnare il lavoro in sequenza.
- Il flusso di lavoro richiede iterazione, backtracking o routing dinamico in base ai risultati intermedi.
Implementare l'orchestrazione sequenziale
Implementare il modello di orchestrazione sequenziale con Microsoft Agent Framework SDK:
Creare il client di chat
Configurare un client di chat (ad esempio,AzureOpenAIChatClient) con le credenziali appropriate per connettersi al provider di servizi di intelligenza artificiale.Definire gli agenti
Creare istanze di agenti utilizzando il metodocreate_agentdel client di chat. Ogni agente deve avere istruzioni specifiche e un nome che ne definisce il ruolo e l'area di competenza nella pipeline.Compilare il flusso di lavoro sequenziale
Usare laSequentialBuilderclasse per creare un flusso di lavoro che esegue gli agenti uno dopo l'altro. Aggiungi le istanze dell'agente come partecipanti usando il metodoparticipants(), quindi chiamabuild()per creare il flusso di lavoro.Eseguire il flusso di lavoro
Chiamare il metodo del flusso di lavororun_streamcon l'attività o l'input su cui si desidera che gli agenti lavorino. Il flusso di lavoro elabora l'attività tramite tutti gli agenti in sequenza, con l'output di ogni agente che diventa input per il successivo.Elaborare gli eventi del flusso di lavoro
Scorrere gli eventi del flusso di lavoro usando un ciclo asincrono.WorkflowOutputEventCercare le istanze che contengono i risultati dell'elaborazione sequenziale.Estrarre la conversazione finale
Raccogliere la conversazione finale dagli output del flusso di lavoro. Il risultato contiene la cronologia di conversazione completa che mostra come ogni agente nella sequenza ha contribuito al risultato finale.
L'orchestrazione sequenziale è ideale quando l'attività richiede passaggi chiari e ordinati in cui ogni agente si basa sull'output precedente. Questo modello consente di migliorare la qualità dell'output tramite perfezionamento passo per passo e garantisce flussi di lavoro prevedibili. Se applicato con l'SDK di Microsoft Agent Framework, consente potenti pipeline multi-agente per attività complesse come la creazione di contenuti, l'elaborazione dei dati e altro ancora.