每個 playbook 應有一或多個範例。這些範例是使用者與 playbook 之間的對話樣本,包括代理執行的對話和動作。這些範例實際上就是 LLM 的少量樣本提示。
您可以在控制台介面輸入動作。
多語言代理程式
如果代理程式會處理多種語言,請在範例中使用每種語言。
輸入和輸出摘要範例
除了輸入和輸出參數外,playbook 還支援接收輸入摘要和發出輸出摘要,以便與其他 playbook 交換資訊。摘要適合在應對手冊之間傳遞抽象的情境資訊,而參數則更適合在應對手冊之間傳遞結構化、定義明確的欄位。參數是在流程和應對手冊之間交換資料的唯一方式。
在範例中加入相關輸入摘要,協助應對手冊在執行階段根據這些輸入摘要調整動作。新增輸出摘要,其中包含範例對話的相關準確詳細資料,讓 Playbook 瞭解哪些細節是摘要重點。
範例狀態
在對話中的特定時間點,Playbook 會處於下列其中一種狀態:
OK:應對手冊成功達成目標,並將控制權轉移至父項應對手冊。CANCELLED:使用者決定不繼續執行指派給 Playbook 的目標,並將控制權轉移至父項 Playbook。如果父項應對手冊是 CX 流程,Dialogflow CX 會在流程執行前偵測使用者輸入意圖。FAILED:發生錯誤 (例如工具傳回 500 錯誤),導致 Playbook 無法繼續執行目標。工作階段結束,狀態為失敗。系統會在回應中加入 EndInteraction 訊息。ESCALATED:Playbook 判定無法達成目標,需要將情況提報給真人。工作階段結束時,狀態為「已提報」。 系統會在回應中加入 EndInteraction 訊息。PENDING:在應對手冊中繼續對話。
您應使用與參照的應對手冊相對應的狀態,表示頂層範例及其應對手冊叫用。
選取策略
選取策略設定可控管是否將範例納入傳送至 LLM 的 Playbook 提示。
可用選項如下:
- 動態選取:系統會根據範例與目前對話內容的關聯性,有條件地納入範例。如果提示接近詞元限制,可以省略範例。
- 一律選取:無論對話情境為何,一律包含範例。如果提示接近詞元限制,可以省略範例。
- 一律不選取:提示中不含範例。範例不會影響教戰手冊的成效。這項設定適合用於暫時排除範例,以便進行測試。
新增動作
應對手冊中的範例包含一系列動作。這些動作可以有不同的組合,但主要描述您與 Playbook 之間的互動,以及為滿足查詢或要求而採取的動作。
您可以透過兩種方式在範例中新增動作:
- 如要手動新增動作,請按一下右側窗格底部的「+」按鈕,或將指標懸停在現有動作上時,按一下「Add action」按鈕。點選「+ Example」選項建立新範例,或編輯現有範例時,請使用這些選項。
- 如要根據現有的 Playbook 指示自動生成動作,請在右側窗格底部的「Enter user input」(輸入使用者輸入內容) 欄位中輸入使用者輸入內容。建立或編輯範例時,請使用這個選項。或者,在右側的「Preview playbook」(預覽 Playbook) 窗格中,於執行階段測試 Playbook 時,也可以使用這個選項。如要將動作儲存至「Preview playbook」(預覽 Playbook) 窗格中的範例,請在「Preview playbook」(預覽 Playbook) 窗格左側的叫用清單中選取 Playbook 叫用,然後按一下「Save example」(儲存範例)。
檢查自動產生的動作是否正確,並視需要編輯。如果 Playbook 只有少數或沒有範例,這點尤其重要。
這份教戰手冊支援下列動作類型。
應對手冊回覆
提供應對手冊對使用者查詢的回覆。
使用者輸入內容
輸入使用者查詢。
使用工具
使用工具叫用,取得滿足使用者查詢所需的額外資訊。
這項動作會指定下列詳細資料:
- Tool:必須叫用的工具名稱。
- 動作:必須叫用的 OpenAPI 工具作業名稱。如果是資料儲存庫工具和函式工具,動作名稱會與工具名稱相同。
工具輸入:工具呼叫中要包含的輸入內容。這些輸入內容通常來自先前與使用者的對話回合。
如果是 OpenAPI 工具,
POST、PUT和PATCH方法類型必須使用requestBodyJSON。createPet 動作的 OpenAPI 工具
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 回覆。如果是 OpenAPI 工具,也可以是字串錯誤 (例如「404 Not found」)。
listPets 動作的 OpenAPI 工具輸出內容範例:
{ "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 .." } ] }
為確保應對手冊安全無虞,請提供工具叫用失敗時,應對手冊如何回應的範例。您可以在工具輸出內容中,將 OpenAPI 工具叫用失敗表示為錯誤字串 (「404 not found」)。如果是資料儲存庫工具,您可以使用 fallback 輸入內容,指定在沒有摘要答案時如何回應。
如要讓資料儲存庫工具在 Playbook 回覆中加入 URI,請新增包含所需 URI 的範例。如果這個 URI 來自資料儲存庫工具,則資料儲存庫工具輸出內容必須包含與 Playbook 回覆中的 URI 相符的 URI。
包含工具使用動作的範例可能會相當冗長,並增加輸入權杖限制消耗量。為有效使用權杖,請確保工具輸出內容簡潔,且包含與 Playbook 目標相關的資訊。如果是資料儲存庫工具,請考慮從範例中移除程式碼片段,因為這類片段會耗用大量輸入權杖。
叫用應對手冊
如果應對手冊需要叫用其他工作應對手冊來滿足使用者查詢,請使用這項動作。
為這項動作指定下列詳細資料:
- Playbook:要叫用的 Playbook 名稱。
- Playbook 叫用輸入摘要:先前對話中相關部分的摘要,對叫用的 Playbook 有幫助。
- 輸入參數:要傳遞至應對手冊的輸入參數。
- Playbook 叫用輸出摘要:Playbook 達成目標後應生成的摘要。
- 輸出參數:Playbook 達成目標後產生的輸出參數。
應對手冊轉換
應對手冊轉換動作是終端動作,不應接續其他動作,表示例行程序應對手冊已決定退出,並轉換至目標例行程序應對手冊。由於這項動作表示應對手冊會結束,因此請將應對手冊的輸出參數新增至範例的應對手冊輸出內容。
Flow 叫用
當工作應對手冊應叫用流程時,就會使用這項動作。
這項動作應指定下列詳細資料:
- Flow:要叫用的流程名稱。
- 流程輸入參數:要傳遞至流程的輸入參數。
- 流程傳回參數:流程傳回的輸出參數。
流程轉換
流程轉換動作是終端動作,後面不應有其他動作,表示例行程序應對手冊已決定退出並轉換至目標流程。由於這項動作表示應對手冊結束,請將應對手冊的輸出參數新增至範例的應對手冊輸出內容。