每個 Playbook 都應包含一或多個範例。 這些範例是使用者與劇本之間的對話,包括代理程式執行的對話和動作。這些是 LLM 的少量樣本提示範例。
控制台提供介面,可供您輸入動作。
多語言代理程式
如果希望代理程式處理多種語言,範例應使用每種語言。
輸入摘要和輸出摘要範例
除了輸入和輸出參數,劇本也支援接收輸入摘要和發出輸出摘要,以便與其他劇本交換資訊。摘要有助於在劇本之間傳遞抽象的情境資訊,而參數則有助於在劇本之間傳遞結構化且定義明確的欄位。參數是流程和劇本之間交換資料的唯一方式。
在範例中加入相關的輸入摘要,讓教戰手冊在執行階段根據輸入摘要調整動作。新增輸出摘要,包括範例對話的相關準確詳細資料,向劇本說明哪些詳細資料需要摘要。
範例狀態
在對話的特定時間點,劇本會處於下列其中一種狀態:
OK
:應對手冊已成功達成目標,控制權現在會轉移至父項應對手冊。CANCELLED
:使用者決定不繼續執行劇本中指派的目標。 控制權現在會轉移至家長劇本。如果上層劇本是 CX 流程,系統會在流程執行前偵測使用者輸入內容的意圖。FAILED
:由於發生錯誤 (例如工具傳回 500 錯誤),劇本無法繼續執行目標。工作階段會以失敗狀態結束。回應中會加入 EndInteraction 訊息。ESCALATED
:教戰手冊判斷無法達成目標,因此需要將情況提報給專員。工作階段將以狀態升級結束。 回應中會加入 EndInteraction 訊息。PENDING
:對話仍在應對手冊中進行。
頂層範例及其劇本呼叫應以對應劇本的狀態標示。
選取策略
選取策略設定會控管是否要在傳送至 LLM 的劇本提示中加入範例。可用的選項如下:
動態選取:系統會根據範例與目前對話內容的關聯性,有條件地加入範例。如果提示即將達到權杖上限,可以省略範例。
一律選取:無論對話內容為何,一律會納入範例。如果提示即將達到權杖上限,系統可能會省略範例。
永不選取:範例絕不會納入提示。 範例不會影響劇本的成效。 這項設定可暫時排除範例,以利測試。
新增動作
劇本中提供的範例包含一連串的動作。這些動作的組合可能有所不同,但主要描述使用者與劇本之間的互動,以及為滿足使用者查詢或需求而採取的動作。
新增動作至範例的方式有兩種:
- 如要手動新增動作,請按一下右側窗格底部的「+」按鈕,或將指標懸停在現有動作上時,按一下「新增動作」按鈕。點選「+ 範例」選項建立新範例時,或編輯現有範例時,都可以使用這些選項。
- 如要根據現有劇本指示自動生成動作,請在右側窗格底部的「輸入使用者輸入內容」欄位中輸入內容。建立或編輯範例時,可以使用這個選項。 或者,您也可以在右側的「預覽劇本」窗格中,於執行階段測試劇本時使用這個選項。如要將動作儲存至「預覽應對手冊」窗格中的範例,請從「預覽應對手冊」窗格左側的叫用清單中選取應對手冊叫用,然後按一下「儲存範例」。
請務必檢查自動生成的動作是否正確,並視需要編輯。如果劇本的範例很少或沒有,這一點就特別重要。
劇本支援下列動作類型:
應對手冊回覆
劇本對使用者查詢的回應。
使用者輸入內容
使用者查詢。
使用工具
這是工具的呼叫,可取得履行使用者查詢所需的額外資訊。這項動作應指定下列詳細資料:
工具:應叫用的工具名稱。
動作:要呼叫的 OpenAPI 工具作業名稱。如果是資料儲存庫工具和函式工具,動作名稱與工具名稱相同。
工具輸入內容:要納入工具呼叫的輸入內容。 這些通常是根據先前與使用者的對話回合推導而來。
如果是 Open API 工具,
requestBody
則POST
、PUT
和PATCH
方法類型必須使用 JSON。範例 開放式 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 回應。 如果是開放式 API 工具,也可能是字串錯誤 (例如「找不到 404」)。
範例 「Open API tool」 的 listPets 動作輸出內容:
{ "pets": [ { "id": 1, "name": "Luna" }, { "id": 2, "name": "Charlie" }] }
Datastore 工具輸出內容範例:
{ "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 .." } ] }
為確保應對手冊萬無一失,請一併提供工具叫用失敗時,應對手冊應如何回應的範例。開啟 API 工具
工具輸出內容會以錯誤字串 (「404 not found」) 表示叫用失敗。
對於資料儲存庫工具,如果沒有摘要答案,可以使用 fallback
輸入內容指定如何回應。
如要讓資料儲存工具在劇本回應中加入 URI,請新增包含您希望劇本回應的 URI 的範例。如果這個 URI 來自資料儲存工具,則資料儲存工具的輸出內容應包含與劇本回應中 URI 相符的 URI。請注意,在此情境中無法使用 fallback
,因為這會停用 LLM 劇本的功能,導致無法重新措辭資料儲存工具的答案,在劇本回覆中加入 URI。
包含工具使用動作的範例可能會相當冗長,導致輸入權杖限制用量增加。為確保有效使用權杖,請確認工具輸出內容簡潔明瞭,且包含與劇本目標相關的資訊。如果是資料儲存工具,請考慮從範例中移除程式碼片段,因為這些片段可能會導致輸入權杖用量過高。
應對手冊叫用
當應對手冊應叫用其他工作應對手冊來完成使用者查詢時,請使用這項動作。這項動作應指定下列詳細資料:
- 應對手冊:要叫用的應對手冊名稱。
- 應對手冊叫用輸入摘要: 前述對話中與叫用應對手冊相關的部分摘要。
- 輸入參數: 輸入參數 要傳遞至應對手冊。
- 應對手冊叫用輸出摘要: 應對手冊完成目標後應生成的內容摘要。
- 輸出參數: 劇本完成目標後產生的輸出參數。
應對手冊轉換
應對手冊轉換動作是終端動作 (不應接續其他動作),表示常式應對手冊已決定結束並轉換至目標常式應對手冊。請注意,由於這項動作表示應對手冊已結束,請將應對手冊的輸出參數新增至範例的應對手冊輸出內容。
流程叫用
當工作劇本應叫用流程時,就會使用這項動作。 這項動作應指定下列詳細資料:
- 流程:要呼叫的流程名稱。
- 流程輸入參數: 要傳遞至流程的輸入參數。
- 流程回傳參數: 從流程傳回的輸出參數。
流程轉移
流程轉換動作是終端動作 (不應接續其他動作),表示例行應對手冊已決定結束並轉換至目標流程。請注意,由於這項動作表示應對手冊已結束,請將應對手冊的輸出參數新增至範例的應對手冊輸出內容。