解析事件活动 JSON 以获取代理上下文

Dynamics 365 Contact Center 中的上下文消息作为事件活动发送给 AI 代理。 上下文信息(如客户信息、实时工作项或对话 ID)作为活动 JSON 的一部分发送给代理。 对于大多数频道,JSON 可以是 startConversation 类型,对于语音对话,JSON 可以是 ConversationUpdate

在代理代码中获取和使用代理的上下文

要处理这些上下文消息,请使用活动处理程序并在代理代码中覆盖它们。 有关如何使用活动处理程序的信息,请参阅 使用活动处理程序的事件驱动对话

在以下示例中,当收到事件活动时,将调用该 OnEventActivityAsync 方法来提取和使用上下文。

namespace Microsoft.CCaaS.MessagingRuntime.TestAgent.Agents;

public class TestAgentApplication : AgentApplication
{
    private readonly IContextManager _contextManager;

    public TestAgentApplication(AgentApplicationOptions options, IContextManager contextManager) : base(options)
    {
        _contextManager = contextManager ?? throw new ArgumentNullException(nameof(contextManager));
        OnConversationUpdate(ConversationUpdateEvents.MembersAdded, OnMembersAddedAsync);
        OnEvent(ActivityTypes.Event, OnEventActivityAsync);
        OnActivity(ActivityTypes.Message, OnMessageActivityAsync, rank: RouteRank.Last);
    }

    protected async Task OnMessageActivityAsync(ITurnContext turnContext, ITurnState turnState, CancellationToken cancellationToken)
    {
        ArgumentNullException.ThrowIfNull(turnContext);
        var text = turnContext.Activity.Text?.ToLower(CultureInfo.InvariantCulture);
        var responseActivity = Activity.CreateMessageActivity();
        Responses.BuildCustomerFileAttachmentResponse(turnContext, responseActivity);
    }
}

后续步骤

用于分析活动 JSON 的代码示例

setContextProvider
集成 Azure 代理