Eseguire la transizione di conversazioni da un bot a un essere umano

SI APPLICA A: SDK v4

Indipendentemente dalla quantità di intelligenza artificiale che un bot possiede, potrebbe comunque dover passare la conversazione a un essere umano. Tale consegna potrebbe essere necessaria se il bot non riconosce l'utente (a causa di una limitazione dell'intelligenza artificiale) o se la richiesta non può essere automatizzata e richiede un'azione umana. In questi casi, il bot deve riconoscere quando deve consegnare la conversazione e fornire all'utente una transizione senza problemi.

Microsoft Bot Framework è una piattaforma aperta che consente agli sviluppatori di integrarsi con varie piattaforme di engagement degli agenti.

Modelli di integrazione del trasferimento

Microsoft Bot Framework supporta due modelli per l'integrazione con le piattaforme di engagement degli agenti. Il protocollo di trasferimento è identico per entrambi i modelli, ma i dettagli del caricamento sono diversi in base ai modelli e alle piattaforme di engagement degli agenti.

L'obiettivo non è offrire una soluzione universale per l'integrazione con qualsiasi sistema del cliente, ma piuttosto fornire un linguaggio comune e procedure consigliate per gli sviluppatori di bot e gli integratori di sistemi con cui creare sistemi di intelligenza artificiale conversazionale con un essere umano nel ciclo.

Bot come agente

Nel primo modello, noto come bot come agente, il bot unisce i ranghi degli agenti live connessi all'hub agente e risponde alle richieste degli utenti come se le richieste provenissero da qualsiasi altro canale di Bot Framework. La conversazione tra l'utente e il bot può essere inoltrata a un agente umano e a quel punto il bot si disconnette dalla conversazione attiva.

Il vantaggio principale di questo modello è la sua semplicità: è possibile aggiungere un bot esistente all'hub agente con un impegno minimo e l'hub agente gestirà la complessità del routing dei messaggi.

Diagram of an agent hub that can direct messages to a bot or human agents.

Bot come proxy

Il secondo modello è noto come bot come proxy. L'utente comunica direttamente con il bot, fino a quando il bot non decide che è necessario ricevere assistenza da un agente umano. Il componente router dei messaggi nel bot reindirizza la conversazione all'hub degli agenti, che la trasferisce all'agente appropriato. Il bot rimane nel ciclo e può raccogliere la trascrizione della conversazione, filtrare i messaggi o offrire contenuti aggiuntivi sia all'agente che all'utente.

I principali vantaggi offerti da questo modello sono flessibilità e controllo. Il bot può supportare più canali e avere il controllo sul modo in cui le conversazioni vengono inoltrate e instradate tra l'utente, il bot e l'hub agente.

Diagram of a bot that can route messages to an agent hub.

Protocollo di trasferimento

Il protocollo è incentrato sugli eventi per l'avvio, inviati dal bot al canale e aggiornamento dello stato, inviati dal canale al bot.

Iniziazione handoff

Un evento di avvio dell'handoff viene creato dal bot per avviare l'handoff.

L'evento può includere:

  • Contesto della richiesta di handoff, per instradare la conversazione a un agente appropriato.
  • Trascrizione della conversazione, in modo che un agente possa leggere la conversazione che ha avuto luogo tra il cliente e il bot prima dell'avvio dell'handoff.

Di seguito sono riportate le proprietà comuni dell'evento di avvio dell'handoff:

  • Nome: obbligatorio, la proprietà name deve essere impostata su "handoff.initiate".

  • Conversazione: obbligatoria, la proprietà di conversazione descrive la conversazione in cui è presente l'attività. La conversazione deve includere la conversazione Id.

  • Valore: facoltativa, la proprietà value può contenere contenuto JSON specifico dell'hub dell'agente che l'hub può usare per instradare la conversazione a un agente pertinente.

  • Allegati: facoltativo, la proprietà attachments può includere una trascrizione come allegato. Bot Framework definisce un tipo di allegato di trascrizione . Un allegato può essere inviato inline (soggetto a un limite di dimensioni) o offline specificando ContentUrl.

    handoffEvent.Attachments = new List<Attachment> {
        new Attachment {
            Content = transcript,
            ContentType = "application/json",
            Name = "Transcript",
        }
    };
    

    Nota

    Gli hub agente devono ignorare i tipi di allegati che non capiscono.

Quando un bot rileva la necessità di passare la conversazione a un agente, segnala la finalità inviando un evento di avvio handoff. L'SDK per C# include un metodo per creare un CreateHandoffInitiation evento di avvio dell'handoff valido.

var activities = GetRecentActivities();
var handoffContext = new { Skill = "credit cards" };
var handoffEvent =
    EventFactory.CreateHandoffInitiation(
        turnContext, handoffContext, new Transcript(activities));
await turnContext.SendActivityAsync(handoffEvent);

Stato dell'handoff

Un evento di stato di handoff viene inviato al bot dall'hub dell'agente. L'evento informa il bot sullo stato dell'operazione di handoff avviata.

Nota

I bot non devono gestire un evento di stato di handoff, ma non devono rifiutarlo.

Di seguito sono riportati i campi comuni degli eventi di stato dell'handoff:

  • Nome: obbligatorio, la proprietà name deve essere impostata su "handoff.status".

  • Conversazione: obbligatoria, la proprietà di conversazione descrive la conversazione in cui è presente l'attività. La conversazione deve includere la conversazione Id.

  • Valore: obbligatorio, proprietà value che descrive lo stato corrente dell'operazione di handoff. Il valore ha le proprietà seguenti.

    • Stato: obbligatorio, la proprietà di stato può avere uno dei valori seguenti:

      Valore Significato
      "accettato" Un agente ha accettato la richiesta e ha preso il controllo della conversazione.
      "failed" Richiesta di handoff non riuscita. La proprietà del messaggio potrebbe contenere informazioni aggiuntive rilevanti per l'errore.
      "completato" Richiesta di handoff completata.
    • Messaggio: facoltativo, la proprietà del messaggio è un oggetto definito dall'hub dell'agente.

    Ecco alcuni oggetti valore di esempio:

    { "state" : "completed" }
    
    { "state" : "failed", "message" : "Can't find agent with requested skill" }
    

Libreria handoff

La libreria Handoff è stata creata per integrare Bot Framework v4 SDK nel supporto dell'handoff, in particolare:

  • Implementa le aggiunte a Bot Framework SDK per supportare l'handoff a un agente (noto anche come escalation).
  • Contiene definizioni di tre tipi di evento per le operazioni di handoff di segnalazione.

Nota

Le integrazioni con hub agente specifici non fanno parte della libreria.

Risorse aggiuntive