應對手冊範例

每個 playbook 應有一或多個範例。 這些範例是使用者與 playbook 之間的對話樣本,包括代理執行的對話和動作。這些範例實際上就是 LLM 的少量樣本提示。

控制台提供介面,可讓您輸入動作。

多語言代理程式

如要讓代理處理多種語言,範例應使用各種語言。

輸入摘要和輸出摘要範例

除了輸入和輸出參數外,Playbook 還支援接收輸入摘要和發出輸出摘要,以便與其他 Playbook 交換資訊。摘要適合用於在應對手冊之間傳遞抽象的背景資訊,而參數則更適合用於在應對手冊之間傳遞結構化、定義明確的欄位。參數是流程和應對手冊之間交換資料的唯一方式。

在範例中加入相關輸入摘要,讓應對手冊在執行階段根據輸入摘要調整動作。新增輸出摘要,包括範例對話的相關準確詳細資料,讓 Playbook 瞭解哪些細節是摘要重點。

範例狀態

在對話中的特定時間點,Playbook 會處於下列其中一種狀態:

  • OK:應對手冊已成功達成目標,控制權將轉移至父項應對手冊。
  • CANCELLED:使用者決定不繼續執行指派給應對手冊的目標。控制權現在會轉移至父項應對手冊。如果父項 playbook 是 CX 流程,系統會在流程執行前偵測使用者輸入內容的意圖。
  • FAILED:發生錯誤 (例如工具傳回 500 錯誤),因此應對手冊無法繼續執行目標。工作階段會以失敗狀態結束。系統會在回覆中加入 EndInteraction 訊息。
  • ESCALATED:Playbook 判定無法達成目標,需要將情況提報給真人。工作階段結束時,狀態會是「已提報」。 系統會在回覆中加入 EndInteraction 訊息。
  • PENDING:對話仍在應對手冊中繼續。

頂層範例和其 Playbook 叫用應以狀態表示,該狀態對應至參照的 Playbook。

選取策略

選取策略設定可控管是否將範例納入傳送至 LLM 的 playbook 提示詞。可用選項如下:

  • 動態選取:根據範例與目前對話內容的關聯性,有條件地納入範例。如果提示詞接近詞元數量上限,則可省略範例。

  • 一律選取:無論對話情境為何,一律納入範例。如果提示詞接近詞元數量上限,則可能會省略範例。

  • 永不選取:提示中一律不包含該範例。範例不會影響 playbook 的成效。 這項設定適合用於暫時排除範例,以便進行測試。

新增動作

應對手冊中的範例包含一系列動作。這些動作的組合可能不盡相同,但主要描述使用者與緊急應變手冊之間的互動,以及為滿足使用者查詢或需求而採取的動作。

在範例中新增動作的方法有兩種:

  • 如要手動新增動作,請按一下右側窗格底部的「+」按鈕,或將指標懸停在現有動作上時,按一下「Add action」按鈕。點選「+ 範例」選項建立新範例,或編輯現有範例時,可以使用這些選項。
  • 如要根據現有的 Playbook 指示自動生成動作,請在右側窗格底部的「Enter user input」(輸入使用者輸入內容) 欄位中輸入使用者輸入內容。建立或編輯範例時,可以使用這個選項。或者,您也可以在右側的「Preview playbook」(預覽 Playbook) 窗格中,於執行階段測試 Playbook 時使用這個選項。如要將動作儲存至「Preview playbook」(預覽 Playbook) 窗格中的範例,請在「Preview playbook」(預覽 Playbook) 窗格左側的叫用清單中選取 Playbook 叫用,然後按一下「Save example」(儲存範例)。

請務必檢查自動生成的動作是否正確,並視需要編輯。如果 Playbook 只有少數或沒有範例,這點尤其重要。

playbook 支援下列類型的動作:

應對手冊回覆

應對手冊對使用者查詢的回覆。

使用者輸入內容

使用者查詢。

使用工具

