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);
}
}