Im Zusammenhang mit KI-Agenten bezieht sich Fulfillment auf die Ausführung von Aufgaben, die die Interaktion mit externen Systemen beinhalten, um Daten über APIs abzurufen, zu bearbeiten oder zu speichern. In diesem Artikel wird der Beispiel-Agent beschrieben, der für die Nachverfolgung von Paketen erstellt wurde. Sie können diese Agentenvorlage verwenden, während Sie einen neuen KI-Agenten für digitale und Sprachinteraktionen erstellen.

Bei digitalen Kanälen muss die Auftragsabwicklung über den Verbindungsablauf orchestriert werden, der für die Bereitstellung des KI-Agenten verwendet wird. Am Beispiel eines Paketverfolgungs-Agenten, den Sie aus einer Vorlage importieren können, während Sie einen neuen Script-Agenten erstellen, kann der Flow auch importiert werden, während Sie einen neuen Webex Connect-Flow erstellen. Neben der Erfüllung leitet dieser Verbindungsablauf den Benutzer auch an verschiedene Agentenwarteschlangen weiter, basierend auf seinem letzten Intent.

  1. Nachdem Sie die Einrichtung des Agenten mit Skript abgeschlossen haben, identifizieren Sie die Antworten, die erfüllt werden müssen.

    Im Beispielagenten ist die Erfüllung für 'trackPackageResponse' erforderlich.

  2. Konfigurieren Sie in diesen Vorlagen eine "Warteantwort", die dem Benutzer während des Fulfillments angezeigt wird.

    In diesem Beispiel wird eine Halteantwort für 'trackPackageResponse' konfiguriert.

  3. Verwenden Sie im Flow einen Data Parser-Knoten , um die Metadaten der Agentensitzung (Ausgabevariable) aus der Antwort des KI-Agenten zu analysieren, um den Antwortnamen zu erhalten.

    Sie können die Beispieleingabe für den Datenparserknoten abrufen, indem Sie Transaktionsinformationen aus Sitzungen herunterladen, indem Sie die entsprechende Transaktion auswählen und den Wert des Schlüssels "generatedDf" aus der heruntergeladenen Datei auswählen.

  4. Wenn Sie zum Zeitpunkt der Übergabe des Agenten ein Intent-basiertes Routing durchführen möchten, können Sie im selben Schritt den Wert des vorherigen aktiven Intents abrufen.

  5. Wenn Sie den JSON-Beispielcode nicht herunterladen und analysieren möchten, können Sie \$.model_state.template_key für den Antwortnamen und \$.previous_intent_model_state.intent.name für den vorherigen Absichtsnamen verwenden .

    In unserem Beispiel verwenden wir die Flussvariablen "responseKey" und "previousIntent" für diese Werte.

  6. Verwenden Sie einen Verzweigungsknoten , um zu prüfen, ob eine Antwort verarbeitet werden muss.

    • Der Verzweigungsknoten wird über das Knotenergebnis "Keine der oben genannten" für Antworten beendet, für die keine Erfüllung erforderlich ist.

    • Da in unserem Beispiel ein Fulfillment für "trackPackageResponse" erforderlich ist, überprüfen Sie den Wert von "responseKey" in unserem Branch-Knoten.

  7. Verwenden Sie für Antworten, die Erfüllung erfordern, einen HTTP-Knoten , um externe API-Aufrufe durchzuführen.

    • Sie können nützliche Informationen aus der HTTP-Knotenantwort im selben Knoten analysieren, indem Sie ein Beispiel importieren und Ausgabevariablen abrufen.

    • In diesem Beispiel erhalten wir "estimatedDelivery" und "Status" des Pakets.

  8. Verarbeiten Sie die Fulfillment-Antwort mithilfe eines Evaluate-Knotens, um die Agentenantwort zu formulieren.

    In unserem Beispiel initialisieren wir die Variable "fulfilmentResp" und legen ihren Wert basierend auf dem Paketstatus und der voraussichtlichen Lieferung fest.

  9. Senden Sie die Fulfillment-Antwort an den Benutzer und hängen Sie sie an die Konversation an.

  10. Führen Sie eine Schleife zurück zum Empfangsknoten , um die Konversation zwischen dem Benutzer und dem KI-Agenten fortzusetzen.

