Übergeben von Konversationen von einem Bot an einen MenschenTransition conversations from bot to human

gilt für: SDK v4APPLIES TO: SDK v4

Ganz gleich, wie groß das Ausmaß künstlicher Intelligenz bei einem Bot ist – es kann dennoch zu Situationen kommen, in denen die Konversation an einen Menschen übergeben werden muss.Regardless of how much artificial intelligence a bot possesses, there may still be times when it needs to hand off the conversation to a human being. Dies 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.This can be necessary either because the bot does not understand the user (because of an AI limitation), or if the request cannot be automated and requires a human action. Der Bot sollte in solchen Fällen erkennen, wann eine solche Übergabe erforderlich ist, und dem Benutzer eine klare und reibungslose Übergabe ermöglichen.In such cases the bot should recognize when it needs to hand off and provide the user with a smooth transition.

Microsoft Bot Framework ist eine offene Plattform, die Entwicklern die Integration mit einer Vielzahl von Plattformen zur Einbindung von Agenten ermöglicht.Microsoft Bot Framework is an open platform that allows developers to integrate with a variety of agent engagement platforms.

Modelle für die Integration der ÜbergabeHandoff integration models

Microsoft Bot Framework unterstützt zwei Modelle für die Integration in Plattformen zur Einbindung von Agenten.Microsoft Bot Framework supports two models for integration with agent engagement platforms. 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.The handoff protocol is identical for both models, however the onboarding details differ between the models and the agent engagement platforms.

Das Ziel besteht darin, keine universelle Lösung für die Integration in das System eines Kunden bereitzustellen, sondern eine gängige Sprache und bewährte Methoden für bot-Entwickler und Systemintegratoren bereitzustellen, die mit Menschen in der Schleife in der Schleife integrierte Ki-Systeme erstellen.The goal is not to offer a universal solution for integration with any customer's system, but rather to provide a common language and best practices for bot developers and system integrators building conversational AI systems with human in the loop.

Bot als AgentBot as an agent

Im ersten Modell, das als „Bot als Agent“ bezeichnet wird, reiht sich der Bot in die Reihe der mit dem Agentenhub verbundenen aktiven Agenten ein und reagiert auf Benutzeranforderungen, als kämen die Anforderungen von einem anderen Bot Framework-Kanal.In the first model, known as "Bot as an agent", the bot joins the ranks of the live agents connected to the agent hub and responds to user requests as if the requests came from any other Bot Framework channel. Die Konversation zwischen Benutzer und Bot kann zu einem Agenten eskaliert werden, woraufhin sich der Bot aus der aktiven Konversation ausklinkt.The conversation between the user and the bot can be escalated to a human agent, at which point the bot disengages from the active conversation.

Der Hauptvorteil dieses Modus liegt in seiner Einfachheit. Ein vorhandener Bot kann mit minimalem Aufwand in den Agentenhub integriert werden, wobei die gesamte Komplexität des Nachrichtenroutings vom Agentenhub bewältigt wird.The main advantage of this mode is in its simplicity – an existing bot can be onboarded to the agent hub with minimal effort, with all of the complexity of message routing taken care of by the agent hub.

Szenario „Bot als Agent“

Bot als ProxyBot as a proxy

Das zweite Modell wird als „Bot als Proxy“ bezeichnet.The second model is known as "Bot as a proxy". Der Benutzer spricht direkt mit dem Bot, bis der Bot entscheidet, dass er Hilfe von einem Agenten benötigt.The user talks directly to the bot, until the bot decides that it needs help from a human agent. Die Nachrichtenrouterkomponente im Bot leitet die Konversation an den Agentenhub um, der sie an den entsprechenden Agenten weiterleitet.The message router component in the bot redirects the conversation to the agent hub, which dispatches it to the appropriate agent. 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.The bot stays in the loop and can collect the transcript of the conversation, filter messages, or provide additional content to both the agent and the user.

Flexibilität und Kontrolle sind die Hauptvorteile dieses Modells.Flexibility and control are the main advantages of this model. 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.The bot can support a variety of channels and have control over how the conversations are escalated and routed between the user, the bot, and the agent hub.

Szenario „Bot als Proxy“

ÜbergabeprotokollHandoff protocol

Das Protokoll wird um Ereignisse für die Initiierung, von dem bot an den Kanal und die Statusaktualisierung, die vom Kanal an den bot gesendet werden, zentriert.The protocol is centered around events for initiation, sent by the bot to the channel, and status update, sent by the channel to the bot.

Übergabe InitialisierungHandoff initiation

Das Handoff-Initiierungs Ereignis wird vom bot erstellt, um die Übergabe zu initiieren.The Handoff Initiation event is created by the bot to initiate handoff.

Das Ereignis enthält zwei Komponenten:The event contains two components:

  • Der Kontext der Übergabe-Anforderung , die zum Weiterleiten der Konversation an den rechten Agent erforderlich ist.The context of the handoff request that is necessary to route the conversation to the right agent.
  • Das Transkripts der Konversation.The transcript of the conversation. Der Agent kann die Konversation zwischen Kunde und Bot lesen, die vor Einleiten der Übergabe stattgefunden hat.The agent can read the conversation that took place between the customer and the bot before the handoff was initiated.