這是工具叫用,用於取得滿足使用者查詢所需的額外資訊。這項動作應指定下列詳細資料:

  • Tool:應叫用的工具名稱。

  • Action:要叫用的 OpenAPI 工具作業名稱。如果是資料儲存庫工具和函式工具,動作名稱會與工具名稱相同。

  • 工具輸入:要納入工具呼叫的輸入內容。這些資訊通常來自先前與使用者的對話。

    如果是 Open API 工具,requestBody、POSTPUT 和 PATCH 方法類型必須使用 JSON。

    createPet 動作的開放式 API 工具 requestBody輸入範例:

    {
      "id": 1,
      "name": "Luna"
    }
    

    如果是資料儲存庫工具,requestBody 範例中必須提供查詢,其他欄位則為選填。

    {
      "query": "Where is my nearest store?",
      "filter": "country: ANY(\"United States\")",
      "userMetadata": {
        "userCity": "San Francisco",
      },
      "fallback": "We don't have any stores in your area."
    }
    
  • 工具輸出內容:工具叫用的回覆。這是工具針對指定輸入內容傳回的有效 JSON 回覆。如果是 Open API 工具,也可以是字串錯誤 (例如「404 Not found」)。

    listPets 動作的開放式 API 工具輸出內容範例:

    {
      "pets": [
        {
          "id": 1,
          "name": "Luna"
        },
        {
          "id": 2,
          "name": "Charlie"
        }]
    }
    

    樣本資料儲存庫工具輸出內容範例:

    {
      "answer": "Here's the address to your nearest store ...",
      "snippets": [
        {
          "title": "San Francisco Downtown",
          "uri": "https://www.example.com/San_Francisco_Downtown",
          "text": "Address for San Francisco Downtown .."
        }
      ]
    }
    

為確保應對手冊安全無虞,請一併提供工具叫用失敗時,應對手冊應如何回應的範例。Open API 工具叫用失敗,可能會在工具輸出內容中顯示為錯誤字串 (「404 not found」)。如果是資料儲存庫工具,fallback 輸入內容可用於指定在沒有摘要答案時如何回覆。

如果希望資料儲存庫工具在 Playbook 回覆中包含 URI,請新增範例,並在其中加入您希望 Playbook 回覆的 URI。如果這個 URI 來自資料儲存庫工具,則資料儲存庫工具輸出內容應包含與教戰手冊回覆中相符的 URI。請注意,在這種情況下無法使用 fallback,因為這會停用 LLM Playbook 的功能,無法重新撰寫資料儲存庫工具答案,在 Playbook 回覆中加入 URI。

包含工具使用動作的範例可能會相當冗長,導致輸入權杖限制用量增加。為確保有效率地使用權杖,請確認工具輸出內容簡潔,且包含與 Playbook 目標相關的資訊。如果是資料儲存庫工具,請考慮從範例中移除程式碼片段,因為這些片段可能會導致輸入權杖用量偏高。

叫用應對手冊

如果應對手冊應叫用其他工作應對手冊來滿足使用者查詢,就會使用這項動作。這項動作應指定下列詳細資料:

  • Playbook:要叫用的應對手冊名稱。
  • Playbook 叫用輸入摘要:先前對話中相關部分的摘要,有助於叫用 Playbook。
  • 輸入參數:要傳遞至應對手冊的輸入參數。
  • Playbook 叫用輸出摘要:Playbook 達成目標後應生成的摘要。
  • 輸出參數:Playbook 達成目標後產生的輸出參數。

應對手冊轉換

應對手冊轉換動作是終端動作 (不應接續其他動作),表示例行程序應對手冊已決定退出,並轉換至目標例行程序應對手冊。請注意,由於這項動作表示應對手冊已退出,因此請將應對手冊的輸出參數新增至範例的應對手冊輸出內容。

Flow 叫用

如要讓工作應對手冊叫用流程,請使用這項動作。這項動作應指定下列詳細資料:

  • Flow:要叫用的流程名稱。
  • 流程輸入參數:要傳遞至流程的輸入參數。
  • 流程傳回參數:流程傳回的輸出參數。

流程轉換

流程轉換動作是終端動作 (不應接續其他動作),表示例行程序應對手冊已決定退出並轉換至目標流程。請注意,由於這項動作表示應對手冊會退出,因此請將應對手冊的輸出參數新增至範例的應對手冊輸出內容。