Intent-basierte Agentenübergabe

Überprüfen Sie zum Zeitpunkt der Agentenübergabe auf die letzte aktive Absicht durch einen Verzweigungsknoten vor dem Aufgabenknoten Warteschlange .

Überprüfen Sie den Wert von 'previousIntent', und verzweigen Sie basierend auf Ihren Anforderungen in verschiedene Warteschlangen. Wenn der Kunde in diesem Beispiel nach der Absicht "Paket nachverfolgen" um die Übergabe eines Agenten bittet, leiten Sie ihn an die Warteschlange "Spezialist" weiter. Alle anderen Werte führen zu einem Wechsel in die Warteschlange 'Chat'.

Bei Sprachkanälen muss das Fulfillment orchestriert werden, indem die Steuerung der Konversation durch benutzerdefinierte Ereignisse an den Sprachfluss zurückgegeben und später die KI-Agentenkonversation mit den Fulfillment-Daten fortgesetzt wird. Zu diesem Zweck wird der Beispiel-Skript-Agent für die Verfolgung von Paketen wiederverwendet. Der Flow ist unter "Aus Vorlagen importieren" im Webex Contact Center Flow Designer verfügbar. Neben der Auftragsabwicklung leitet dieser Ablauf den Benutzer auch basierend auf seinem letzten Intent an verschiedene Agentenwarteschlangen weiter.

