共用方式為


設定對一般業務開發中心的移交

Copilot Studio 讓您透過互動中心將代理程式交談無縫、上下文地移交給人工代理程式。

透過一些自訂開發,您可以設定代理程式將交談移交給任何參與中心。 本指南描述您如何執行此動作。

必要條件

重要

本節中的一些說明需要您或您的開發人員進行軟體開發。 它適用於有經驗的 IT 專業人員,例如對開發人員工具、公用程式及 IDE 有深刻了解的 IT 系統管理員或開發人員,他們希望將第三方參與中心與 Copilot Studio 整合在一起。

概觀

顯示一般配接器資料流程的圖解。

完全移交給參與中心遵循以下模式:

  1. 客戶與參與中心的聊天畫布互動。

  2. 參與中心透過內建聊天路由功能將傳入聊天路由至代理程式。

  3. 自訂適配器將傳入的聊天訊息從參與中心中繼到 Copilot Studio 代理程式。

  4. 一旦客戶觸發交接,Copilot Studio 就以完整的交談情境開始交接。

  5. 自訂配接器會攔截移交訊息、分析完整的交談上下文,並根據可用性將升級的交談無縫傳遞給訓練有素的真人專員。

  6. 客戶的聊天會根據上下文無縫地移交給可以恢復交談的人工代理程式。

若要將交談移交給真人專員,您需要建立自訂的移交配接器。

建立自訂的移交配接器

適配器透過在客戶、代理程式和手動代理程式之間轉發和轉換訊息來橋接與代理程式互動中心之間的交談。

大多數流行的代理程式參與中心都提供軟體開發套件 (SDK) 或公開記錄其 API,使您能夠建立此類適配器。

自訂適配器可能包含的內容超出了本文件的範圍。 不過,以下範例切換訊息是基於 Copilot Studio 產生的內容 (作為我們標準移交到真人專員體驗的一部分),可協助您入門。

這些程式碼片段和範例可讓您從交談中提取上下文,以便將代理程式交談無縫地、上下文地移交給任何通用參與中心。

範例移交訊息承載

目前僅支援透過 Direct Line 進行移交。 程式透過 Direct Line 與代理程式互動。 移交時,會引發稱為 handoff.initiate 的事件活動,並傳送給配接器。

您可以在 GitHub 網站上看到完整的範例移交訊息活動

從移交訊息提取上下文

若要使用交談上下文,您必須剖析 handoff.initiate 事件活動。 下列程式碼片段會剖析 handoff.initiate 事件活動,並抽取交談上下文。 請參閱 GitHub 上的完整程式碼範例

public void InitiateHandoff(string botresponseJson)
{
    BotResponse response = JsonConvert.DeserializeObject<BotResponse>(botresponseJson);

    // Look for Handoff Initiate Activity. This indicates that conversation needs to be handed off to agent
    Activity handoffInitiateActivity = response.Activities.ToList().FirstOrDefault(
        item => string.Equals(item.Type, ActivityTypes.Event, System.StringComparison.Ordinal)
        && string.Equals(item.Name, HandoffInitiateActivityName, System.StringComparison.Ordinal));

    if (handoffInitiateActivity != null)
    {
        // Read transcript from attachment
        if (handoffInitiateActivity.Attachments?.Any() == true)
        {
            Attachment transcriptAttachment = handoffInitiateActivity.Attachments.FirstOrDefault(a => string.Equals(a.Name.ToLowerInvariant(), TranscriptAttachmentName, System.StringComparison.Ordinal));
            if (transcriptAttachment != null)
            {
                Transcript transcript = JsonConvert.DeserializeObject<Transcript>(transcriptAttachment.Content.ToString());
            }
        }

        // Read handoff context
        HandoffContext context = JsonConvert.DeserializeObject<HandoffContext>(handoffInitiateActivity.Value.ToString());

        // Connect to Agent Hub
        // <YOUR CUSTOM ADAPTER CODE GOES HERE>
    }
}