Usare l'orchestrazione di chat di gruppo

Completato

L'orchestrazione di chat di gruppo modella una conversazione collaborativa tra più agenti di intelligenza artificiale e, facoltativamente, un partecipante umano. Un gestore di chat centrale controlla il flusso, decidendo quale agente risponde successivamente e quando richiedere l'input umano. Questo modello è utile per simulare riunioni, dibattiti o risoluzione collaborativa dei problemi.

Diagramma che mostra l'orchestrazione di chat di gruppo in cui più agenti partecipano a una conversazione gestita. Un gestore di chat centrale coordina il flusso di discussione.

Il modello di chat di gruppo funziona bene per gli scenari in cui la discussione di gruppo o la collaborazione iterativa è fondamentale per prendere decisioni. Supporta diversi stili di interazione, dall'ideazione a flusso libero ai flussi di lavoro formali con ruoli definiti e passaggi di approvazione. L'orchestrazione di chat di gruppo è ideale anche per le configurazioni umane nel ciclo in cui un essere umano può guidare o intervenire nella conversazione. In genere, gli agenti in questo modello non modificano direttamente i sistemi in esecuzione, ma contribuiscono principalmente alla conversazione.

Quando usare l'orchestrazione di chat di gruppo

È consigliabile usare l'orchestrazione di chat di gruppo quando lo scenario prevede:

  • Collaborazione spontanea o guidata tra agenti (ed eventualmente umani)
  • Cicli iterativi del controllo degli autori in cui gli agenti si trasformano nella creazione e nella revisione degli agenti
  • Supervisione o partecipazione umana in tempo reale
  • Conversazioni trasparenti e controllabili poiché tutto l'output viene raccolto in un singolo thread

Gli scenari comuni includono:

  • Brainstorming creativo in cui gli agenti si basano sulle idee dell'altro
  • Processo decisionale che trae vantaggio dal dibattito e dal consenso
  • Problemi complessi che richiedono un dialogo multidisciplinare
  • Controllo della qualità e convalida che richiedono più prospettive di esperti
  • Flussi di lavoro del contenuto con netta separazione tra la creazione e la revisione

Quando evitare l'orchestrazione di chat di gruppo

Evitare questo modello quando:

  • La delega di attività semplice o le pipeline lineari semplici sono sufficienti
  • I requisiti di velocità in tempo reale rendono poco pratico il sovraccarico di discussione
  • I flussi di lavoro gerarchici o deterministici sono necessari senza discussione
  • Il gestore di chat non è in grado di determinare chiaramente quando l'attività è stata completata
  • La gestione del flusso di conversazione diventa troppo complessa, soprattutto con molti agenti (limite a tre o meno per un controllo più semplice)

Cicli maker-checker

Un caso speciale comune è il ciclo maker-checker. Qui, un agente (l'autore) propone contenuti o soluzioni, e un altro agente (il controllo) li critica e li critica. Il controllo può inviare commenti e suggerimenti all'autore e questo ciclo si ripete fino a quando il risultato non è soddisfacente. Questo processo richiede una sequenza basata su turni gestita dal gestore di chat.

Implementare l'orchestrazione di chat di gruppo

Implementare il modello di orchestrazione di chat di gruppo con Microsoft Agent Framework SDK:

  1. 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.

  2. Definire gli agenti
    Creare istanze di agenti utilizzando il metodo create_agent del client di chat. Ogni agente deve avere istruzioni specifiche e un nome che ne definisce il ruolo e l'area di competenza.

  3. Creare il flusso di lavoro della chat di gruppo
    Usare la GroupChatBuilder classe per creare un flusso di lavoro in grado di eseguire più agenti in parallelo. Aggiungi le istanze dell'agente come partecipanti usando il metodo participants(), quindi chiama build() per creare il flusso di lavoro.

  4. Eseguire il flusso di lavoro
    Chiamare il metodo del flusso di lavoro run con l'attività o l'input su cui si desidera che gli agenti lavorino. Il flusso di lavoro esegue tutti gli agenti simultaneamente e restituisce eventi contenenti i risultati.

  5. Elaborare i risultati
    Estrarre gli output dagli eventi del flusso di lavoro usando get_outputs(). I risultati contengono le conversazioni combinate di tutti gli agenti, con la risposta di ogni agente inclusa nell'output finale.

  6. Gestire le risposte aggregate
    Elaborare i messaggi aggregati da tutti gli agenti. Ogni messaggio include il nome e il contenuto dell'autore, consentendo di identificare l'agente che ha fornito ogni risposta.

Personalizzazione del gestore di chat di gruppo

È possibile creare un gestore di chat di gruppo personalizzato estendendo la classe base GroupChatManager . Questo approccio consente di controllare:

  • Come vengono filtrati o riepilogati i risultati della conversazione
  • Modalità di selezione dell'agente successivo
  • Quando richiedere l'input dell'utente
  • Quando terminare la conversazione

I responsabili personalizzati consentono di implementare logica specializzata personalizzata per il caso d'uso.

Ordine di chiamata di Gestione chat di gruppo

Durante ogni round della conversazione, il gestore di chat chiama i metodi in questo ordine:

  1. should_request_user_input - Controlla se l'input umano è necessario prima che l'agente successivo risponda.
  2. should_terminate - Determina se la conversazione deve terminare (ad esempio, è stato raggiunto il numero massimo di round).
  3. filter_results - Se termina, riepiloga o elabora la conversazione finale.
  4. select_next_agent - Se continua, sceglie l'agente successivo da pronunciare.

Ciò garantisce che le condizioni di input e terminazione dell'utente vengano gestite prima di spostare la conversazione in avanti. Eseguire l'override di questi metodi nel gestore personalizzato per modificare il comportamento.

L'orchestrazione di chat di gruppo consente a più agenti di intelligenza artificiale, e facoltativamente agli esseri umani, di collaborare tramite conversazione guidata e feedback iterativo. È ideale per attività complesse che traggono vantaggio da diverse competenze e interazione dinamica. Anche se richiede un'attenta gestione, questo modello offre trasparenza e flessibilità nei flussi di lavoro decisionali e creativi. Microsoft Agent Framework SDK semplifica l'implementazione e la personalizzazione dell'orchestrazione di chat di gruppo per le proprie esigenze.