Gesprekken overzetten van bot naar mens

VAN TOEPASSING OP: SDK v4

Ongeacht hoeveel kunstmatige intelligentie een bot bezit, kan het nog steeds nodig zijn om het gesprek aan een mens af te geven. Een dergelijke hand-off kan nodig zijn als de bot de gebruiker niet begrijpt (vanwege een AI-beperking), of als de aanvraag niet kan worden geautomatiseerd en een menselijke actie vereist. In dergelijke gevallen moet de bot herkennen wanneer deze het gesprek moet afleveren en de gebruiker een soepele overgang moet bieden.

Microsoft Bot Framework is een open platform waarmee ontwikkelaars kunnen integreren met verschillende platformen voor agentbetrokkenheid.

Handoff-integratiemodellen

Microsoft Bot Framework ondersteunt twee modellen voor integratie met agentbetrokkenheidsplatforms. Het handoff-protocol is identiek voor beide modellen, maar de onboardingdetails verschillen tussen de modellen en de agentbetrokkenheidsplatformen.

Het doel is geen universele oplossing te bieden voor integratie met het systeem van een klant, maar om een gemeenschappelijke taal en best practices te bieden voor botontwikkelaars en systeemintegrators waarmee conversationele AI-systemen kunnen worden gebouwd met een mens in de lus.

Bot als agent

In het eerste model, ook wel bot genoemd als agent, koppelt de bot de positie van de live-agents die zijn verbonden met de agenthub en reageert op gebruikersaanvragen alsof de aanvragen afkomstig zijn van een ander Bot Framework-kanaal. Het gesprek tussen de gebruiker en de bot kan worden geëscaleerd naar een menselijke agent, waarna de bot wordt uitgeschakeld vanuit het actieve gesprek.

Het belangrijkste voordeel van dit model is de eenvoud. U kunt met minimale inspanning een bestaande bot aan de agenthub toevoegen en de agenthub verwerkt de complexiteit van berichtroutering.

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

Bot als proxy

Het tweede model wordt bot genoemd als een proxy. De gebruiker praat rechtstreeks met de bot totdat de bot besluit dat deze hulp nodig heeft van een menselijke agent. Het berichtrouteronderdeel in de bot leidt het gesprek om naar de agenthub, die het naar de juiste agent verzendt. De bot blijft in de lus en kan het transcript van het gesprek verzamelen, berichten filteren of aanvullende inhoud leveren aan zowel de agent als de gebruiker.

Flexibiliteit en controle zijn de belangrijkste voordelen van dit model. De bot kan meerdere kanalen ondersteunen en controle hebben over hoe de gesprekken worden geëscaleerd en gerouteerd tussen de gebruiker, de bot en de agenthub.

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

Handoff-protocol

Het protocol is gecentreerd rond gebeurtenissen die worden geïnitieerd, verzonden door de bot naar het kanaal en statusupdate, verzonden door het kanaal naar de bot.

Start van de handoff

Er wordt een handoff initiation-gebeurtenis gemaakt door de bot om de handoff te initiëren.

De gebeurtenis kan het volgende omvatten:

  • De context van de handoff-aanvraag om het gesprek door te sturen naar een geschikte agent.
  • Een transcriptie van het gesprek, zodat een agent het gesprek kan lezen dat plaatsvond tussen de klant en de bot voordat de handoff werd gestart.

Hier volgen veelvoorkomende eigenschappen van handoff-initiation-gebeurtenissen:

  • Naam: Vereist, de naameigenschap moet worden ingesteld op 'handoff.initiate'.

  • Gesprek: Vereist, de gesprekseigenschap beschrijft het gesprek waarin de activiteit bestaat. Gesprek moet het gesprek Idbevatten.

  • Waarde: Optioneel kan de waardeeigenschap agenthubspecifieke JSON-inhoud bevatten die de hub kan gebruiken om het gesprek naar een relevante agent te routeren.

  • Bijlagen: Optioneel kan de eigenschap bijlagen een transcript als bijlage bevatten. Het Bot Framework definieert een transcriptbijlagetype . Een bijlage kan inline worden verzonden (afhankelijk van een groottelimiet) of offline door deze op te geven ContentUrl.

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

    Notitie

    Agenthubs moeten bijlagetypen negeren die ze niet begrijpen.

Wanneer een bot detecteert dat het gesprek naar een agent moet worden verzonden, geeft deze de intentie aan door een handoff-initiatie-gebeurtenis te verzenden. De SDK voor C# bevat een CreateHandoffInitiation methode om een geldige handoff initiation-gebeurtenis te maken.

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

Handoff-status

Er wordt een handoff-status-gebeurtenis verzonden naar de bot door de agenthub. De gebeurtenis informeert de bot over de status van de geïnitieerde handoff-bewerking.

Notitie

Bots zijn niet vereist om een handoff-status gebeurtenis af te handelen. Ze mogen deze echter niet afwijzen.

Hier volgen veelvoorkomende gebeurtenisvelden voor de handoff-status:

  • Naam: Vereist, de naameigenschap moet worden ingesteld op 'handoff.status'.

  • Gesprek: Vereist, de gesprekseigenschap beschrijft het gesprek waarin de activiteit bestaat. Gesprek moet het gesprek Idbevatten.

  • Waarde: Vereist, de waarde-eigenschap die de huidige status van de handoff-bewerking beschrijft. De waarde heeft de volgende eigenschappen.

    • Status: Vereist, de statuseigenschap kan een van deze waarden hebben:

      Waarde Betekenis
      "geaccepteerd" Een agent heeft de aanvraag geaccepteerd en de besturing van het gesprek overgenomen.
      "mislukt" De handoff-aanvraag is mislukt. De berichteigenschap bevat mogelijk aanvullende informatie die relevant is voor de fout.
      "voltooid" De handoff-aanvraag is voltooid.
    • Bericht: Optioneel is de berichteigenschap een object dat is gedefinieerd door de agenthub.

    Hier volgen enkele voorbeelden van waardeobjecten:

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

Handoff-bibliotheek

De Handoff Library is gemaakt om de Bot Framework v4 SDK aan te vullen bij het ondersteunen van de handoff, met name:

  • Implementeert de toevoegingen aan de Bot Framework SDK ter ondersteuning van de overdracht aan een agent (ook wel escalatie genoemd).
  • Bevat definities van drie gebeurtenistypen voor het signaleren van handoff-bewerkingen.

Notitie

Integraties met specifieke agenthubs maken geen deel uit van de bibliotheek.

Aanvullende bronnen