Dela via


Konfigurera agentkontext i Azure-agenter

Anmärkning

Copilot Studio-roboten byter namn till Copilot-agent (Agent eller AI-agent). Mänskliga handläggare har nu bytt namn till kundtjänstrepresentant (servicehandläggare eller representant). Du kan stöta på referenser till de gamla och nya termerna när vi uppdaterar produktens användargränssnitt, dokumentation och utbildningsinnehåll.

För Azure-agenter måste du installera agent-SDK:t och instansiera Omnichannel-mellanprogrammet innan du konfigurerar agentkontexten.

Installera robot-SDK:et i projektet

  1. Öppna NuGet Package Manager genom att högerklicka på projektet och sedan välja Hantera NuGet-paket.

  2. I NuGet Package Manager väljer du paketkällan som nuget.org och bläddrar efter "Microsoft.Dynamics.AgentsSDK.Middleware". Välj paketet och välj sedan Installera. Läs mer på Nuget-sidan.

    Du kan också använda följande kommando i NuGet CLI.

    Install-Package Microsoft.Dynamics.AgentsSDK.Middleware
    

Agent-SDK:et är nu installerat och Omnichannel-mellanprogrammet är tillgängligt i projektet.

Använda Omnichannel-mellanprogrammet i din agentkod

  1. Öppna filen AdapterWithErrorHandler.cs .

  2. Lägg till import-instruktionen och instansiera Omnichannel-mellanprogrammet.

    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ästa steg

Parsa aktivitets-JSON för att hämta agentkontext

Skicka anpassad kontext
setContextProvider
Integrera en Azure-agent