在 AI 代理的上下文中,履行是指執行涉及與外部系統交互以通過 API 檢索、操作或儲存數據的任務。 本文概述了為跟蹤包裹創建的示例代理。 您可以在為數位和語音互動建立新的 AI 代理時使用此代理範本。

對於數位管道,必須通過用於部署 AI 代理的連接流來協調履行。 以包跟蹤代理為例,您可以在創建新的腳本化代理時從範本導入該代理,該流也可以在創建新的 Webex Connect 流時導入。 除了履行之外,此連接流還會根據用戶的最後一個意圖將使用者路由到不同的代理佇列。

  1. 完成腳本代理的設置后,確定需要履行的回應。

    在範例代理中,“trackPackageResponse”需要履行。

  2. 在這些範本中,配置將在履行時向用戶顯示的“保留回應”。

    在此範例中,為 'trackPackageResponse' 設定保留回應。

  3. 在流中,使用 數據分析器 節點分析 AI 代理回應中的代理會話元數據 (輸出變數) 以獲取回應名稱。

    您可以通過從會話下載事務資訊來獲取數據解析器節點的示例輸入,方法是選擇適當的事務並從下載的檔中選擇“GeneratedDf”鍵的值。

  4. 如果要在代理切換時執行基於意圖的路由,則可以在同一步驟中獲取上一個活動意圖的值。

  5. 如果您不希望下載和分析示例 JSON,則可以使用 \$.model_state.template_key 作為回應名稱, 使用 \$.previous_intent_model_state.intent.name 作為之前的意向名稱。

    在我們的示例中,我們對這些值使用流變數“responseKey”和“previousIntent”。

  6. 使用分支 節點檢查回應是否需要履行。

    • 分支節點通過“以上都不是”節點結果退出,以獲取不需要履行的回應。

    • 在我們的示例中,由於需要實現“trackPackageResponse”,請在我們的分支節點中檢查“responseKey”的值。

  7. 對於需要履行的回應,請使用 HTTP 節點進行外部 API 調用。

    • 您可以通過導入範例並獲取輸出變數來解析來自同一節點的 HTTP 節點回應的有用資訊。

    • 在此示例中,我們獲取包裹的“估計交付”和“狀態”。

  8. 使用 評估 節點處理履行回應,以制定代理回應。

    在我們的示例中,我們初始化“fulfilmentResp”變數,並根據包裹狀態和預計送達情況設置其值。

  9. 將履行回應發送給使用者並將其附加到對話中。

  10. 環回 「接收 」節點,以保持使用者和 AI 代理之間的對話繼續進行。

基於意圖的代理切換

在代理切換時,檢查佇列任務 節點之前 通過 分支 節點的最後一個活動意圖。

檢查“previousIntent”的值,並根據您的要求分支到不同的佇列。 在此示例中,如果客戶在「跟蹤包裹」意圖之後請求代理移交,請將他們路由到「專家」佇列。 所有其他值都會導致轉到「聊天」佇列。

對於語音管道,必須通過自定義事件將對話的控制權交還給語音流,然後使用履行數據恢復 AI 代理對話來編排履行。 為此,將重用用於跟蹤包的示例腳本代理。 該流程在 Webex Contact Center Flow Designer 的“從範本導入”中可用。 除了履行之外,此流程還根據用戶的最後一個意圖將使用者路由到不同的代理佇列。

