Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Note
In diesem Artikel werden Funktionen beschrieben, die in Agents oder Agent-Flows verwendet werden, die von der Standardumgebung unterstützt werden.
Mit Copilot Studio können Sie Agentengespräche nahtlos und kontextbezogen mithilfe eines Engagement-Hubs an einen menschlichen Agenten übertragen.
Mit individueller Entwicklung können Sie Ihren Agenten so konfigurieren, dass er Gespräche an jeden Engagement-Hub weitergibt.
Voraussetzungen
- Du hast deinen Agent mit Copilot Studio aufgebaut.
- Du brauchst einen Engagement-Hub, der programmatisch über APIs oder SDKs interagieren kann.
Wichtig
Dieser Artikel erfordert einige Fähigkeiten zur Softwareentwicklung. Die Schritte in diesem Artikel sind für erfahrene IT-Experten mit einem soliden Verständnis von Entwicklertools, Dienstprogrammen und integrierten Entwicklungsumgebungen (IDEs) vorgesehen.
Übersicht
Eine vollständige Übergabe an einen Kundenbindungs-Hub folgt diesem Muster:
- Eine Kundschaft interagiert mit dem Chat-Canvas des Kundenbindungs-Hubs.
- Der Kundenbindungs-Hub leitet den eingehenden Chat über integrierte Chat-Routing-Funktionen an einen Agenten weiter.
- Ein benutzerdefinierter Adapter leitet die eingehenden Chat-Nachrichten vom Kundenbindungs-Hub an einen Copilot Studio-Agenten weiter.
- Sobald die Kundschaft die Übergabe auslöst, startet Copilot Studio die Übergabe mit vollständigem Gesprächskontext.
- Der benutzerdefinierte Adapter fängt die Übergabemeldung ab, analysiert den gesamten Unterhaltungskontext und leitet die eskalierte Unterhaltung nahtlos basierend auf Verfügbarkeit an einen qualifizierten menschlichen Agenten weiter.
- Der Chat der Kundschaft wird nahtlos und kontextbezogen an einen menschlichen Agenten übergeben, der die Unterhaltung fortsetzen kann.
Um die Unterhaltung an einen menschlichen Agenten weiterzuleiten, müssen Sie einen benutzerdefinierten Übergabeadapter erstellen.
Erstellen eines benutzerdefinierten Übergabeadapters
Ein Adapter überbrückt Unterhaltungen zu und von Ihrer Agenten-Interaktionsplattform, indem er Nachrichten zwischen Kundschaft, Agenten und menschlichen Agenten weiterleitet und transformiert.
Die meisten gängigen Agent-Kundenbindungs-Hubs stellen Software Development Kits (SDKs) bereit oder dokumentieren ihre APIs öffentlich, sodass Sie solche Adapter erstellen können.
Dieses Dokument deckt nicht ab, was ein benutzerdefinierter Adapter enthalten kann. Die folgende Beispielübergabemeldung, die darauf basiert, was Copilot Studio im Rahmen unserer Standardübergabe an eine Live-Agent-Umgebung generiert, kann Ihnen jedoch beim Einstieg helfen.
Mit diesen Codeschnipseln und Beispielen können Sie den Kontext aus der Unterhaltung extrahieren, um Agentenunterhaltungen nahtlos und kontextbezogen an einen beliebigen generischen Kundenbindungs-Hub zu übergeben.
Nutzlast der Beispielübergabemeldung
Handoff unterstützt aktuell nur Direct Line. Weitere Informationen finden Sie unter Interaktion mit einem Agent über Direct Line. Wenn Sie die Übergabe initiieren, löst der Adapter eine Ereignisaktivität mit dem Namen handoff.initiate aus und sendet sie.
Sehen Sie sich eine vollständige Beispielübergabemeldungsaktivität auf unserer GitHub-Website an.
Kontext aus Übergabemeldungen extrahieren
Um Gesprächskontext verwenden zu können, müssen Sie die handoff.initiate-Ereignisaktivität analysieren.
Der folgende Codesnippet analysiert die handoff.initiate Ereignisaktivität und extrahiert den konversationellen Kontext. Sehen Sie sich das vollständige Codebeispiel auf GitHub an.
public void InitiateHandoff(string botresponseJson)
{
BotResponse response = JsonConvert.DeserializeObject<BotResponse>(botresponseJson);
// Look for Handoff Initiate Activity. This indicates that conversation needs to be handed off to agent
Activity handoffInitiateActivity = response.Activities.ToList().FirstOrDefault(
item => string.Equals(item.Type, ActivityTypes.Event, System.StringComparison.Ordinal)
&& string.Equals(item.Name, HandoffInitiateActivityName, System.StringComparison.Ordinal));
if (handoffInitiateActivity != null)
{
// Read transcript from attachment
if (handoffInitiateActivity.Attachments?.Any() == true)
{
Attachment transcriptAttachment = handoffInitiateActivity.Attachments.FirstOrDefault(a => string.Equals(a.Name.ToLowerInvariant(), TranscriptAttachmentName, System.StringComparison.Ordinal));
if (transcriptAttachment != null)
{
Transcript transcript = JsonConvert.DeserializeObject<Transcript>(transcriptAttachment.Content.ToString());
}
}
// Read handoff context
HandoffContext context = JsonConvert.DeserializeObject<HandoffContext>(handoffInitiateActivity.Value.ToString());
// Connect to Agent Hub
// <YOUR CUSTOM ADAPTER CODE GOES HERE>
}
}