Freigeben über


Übergeben von Unterhaltungen von einem Bot an einen Menschen

GILT FÜR: SDK v4

Ganz gleich, wie groß das Ausmaß künstlicher Intelligenz bei einem Bot ist, kann es dennoch zu Situationen kommen, in denen die Unterhaltung an einen Menschen übergeben werden muss. So eine Übergabe kann entweder notwendig sein, weil der Bot den Benutzer nicht versteht (aufgrund einer KI-Einschränkung), oder wenn die Anforderung nicht automatisiert werden kann und einen menschlichen Eingriff erfordert. In solchen Fällen sollte der Bot erkennen, wann eine Übergabe der Konversation erforderlich ist, und dem Benutzer eine reibungslose Übergabe ermöglichen.

Microsoft Bot Framework ist eine offene Plattform, die Entwicklern die Integration mit einer Vielzahl von Plattformen zur Einbindung von Agenten ermöglicht.

Modelle für die Integration der Übergabe

Microsoft Bot Framework unterstützt zwei Modelle für die Integration in Plattformen zur Einbindung von Agenten. Das Übergabeprotokoll ist für beide Modelle identisch, jedoch unterscheiden sich die Onboardingdetails zwischen den Modellen und den Plattformen für die Einbindung von Agenten.

Ziel ist es nicht, eine universelle Lösung für die Integration in das System eines Kunden anzubieten, sondern eine allgemeine Sprache und bewährte Methoden für Botentwickler und Systemintegratoren bereitzustellen, mit denen unterhaltungsspezifische KI-Systeme mit einem Menschen in der Schleife erstellt werden.

Bot als Agent

Im ersten Modell, das als Bot als Agent bezeichnet wird, reiht sich der Bot unter die mit dem Agentenhub verbundenen aktiven Agenten ein und reagiert auf Benutzeranforderungen, als kämen die Anforderungen von einem anderen Bot Framework-Kanal. Die Konversation zwischen Benutzer und Bot kann zu einem Agenten eskaliert werden, woraufhin sich der Bot aus der aktiven Konversation ausklinkt.

Der Hauptvorteil dieses Modells liegt in seiner Einfachheit – vorhandener Bot kann mit minimalem Aufwand in den Agentenhub integriert werden, wobei die gesamte Komplexität des Nachrichtenroutings vom Agentenhub bewältigt wird.

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

Bot als Proxy

Das zweite Modell wird als Bot als Proxy bezeichnet. Der Benutzer spricht direkt mit dem Bot, bis der Bot entscheidet, dass er Hilfe von einem Agenten benötigt. Die Nachrichtenrouterkomponente im Bot leitet die Konversation an den Agentenhub um, der sie an den entsprechenden Agenten weiterleitet. Der Bot bleibt auf dem Laufenden und kann das Transkript der Konversation aufnehmen, Nachrichten filtern oder zusätzliche Inhalte sowohl für den Agenten als auch für den Benutzer bereitstellen.

Flexibilität und Kontrolle sind die Hauptvorteile dieses Modells. Der Bot kann eine Vielzahl von Kanälen unterstützen und hat die Kontrolle darüber, wie die Konversationen zwischen Benutzer, Bot und Agentenhub eskaliert und weitergeleitet werden.

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

Übergabeprotokoll

Das Protokoll konzentriert sich auf Ereignisse für die Initiierung, die vom Bot an den Kanal gesendet wird, und um Status-Aktualisierungen, die vom Kanal an den Bot gesendet werden.

Übergabe-Initiierung

Ein Übergabe-Initiierungsereignis wird vom Bot erstellt, um die Übergabe zu initiieren.

Zu dem Ereignissen kann Folgendes gehören:

  • Der Kontext der Übergabeanforderung um die Konversation an den richtigen Agenten weiterzuleiten.
  • Ein Transkript der Konversation, damit der Agent die Konversation zwischen Kunde und Bot lesen kann, die vor Einleiten der Übergabe stattgefunden hat.

Im Folgenden finden Sie allgemeine Eigenschaften des Übergabe-Initiierungsereignisses:

  • Name: Erforderlich, die Eigenschaft Name muss auf "handoff.initiate" festgelegt sein.

  • Konversation: Erforderlich, die Konversation-Eigenschaft, mit der die Konversation beschrieben wird, in der die Aktivität enthalten ist. Konversation muss die Unterhaltung Identhalten.

  • Wert: Optional, die Wert-Eigenschaft kann agenthubspezifische JSON-Inhalte enthalten, die der Hub verwenden kann, um die Unterhaltung an einen relevanten Agent weiterzuleiten.

  • Anlagen: Optional, die Anlagen-Eigenschaft kann ein Transkript als Anlage enthalten. Das Bot Framework definiert einen Transkript-Anlagentyp. Eine Anlage kann entweder inline (vorbehaltlich einer Größenbeschränkung) oder offline gesendet werden, indem sie ContentUrl angeben.

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

    Hinweis

    Agent-Hubs müssen Anlagentypen ignorieren, die sie nicht verstehen.

Wenn ein Bot die Notwendigkeit erkennt, die Konversation an einen Agenten zu übergeben, signalisiert er seine Absicht, indem er ein Übergabe-Initialisierungs-Ereignis sendet. Das SDK für C# enthält eine CreateHandoffInitiation Methode zum Erstellen eines gültigen Übergabe-Initialisierungs-Ereignisses.

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

Übergabestatus

Ein Übergabestatus-Ereignis wird vom Agent-Hub an den Bot gesendet. Das Ereignis informiert den Bot über den Status des initiierten Übergabevorgangs.

Hinweis

Bots sind nicht erforderlich, um ein Übergabestatus-Ereignis zu behandeln. Sie dürfen es jedoch nicht ablehnen.

Im Folgenden finden Sie allgemeine Übergabestatus-Ereignisfelder:

  • Name: Erforderlich, die Eigenschaft Name muss auf "handoff.status" festgelegt sein.

  • Konversation: Erforderlich, die Konversation-Eigenschaft, mit der die Konversation beschrieben wird, in der die Aktivität enthalten ist. Konversation muss die Unterhaltung Identhalten.

  • Wert: Erforderlich, die Eigenschaft Wert, die den aktuellen Status des Übergabevorgangs beschreibt. Der Wert verfügt über folgende Eigenschaften:

    • Status: Erforderlich, die Eigenschaft Status kann einen der folgenden Werte aufweisen:

      Wert Bedeutung
      „akzeptiert“ Ein Agent hat die Anfrage angenommen und die Kontrolle über die Unterhaltung übernommen.
      „fehlgeschlagen“ Übergabeanforderung fehlgeschlagen. Die Eigenschaft Nachricht kann zusätzliche Informationen enthalten, die für den Fehler relevant sind.
      „abgeschlossen“ Die Übergabeanforderung wurde abgeschlossen.
    • Nachricht: Optional, die Eigenschaft Nachricht ist ein Objekt, das vom Agent-Hub definiert wird.

    Hier sehen Sie ein paar Beispielwert-Objekte:

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

Übergabe-Bibliothek

Die Übergabe-Bibliothek wurde erstellt, um das Bot Framework v4 SDK zur Unterstützung von Übergaben zu ergänzen; insbesondere:

  • Implementiert die Ergänzungen des Bot Framework SDK, um die Übergabe an einen Agenten (auch als Eskalation bezeichnet) zu unterstützen.
  • Enthält Definitionen von drei Ereignistypen für Signal-Übergabevorgänge.

Hinweis

Integrationen mit bestimmten Agent-Hubs sind nicht Teil der Bibliothek.

Zusätzliche Ressourcen