Dynamics 365 Contact Centerのコンテキストメッセージはイベント活動としてAIエージェントに送信されます。 顧客情報、ライブ作業項目、会話 ID などのコンテキスト情報は、アクティビティ JSON の一部としてエージェントに送信されます。 JSON は、ほとんどのチャネルでは startConversation 型に、音声会話では 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);
}
}