Im folgenden sind die Ereignis Felder für die Übergabe von Ereignissen aufgeführt:The following are the handoff initiation event fields:

  • Name : der name ist ein erforderliches Feld, das auf festgelegt ist "handoff.initiate" .Name - The name is a required field that is set to "handoff.initiate".

  • Wert : das value Feld ist ein Objekt, das agenthub-spezifischen JSON-Inhalt enthält, z. b. die erforderliche agentkenntnisse usw.Value - The value field is an object containing agent hub-specific JSON content, such as required agent skill and so on. Dieses Feld ist optional.This field is optional.

    { "Skill" : "credit cards" }
    
  • Anlagen : das attachments ist ein optionales Feld, das die Liste der- Attachment Objekte enthält.Attachments - The attachments is an optional field containing the list of Attachment objects. Bot Framework definiert den "Transkriptions"-Anweisungstyp, der verwendet wird, um bei Bedarf eine Konversation an den agenthub zu senden.Bot Framework defines the "Transcript" attachment type that is used to send conversation transcript to the agent hub if required. Anlagen können entweder Inline (abhängig von einer Größenbeschränkung) oder offline gesendet werden, indem bereitgestellt wird ContentUrl .Attachments can be sent either inline (subject to a size limit) or offline by providing ContentUrl.

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

    Hinweis

    Agenthubs müssen Anlagentypen ignorieren, die Sie nicht verstehen.Agent hubs must ignore attachment types they don't understand.

  • Konversation : das conversation ist ein erforderliches Feld vom Typ ConversationAccount , das die übergebene Konversation beschreibt.Conversation - The conversation is a required field of type ConversationAccount describing the conversation being handed over. Es muss eine Konversation enthalten Id , die für die Korrelation mit den anderen Ereignissen verwendet werden kann.Critically, it MUST include the conversation Id that can be used for correlation with the other events.

Wenn ein bot erkennt, dass die Konversation an einen Agent übergeben werden muss, signalisiert er seine Absicht durch das Senden eines Übergabe-Initiierungs Ereignisses.When a bot detects the need to hand the conversation off to an agent, it signals its intent by sending a handoff initiation event. In c# kann eine API- CreateHandoffInitiation Methode höherer Ebene wie im folgenden Code Ausschnitt gezeigt verwendet werden.In C# an higher level API CreateHandoffInitiation method can be used as demonstrated in the code snippet below.

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

Status der ÜbergabeHandoff status

Das Übergabe Status Ereignis wird vom agenthub an den bot gesendet.The Handoff Status event is sent to the bot by the agent hub. Das Ereignis informiert den bot über den Status des initiierten Übergabe-Vorgangs.The event informs the bot about the status of the initiated handoff operation.

Hinweis

Bots sind nicht erforderlich , um das Ereignis zu behandeln, aber Sie dürfen es nicht ablehnen.Bots are not required to handle the event, however they must not reject it.

Im folgenden sind die Ereignis Felder für den Ereignis Status aufgeführt:The following are the handoff status event fields:

  • Name : der name ist ein erforderliches Feld, das auf festgelegt ist "handoff.status" .Name - The name is a required field that is set to "handoff.status".

  • Wert : das value ist ein erforderliches Feld, das den aktuellen Status des Übergabe-Vorgangs beschreibt.Value - The value is a required field describing the current status of the handoff operation. Es handelt sich um ein JSON-Objekt, das das erforderliche Feld state und ein optionales Feld enthält message , wie unten definiert.It is a JSON object containing the required field state and an optional field message, as defined below.

Der state hat einen der folgenden Werte:The state has one of the following values:

  • accepted-Ein Agent hat die Anforderung akzeptiert und die Kontrolle über die Konversation übernommen.accepted- An agent has accepted the request and taken control of the conversation.
  • failed-Handoff-Anforderung ist fehlgeschlagen.failed- Handoff request has failed. messageEnthält möglicherweise zusätzliche Informationen, die für den Fehler relevant sind.The message might contain additional information relevant to the failure.
  • completed -Die Übergabe Anforderung wurde abgeschlossen.completed - Handoff request has completed.

Das Format und der mögliche Wert des message Felds sind nicht angegeben.The format and possible value of the message field are unspecified.

  • Erfolgreiche Übergabe abgeschlossen:Successful handoff completion:

    { "state" : "completed" }
    
  • Fehler beim Handoff-Vorgang aufgrund eines Timeouts:Handoff operation failed due to a timeout:

    { "state" : "failed", "message" : "Cannot find agent with requested skill" }
    
  • Konversation - Conversation ist ein erforderliches Feld vom Typ ConversationAccount , das die akzeptierte oder abgelehnte Konversation beschreibt.Conversation -Conversationis a required field of type ConversationAccount describing the conversation that has been accepted or rejected. Der Id der Konversation muss mit dem der handoffinitiation identisch sein, die die Übergabe initiiert hat.The Id of the conversation MUST be the same as in the HandoffInitiation that initiated the handoff.

Handoff-BibliothekHandoff library

Die Handoff-Bibliothek wurde erstellt, um das bot Framework V4 SDK in die Unterstützung von Handoff zu ergänzen. konkretThe Handoff Library has been created to complement the Bot Framework v4 SDK in supporting handoff; specifically:

  • Implementiert die Ergänzungen zum bot Framework SDK zur Unterstützung von Übergabe an einen Agent (auch als Eskalation bezeichnet).Implements the additions to the Bot Framework SDK to support handoff to an agent (also known as escalation.
  • Enthält Definitionen von drei Ereignis Typen für das signalisieren von Übergabe-Vorgängen.Contains definitions of three event types for signaling handoff operations.

Hinweis

Integrationen mit bestimmten Agent-Hubs sind nicht Teil der Bibliothek.Integrations with specific agent hubs are not part of the library.

Zusätzliche RessourcenAdditional resources