分步指南:履行

  1. 添加「自定義事件」回應類型。

    • 找到要為其添加自定義事件的範本鍵。 在這種情況下,請使用“trackPackageResponse”範本密鑰。

    • 將「自定義事件」回應類型添加到範本鍵。

  2. 配置自訂事件回應。

    • 新增事件名稱和事件有效負載:

      1. 對於自定義事件回應,請提供事件名稱。在本例中為“TrackPack_Exit”。

      2. 添加事件有效負載,其中包含將傳遞到流的數據。 這必須為 JSON 格式。 在此示例中, {“PackageNumber”:“${entity.PackageNum}“}.

  3. 在流中使用事件有效負載。

    • 存取 Virtual Agent V2 Activity Metadata:
      1. 在語音流配置中,您添加的事件有效負載可用作 Virtual Agent V2 活動元數據的一部分

      2. 建立流變數 PackageNum。

      3. 使用 Parse 活動選擇 虛擬代理 V2 活動元數據作為輸入變數。

      4. 將輸出變數設置為“PackageNum”,將其路徑表達式設置為“$”。PackageNum'(基於在代理回應中設定的事件負載的結構) 。

    • HTTP 活動中使用中繼資料:
      1. 使用流中已處理元數據中的“PackageNum”變數來跟蹤包。

      2. 導入附加的流以查找 HTTP 活動的詳細資訊

      3. 定義流變數“估計交付”並將其設置為“$.estimated_delivery”和另一個流變數“packStatus”並將其設置為 $.status。

    • 根據 HTTP 活動新增條件:
      1. 向流添加新的條件 活動。 此活動用於檢查 HTTP 活動的回應 (包是否存在及其狀態)。

        在此示例中,表達式  {{ HTTPRequest_8l3.httpStatusCode == 404 }} 用於檢查是否未找到包。

  4. 根據條件新增 「設置變數 」活動:
    1. 對於包不存在的條件:

      • 在找不到包的分支下,添加“設置變數” 活動。
      • 將 packageResp (另一個流變數) 設定為:

        未找到包含這些詳細資訊的包。

    2. 對於包存在的條件:

      • 在找到包的分支 (即 HTTP 狀態代碼不等於 404) 下,添加另一個 “設置變數” 活動。
      • 將 packageResp (另一個流變數) 設定為:

        您的包裹已被取走。 它將由 {{估計交付}} 交付。

    3. 再添加兩個設置變數活動以配置事件名稱和事件數據。 此數據將傳遞到虛擬代理 V2 活動。

      • 創建流變數 event_name 和 event_data。

      • 將 event_name 設定為 TrackPack_Entry,將 event_data 設定為 {'packageResp':'{{packageResp}}' | json}。

  5. 環回 虛擬代理 V2 活動:

    • 設定虛擬代理 V2 活動:
      1. 將最終 的「設置變數 」活動連接到虛擬代理 V2 活動。

      2. 將事件名稱設置為 {{event_name}}。

      3. 將事件數據設置為 {{event_data}}。

  6. 在虛擬代理中處理傳入事件:

    1. 新增樣本金鑰:

      1. 轉到左側面板上的回復 Tab。

      2. 添加一個名為 packageStatus 的新範本鍵。

    2. 設定傳入事件:

      1. 在語音通道下,將傳入事件設置為 TrackPack_Entry (或發送到流中的虛擬代理 V2 活動的任何內容)。

    3. 設定回應:

      1. 將回應設定為:<speak> <say-as interpret-as=“date”> ${eventStore.packageResp} </say-as>。 我能幫你做點別的嗎?</說話>

        此回應使用從流在有效負載中發送的變數。 作為事件數據的一部分發送的任何變數都可供開發人員以 ${eventStore.<variable_name>} 的形式訪問。

        這也使用 SSML 標籤。 具體而言,SSML 標記允許您控制文本轉語音引擎如何解釋和朗讀文本。 此標記可用於指定數位、日期、時間、位址和其他文本的發音方式。 在這裡,我們將其用於日期。

基於先前意圖的代理路由

  • 如果虛擬代理 V2 活動通過「升級」輸出退出,請使用 Parse 活動從代理元數據中獲取上一個意圖。

  • 使用 Case 活動檢查確定排隊邏輯的上一個意向的不同值。 在此示例中,我們檢查之前的意圖是否為“跟蹤包”。

  • 案例 活動輸出附加到相應的佇列接觸邊緣。