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.
Die Interaktionen eines Agenten können mithilfe von Text, Sprache, Bildern oder Videos erfolgen. Es verarbeitet die Eingaben des Benutzers, um seine Anforderung zu verstehen, und wertet die Eingaben aus, um relevante Aufgaben auszuführen. Ein Agent kann Informationen anfordern oder den Zugriff auf Dienste ermöglichen und dem Benutzer antworten.
Agent-Bereiche
Agents in Microsoft Teams können Teil einer Einzelunterhaltung, eines Gruppenchats oder eines Kanals in einem Team sein. Jeder Bereich bietet einzigartige Chancen und Herausforderungen für Ihren Gesprächsagenten.
| In einem Kanal | In einem Gruppenchat | In einem 1:1-Chat. |
|---|---|---|
| Massive Reichweite | Weniger Mitglieder | Traditionelle Art und Weise |
| Präzise individuelle Interaktionen | @mention An Agent | Q&A-Agenten |
| @mention An Agent | Ähnlich wie Kanal | Agenten, die Witze erzählen und sich Notizen machen |
In einem Kanal
Kanäle enthalten Threadunterhaltungen zwischen mehreren Personen, sogar bis zu 2000. Dies gibt Ihrem Agenten möglicherweise eine enorme Reichweite, aber einzelne Interaktionen müssen prägnant sein. Herkömmliche Interaktionen mit mehreren Umläufen funktionieren nicht. Stattdessen müssen Sie interaktive Karten oder Dialogfelder (in TeamsJS v1.x als Aufgabenmodule bezeichnet) verwenden oder die Unterhaltung in eine 1:1-Unterhaltung verschieben, um viele Informationen zu sammeln. Ihr Agent hat nur Zugriff auf Nachrichten, bei denen er @mentioned. Mithilfe von Microsoft Graph und Berechtigungen auf Organisationsebene können Sie zusätzliche Nachrichten aus der Unterhaltung abrufen.
Agents funktionieren in einem Kanal in den folgenden Fällen besser:
- Benachrichtigungen, wenn Sie eine interaktive Karte für die Benutzer bereitstellen, die weitere Informationen aufnimmt.
- Feedbackszenarien wie Abstimmungen und Umfragen.
- Ein einzelner Anforderungs- oder Antwortzyklus löst Interaktionen auf, und die Ergebnisse sind für mehrere Mitglieder der Unterhaltung nützlich.
- Soziale oder lustige Agenten, bei denen Sie ein tolles Katzenbild erhalten, wählen zufällig einen Gewinner aus und so weiter.
In einem Gruppenchat
Gruppenchats sind Unterhaltungen ohne Threading zwischen drei oder mehr Personen. Sie weisen tendenziell weniger Mitglieder auf als ein Kanal und sind kurzlebiger. Ähnlich wie in einem Kanal hat Ihr Agent nur dann Zugriff auf Nachrichten, wo er sich direkt befindet @mentioned .
Agents, die in einem Kanal besser funktionieren, funktionieren auch besser in einem Gruppenchat.
In einem 1:1-Chat.
Der 1:1-Chat ist eine herkömmliche Methode für einen Unterhaltungsagenten, mit einem Benutzer zu interagieren. Einige Beispiele für One-to-One-Unterhaltungsagenten sind:
- Q&A-Agenten
- Agents, die Workflows in anderen Systemen initiieren.
- Agenten, die Witze erzählen.
- Agents, die Notizen machen. Überlegen Sie vor dem Erstellen von 1:1-Agents, ob eine konversationsbasierte Schnittstelle die beste Möglichkeit ist, Ihre Funktionalität zu präsentieren.
Aktivitätshandler und Agentlogik
Um eine Agent-App zu erstellen, die Ihren Anforderungen entspricht, ist das Verständnis des Microsoft Teams-Aktivitätshandlers und der Agentlogik unerlässlich. Diese beiden Schlüsselkomponenten arbeiten zusammen, um die Unterhaltungslogik zu organisieren.
Teams-Aktivitätshandler: Verarbeitet Teams-spezifische Ereignisse und Interaktionen wie die Erstellung von Kanälen, das Hinzufügen von Teammitgliedern und andere Aktionen, die für die Teams-Umgebung einzigartig sind. Im Teams SDK v2 werden Handler direkt in einer
AppInstanz und nicht über Klassenvererbung registriert.Agentenlogik: Das
AppObjekt enthält die Konversationslogik des Agenten und ist für Entscheidungen auf der Grundlage von Benutzereingaben verantwortlich. Eingehende Aktivitäten werden basierend auf dem Aktivitätstyp und dem optionalen Musterabgleich an den entsprechenden Handler weitergeleitet.
Teams-Aktivitätshandler
Der Aktivitätshandler ist der Kern der Funktionalität eines Agents und verwaltet und verarbeitet Benutzerinteraktionen. Im Teams SDK v2:
- Sie instanziieren ein
AppObjekt und registrieren Handler dafür. - Handler erhalten ein typisiertes Kontextobjekt (
IActivityContextin TypeScript,IContext<TActivity>in C#,ActivityContext[TActivity]in Python). - Antworten und proaktive Nachrichten werden über
ctx.reply()oderctx.send()gesendet.
Wenn ein Teams-Agent eine Aktivität empfängt, leitet das SDK sie über den registrierten Handler weiter. Teams-spezifische Ereignisse (Kanallebenszyklus, Mitgliederänderungen usw.) werden als eigenständige benannte Ereignisse angezeigt, sodass Sie sie nicht manuell überprüfen channelData.eventType müssen.
Hinweis
Wenn die Verarbeitung einer Agentaktivität länger als 15 Sekunden dauert, sendet Teams eine Wiederholungsanforderung an den Agentendpunkt, sodass möglicherweise doppelte Anforderungen angezeigt werden.
Codeausschnitte für Aktivitätshandler
Die folgenden Codeausschnitte zeigen Teams-Aktivitätshandler für Kanal- und Teamlebenszyklusereignisse.
Agents werden mithilfe des Microsoft.Teams.Apps Pakets erstellt. Sie instanziieren AN App - und Kettenhandlerregistrierungen mithilfe von Erweiterungsmethoden wie OnMessage(), OnChannelCreated()usw. Alle Handler erhalten ein IContext<TActivity> Objekt.
OnChannelCreated
using Microsoft.Teams.Apps;
WebApplicationBuilder builder = WebApplication.CreateSlimBuilder(args);
builder.Services.AddTeamsBotApplication();
WebApplication app = builder.Build();
TeamsBotApplication teams = app.UseTeamsBotApplication();
teams.OnChannelCreated(async (context, cancellationToken) =>
{
var channel = context.Activity.ChannelData.Channel;
var team = context.Activity.ChannelData.Team;
// Code logic here
});
OnChannelDeleted
teams.OnChannelDeleted(async (context, cancellationToken) =>
{
// Code logic here
});
OnChannelRenamed
teams.OnChannelRenamed(async (context, cancellationToken) =>
{
// Code logic here
});
OnTeamRenamed
teams.OnTeamRenamed(async (context, cancellationToken) =>
{
// Code logic here
});
OnMembersAdded
teams.OnMembersAdded(async (context, cancellationToken) =>
{
foreach (var member in context.Activity.MembersAdded)
{
// Code logic here
}
});
OnMembersRemoved
teams.OnMembersRemoved(async (context, cancellationToken) =>
{
foreach (var member in context.Activity.MembersRemoved)
{
// Code logic here
}
});
OnMessageUpdate / OnMessageDelete
Nachrichtenbearbeitungen werden über OnMessageUpdatebehandelt. Vorläufige Löschungen werden über OnMessageDeletebehandelt.
teams.OnMessageUpdate(async (context, cancellationToken) =>
{
// Code logic here
});
teams.OnMessageDelete(async (context, cancellationToken) =>
{
// Code logic here
});
Beispiel für einen Agent-Aktivitätshandler
Der folgende Code enthält ein Beispiel für eine Agent-Aktivität:
using Microsoft.Teams.Apps;
WebApplicationBuilder builder = WebApplication.CreateSlimBuilder(args);
builder.Services.AddTeamsBotApplication();
WebApplication app = builder.Build();
TeamsBotApplication teams = app.UseTeamsBotApplication();
teams.OnMessage(async (context, cancellationToken) =>
{
var senderName = context.Activity.From.Name;
await context.SendAsync($"Hello <at>{senderName}</at>.", cancellationToken);
});
app.Run();
Agent-Logik
Die Agentenlogik enthält die grundlegenden Regeln und Entscheidungsrahmen, die die Handlungen und Interaktionen eines Agenten bestimmen. Sie beschreibt, wie der Agent Benutzereingaben interpretiert, Antworten formuliert und an Unterhaltungen teilnimmt.
Im Teams SDK v2 verarbeitet die Agent-Logik eingehende Aktivitäten aus einem oder mehreren Agent-Kanälen und generiert ausgehende Aktivitäten. Das gesamte Aktivitätsrouting wird von der App Instance übernommen – Sie registrieren die Handler, und das SDK verteilt Aktivitäten automatisch an sie.
Hauptaktivitätshandler
Die App Klasse macht Erweiterungsmethoden zum Registrieren von Handlern verfügbar. Die Methoden kehren für eine flüssige Verkettung zurück App .
| Ereignis | Erweiterungsmethode | Beschreibung |
|---|---|---|
| Jeder empfangene Aktivitätstyp | OnActivity(handler) |
Catch-all-Handler, der für jede Aktivität aufgerufen wird. |
| Nachrichtenaktivität empfangen | OnMessage(handler) |
Verarbeiten eingehender Textnachrichten. Übergeben Sie eine Regex-Zeichenfolge als erstes Argument für den Musterabgleich. |
| Unterhaltungsupdate erhalten | OnConversationUpdate(handler) |
Unformatierte Aktualisierungsaktivität der Unterhaltung. |
| Nicht-Agent-Mitglieder sind beigetreten | OnMembersAdded(handler) |
Wird ausgelöst, wenn MembersAdded.Length > 0. |
| Nicht-Agent-Mitglieder sind übrig geblieben | OnMembersRemoved(handler) |
Wird ausgelöst, wenn MembersRemoved.Length > 0. |
| Installation hinzugefügt | OnInstall(handler) |
Agent wurde installiert. |
Teams-spezifische Aktivitätshandler
| Ereignis | Erweiterungsmethode | Beschreibung |
|---|---|---|
| Kanal erstellt | OnChannelCreated(handler) |
Ein Teams-Kanal wurde erstellt. |
| Kanal gelöscht | OnChannelDeleted(handler) |
Ein Teams-Kanal wurde gelöscht. |
| Kanal umbenannt | OnChannelRenamed(handler) |
Ein Teams-Kanal wurde umbenannt. |
| Team umbenannt | OnTeamRenamed(handler) |
Das Team wurde umbenannt. |
| Nachricht bearbeitet | OnMessageUpdate(handler) |
Eine Nachricht wurde bearbeitet. |
| Nachricht vorläufig gelöscht | OnMessageDelete(handler) |
Eine Nachricht wurde vorläufig gelöscht. |
Aufrufaktivitäten in Teams
| Invoke-Typ | Erweiterungsmethode | Beschreibung |
|---|---|---|
CardAction.Invoke |
OnExecuteAction(handler) |
Eine Aktivität zum Aufrufen einer Karte-Aktion wurde empfangen. |
task/fetch |
OnTaskFetch(handler) |
Ein Dialog (Aufgabenmodul) wurde geholt. |
task/submit |
OnTaskSubmit(handler) |
Ein Dialog (Aufgabenmodul) wurde gesendet. |
fileConsent/invoke |
OnFileConsent(handler) |
Eine Dateizustimmung Karte Aktivität erhalten wurde. |
signin/verifyState |
Automatisch vom SDK verarbeitet (OAuth-Fluss) | Aktivität zur Überprüfung des Anmeldestatus. |
Nachdem Sie sich nun mit den Agent-Aktivitätshandlern vertraut gemacht haben, sehen wir uns an, wie sich Agents je nach Konversation und den empfangenen oder gesendeten Nachrichten unterschiedlich verhalten.
Empfehlungen
Ein ausführlicher Dialog zwischen Ihrem Agent und dem Benutzer ist ein langsamer und komplexer Weg, um eine Aufgabe zu erledigen. Ein Agent, der übermäßige Befehle unterstützt, insbesondere eine breite Palette von Befehlen, ist nicht erfolgreich oder wird von den Benutzern nicht positiv bewertet.
Vermeiden von Mehrfachdurchläufen im Chat Ein umfangreicher Dialog verlangt vom Entwickler, den Status beizubehalten. Um diesen Status zu beenden, muss ein Benutzer entweder eine Zeitüberschreitung aufweisen oder "Abbrechen" auswählen. Auch der Prozess ist mühsam. Sehen Sie sich beispielsweise das folgende Unterhaltungsszenario an:
BENUTZER: Plane eine Besprechung mit Marie.
AGENT: Ich habe 200 Ergebnisse gefunden, fügen Sie einen Vor- und Nachnamen hinzu.
BENUTZER: Plane eine Besprechung mit Marie Krause.
AGENT: OK, wann würden Sie sich gerne mit Megan Bowen treffen?
BENUTZER: um 13:00 Uhr.
AGENT: An welchem Tag?
Unterstützt sechs oder weniger häufige Befehle Da es im aktuellen Agentmenü nur sechs sichtbare Befehle gibt, ist es unwahrscheinlich, dass weitere Befehle mit irgendeiner Häufigkeit verwendet werden. Agenten, die tief in ein bestimmtes Gebiet vordringen, anstatt zu versuchen, ein breiter Assistent zu sein, arbeiten und schneiden besser ab.
Optimieren der Größe der Wissensdatenbank für schnellere Interaktion Einer der Nachteile von Agents besteht darin, dass es schwierig ist, eine große Abruf-Wissensdatenbank mit nicht geordneten Antworten zu pflegen. Agenten eignen sich am besten für kurze, schnelle Interaktionen und nicht für das Durchsuchen langer Listen auf der Suche nach einer Antwort.
Hinweis
Die Teams-Plattform unterstützt nur Transport Layer Security (TLS) Version 1.2. Stellen Sie sicher, dass Sie Ihre Agent-Umgebung entsprechend konfigurieren.
Entdecken Sie weitere Agent-Features
Zusätzlich zu den herkömmlichen Agent-Funktionen können Sie auch erweiterte Funktionen erkunden, die in einer Teams-Agent-App verfügbar sind:
- Rufen Sie den spezifischen Kontext zu Teams für Ihren Agenten ab.
- Telefonate und Onlinebesprechungen.
- Aktivieren Sie SSO für Ihre App.
Codebeispiel
| Beispielname | Beschreibung | TypeScript | C# | Python |
|---|---|---|---|---|
| Teams-Unterhaltungs-Agent | Diese App veranschaulicht grundlegende Agent-Ereignisse. | View | View | View |