Schritt-für-Schritt-Anleitung: Fulfillment

  1. Fügen Sie den Antworttyp "benutzerdefiniertes Ereignis" hinzu.

    • Suchen Sie den Vorlagenschlüssel, für den Sie das benutzerdefinierte Ereignis hinzufügen möchten. Verwenden Sie in diesem Fall den Vorlagenschlüssel "trackPackageResponse".

    • Fügen Sie dem Vorlagenschlüssel den Antworttyp "benutzerdefiniertes Ereignis" hinzu.

  2. Konfigurieren Sie die Antwort des benutzerdefinierten Ereignisses.

    • Ereignisname und Ereignisnutzlast hinzufügen:

      1. Geben Sie für die benutzerdefinierte Ereignisantwort einen Ereignisnamen an. In diesem Fall 'TrackPack_Exit'.

      2. Fügen Sie die Ereignisnutzlast hinzu, die Daten enthält, die an den Flow übergeben werden. Dieser muss im JSON-Format vorliegen. In diesem Beispiel wird { "PackageNumber":"${entity. PackageNum}"}.

  3. Verwenden Sie die Ereignisnutzlast im Schema.

    • Auf die Metadaten der Virtual Agent V2-Aktivität zugreifen :
      1. In Ihrer Voiceflow-Konfiguration ist die von Ihnen hinzugefügte Ereignisnutzlast als Teil der Aktivitätsmetadaten des virtuellen Agenten V2 verfügbar.

      2. Erstellen Sie die Flussvariable PackageNum.

      3. Verwenden Sie eine Analyseaktivität , um Ihre Virtual Agent V2-Aktivitätsmetadaten als Eingabevariable auszuwählen.

      4. Legen Sie die Ausgabevariable auf "PackageNum" und den Pfadausdruck auf "$" fest. PackageNum' (basierend auf der Struktur der in der Agentenantwort konfigurierten Ereignisnutzlast).

    • Verwenden der Aktivität Metadaten in HTTP:
      1. Verwenden Sie die Variable "PackageNum" aus den verarbeiteten Metadaten in Ihrem Schema, um das Paket nachzuverfolgen.

      2. Importieren Sie den angehängten Flow, um die Details der HTTP-Aktivität zu finden.

      3. Definieren Sie die Flow-Variablen 'estimatedDelivery' und setzen Sie sie auf '$.estimated_delivery' und eine weitere Flow-Variable 'packStatus' und setzen Sie sie auf $.status.

    • Fügen Sie Bedingungen basierend auf der HTTP-Aktivität hinzu:
      1. Fügen Sie dem Flow eine neue Bedingungsaktivität hinzu. Diese Aktivität wird verwendet, um die Antwort der HTTP-Aktivität zu überprüfen (ob das Paket existiert und welchen Status es hat).

        In diesem Beispiel wird der Ausdruck {{ HTTPRequest_8l3.httpStatusCode == 404 }} verwendet, um zu überprüfen, ob kein Paket gefunden wurde.

  4. Hinzufügen von Set-Variablenaktivität basierend auf Bedingungen:
    1. Für die Bedingung, für die das Paket nicht vorhanden ist:

      • Fügen Sie unter der Verzweigung, in der kein Paket gefunden wird, eine Aktivität Variable festlegen hinzu.
      • Legen Sie packageResp (eine weitere Flussvariable) auf Folgendes fest:

        Kein Paket mit diesen Angaben gefunden.

    2. Für die Bedingung, für die das Paket vorhanden ist:

      • Fügen Sie unter der Verzweigung, in der ein Paket gefunden wird (d. h., der HTTP-Statuscode ist nicht gleich 404), eine weitere Set Variable-Aktivität hinzu.
      • Legen Sie packageResp (eine weitere Flussvariable) auf Folgendes fest:

        Ihr Paket wurde abgeholt. Es wird von {{estimatedDelivery}} geliefert.

    3. Fügen Sie zwei weitere Variablenaktivitäten festlegen hinzu, um den Ereignisnamen und die Ereignisdaten zu konfigurieren. Diese Daten werden an die Aktivität des virtuellen Agenten V2 übergeben.

      • Erstellen Sie Flow-Variablen event_name und event_data.

      • Setzen Sie event_name auf TrackPack_Entry und event_data auf {'packageResp': '{{packageResp}}' | json}.

  5. Führen Sie eine Schleife zurück zur Aktivität " Virtueller Agent V2 ":

    • Konfigurieren der Aktivität "virtueller Agent V2":
      1. Verbinden Sie die letzte Aktivität "Variable festlegen" mit der Aktivität "virtueller Agent V2".

      2. Legen Sie den Ereignisnamen auf {{event_name}} fest.

      3. Legen Sie die Ereignisdaten auf {{event_data}} fest.

  6. Behandeln Sie eingehende Ereignisse in Ihrem virtuellen Agenten:

    1. Fügen Sie einen neuen Vorlagenschlüssel hinzu:

      1. Gehen Sie zu den Antworten Tab auf der linken Seite.

      2. Fügen Sie einen neuen Vorlagenschlüssel mit dem Namen packageStatus hinzu.

    2. Eingehendes Ereignis konfigurieren:

      1. Legen Sie unter dem Sprachkanal das eingehende Ereignis auf TrackPack_Entry fest (oder was auch immer im Flow an die Aktivität des virtuellen Agenten V2 gesendet wurde).

    3. Konfigurieren Sie die Antwort:

      1. Setzen Sie die Antwort auf: <speak> <say-as interpret-as="date"> ${eventStore.packageResp} </say-as>. Kann ich Ihnen sonst noch helfen?</sprechen>

        Diese Antwort verwendet die Variablen, die in der Nutzlast aus dem Flow gesendet werden. Alle Variablen, die als Teil von Ereignisdaten gesendet werden, stehen Entwicklern als ${eventStore.<variable_name>} zur Verfügung.

        Dabei werden auch SSML-Tags verwendet. Insbesondere können Sie mit dem SSML-Tag steuern, wie Text von einem Text-to-Speech-Modul interpretiert und gesprochen wird. Mit diesem Tag können Sie angeben, wie Zahlen, Datumsangaben, Uhrzeiten, Adressen und anderer Text ausgesprochen werden sollen. Hier verwenden wir es für das Datum.

Agentenrouting basierend auf vorheriger Absicht

  • Wenn die Virtual Agent V2-Aktivität über die "Eskalated"-Ausgabe beendet wird, verwenden Sie eine Parse-Aktivität , um die vorherige Absicht aus den Agentenmetadaten abzurufen.

  • Verwenden Sie eine Case-Aktivität , um nach verschiedenen Werten des vorherigen Intents zu suchen, die die Warteschlangenlogik bestimmen. In diesem Beispiel prüfen wir, ob die vorherige Absicht "Paket verfolgen" lautete.

  • Hängen Sie die Ausgaben der Case-Aktivität an die entsprechenden Warteschlangenkontaktkanten an.