Freigeben über


Konfigurieren des Agentkontexts in Azure-Agents

Hinweis

Der Copilot Studio-Bot wird in „Copilot-Agent“ (Agent oder KI-Agent) umbenannt. Der menschliche Agent wird nun in Kundenservicemitarbeiter (Servicemitarbeiter oder Mitarbeiter) umbenannt. Möglicherweise stoßen Sie auf Verweise auf die alten und neuen Begriffe, während wir die Benutzeroberfläche, die Dokumentation und die Schulungsinhalte des Produkts aktualisieren.

Für Azure-Agents müssen Sie das Agent-SDK installieren und die Omnichannel-Middleware instanziieren, bevor Sie den Agentkontext konfigurieren.

Installieren des Bot-SDK in Ihrem Projekt

  1. Um den NuGet-Paket-Manager zu öffnen, klicken Sie mit der rechten Maustaste auf Ihr Projekt, und wählen Sie dann "NuGet-Pakete verwalten" aus.

  2. Wählen Sie im NuGet-Paket-Manager die Paketquelle als nuget.org aus, und suchen Sie nach "Microsoft.Dynamics.AgentsSDK.Middleware". Wählen Sie das Paket und dann "Installieren" aus. Weitere Informationen finden Sie auf der Nuget-Seite.

    Alternativ können Sie den folgenden Befehl in nuGet CLI verwenden.

    Install-Package Microsoft.Dynamics.AgentsSDK.Middleware
    

Das Agent-SDK ist jetzt installiert, und die Omnichannel-Middleware ist in Ihrem Projekt verfügbar.

Verwenden Sie die Omnichannel-Middleware in Ihrem Agenten-Code.

  1. Öffnen Sie die AdapterWithErrorHandler.cs Datei.

  2. Fügen Sie die Importanweisung hinzu, und instanziieren Sie die Omnichannel-Middleware.

    using Microsoft.Dynamics.AgentsSDK.Middleware.Core; 
    Use(new OmnichannelMiddleware()); 
    
    using System.Globalization;
    using System.Text;
    using Microsoft.Agents.Connector;
    using Microsoft.Agents.Core;
    using Microsoft.Agents.Core.Errors;
    using Microsoft.Extensions.Logging;
    using Microsoft.Dynamics.AgentsSDK.Middleware.Core;
    
    namespace Microsoft.CCaaS.MessagingRuntime.TestAgent;
    
    public class AdapterWithErrorHandler : CloudAdapter
    {
        public AdapterWithErrorHandler(
            IChannelServiceClientFactory channelServiceClientFactory,
            IActivityTaskQueue activityTaskQueue,
            ILogger<CloudAdapter> logger)
            : base(channelServiceClientFactory, activityTaskQueue, logger)
        {
            // OmnichannelMiddleware has special handling for OC event messages
            Use(new OmnichannelMiddleware());
    
            OnTurnError = async (turnContext, exception) =>
            {
                var exceptionInfo = GetExceptionInfo(exception);
                logger.LogAppException(exceptionInfo, exception);
    
                // Send a message to the user
                await turnContext.SendActivityAsync($"The bot encountered an error or bug.{Environment.NewLine}{exceptionInfo}");
                await turnContext.SendActivityAsync("To continue to run this bot, please fix the bot source code.");
    
                // Send a trace activity, which will be displayed in the Bot Framework Emulator
                await turnContext.TraceActivityAsync("OnTurnError Trace", exception.Message, "https://www.botframework.com/schemas/error", "TurnError");
            };
        }
    
        private static string GetExceptionInfo(Exception exception)
        {
            var sb = new StringBuilder();
    
            // Pull some well known info from ErrorResponse.Exception if available.
            if (exception is ErrorResponseException responseException)
            {
                sb.AppendLine(CultureInfo.InvariantCulture, $"Error code: {responseException.Body?.Error?.Code ?? "NA"}");
                sb.AppendLine(CultureInfo.InvariantCulture, $"Error message: {responseException.Body?.Error?.Message ?? "NA"}");
            }
    
            sb.AppendLine(CultureInfo.InvariantCulture, $"Exception message: {exception.Message}");
            sb.AppendLine();
            sb.AppendLine(exception.ToString());
    
            var exceptionInfo = sb.ToString();
            return exceptionInfo;
        }
    }
    

Nächste Schritte

Analysieren von JSON-Aktivitäten zum Abrufen des Agentkontexts

Benutzerdefinierten Kontext senden
setContextProvider
Azure-Agenten integrieren