評估是測試代理成效的重要工具,可確保代理在特定情況下的行為符合預期。這項功能可讓您自動執行測試、在變更後找出迴歸問題,並評估代理的回覆品質,進而提升代理品質。
如要開始使用,請按一下代理建構工具頂端的「評估」按鈕。
評估概念
測試案例:每個測試案例都是特定、獨立的測試情境或提示,用於評估代理的效能。您可以建立三種不同類型的測試案例:
- 情境:這項 AI 輔助功能可啟動測試,確保測試範圍全面。您只需要描述使用者的目標,系統就會自動模擬使用者並生成對話,測試代理能否妥善處理該情境。情境是實驗和定義黃金對話的實用方法。
- 模擬:適合測試多步驟歷程。 您不必設定單一開放式使用者目標,而是將對話細分為已排序的目標清單 (也稱為里程碑)。模擬使用者會逐一完成目標,只有在達成目前目標的成功條件後,才會繼續進行下一個目標。模擬功能可讓您靈活模擬使用者,同時讓對話保持在可預測的路徑上。
- 精確:適合迴歸測試。您可以提供一條具體的「理想」對話路徑,而評估系統會檢查代理的行為是否與這個標準一致,包括是否正確呼叫工具等。
執行:評估執行是指針對受測代理的效能,完整執行一組黃金、情境和模擬測試案例。每個執行作業可以包含一或多個測試案例。
結果:測試案例結果是指在單次執行中,特定測試案例的單次執行。如果在單次評估執行期間多次執行測試案例 (例如檢查一致性、不穩定性等),則每次執行都是個別結果。結果會以矩形圖示顯示在每個測試案例列的欄中,如果執行失敗,會顯示紅色 X,如果通過,則會顯示綠色勾號。
標記:測試案例可使用標記分組,方便管理。
建立測試案例
如要建立及存取代理的測試案例,請按一下代理建構工具頂端的「Evaluate」(評估) 按鈕。您可以建立及管理黃金、情境或模擬測試案例。測試案例清單中的「Type」(類型) 欄會顯示各測試案例的類型。
情境
情境式測試案例會運用 AI,根據您定義的概略使用者目標,自動生成各種對話。使用這些測試案例時,您不必提供特定的黃金對話,而是選取生成的測試情境,或描述必須測試的特定情境。這項強大工具可協助您探索極端案例,並測試代理的穩定性,不必手動編寫所有可能的對話路徑。
如果這些情境運作良好,您可以將其儲存為黃金對話。
如要建立情境,請按照下列步驟操作:
- 按一下「Create scenario」(建立情境)。系統會提供多個建議情境。
- 您可以根據所選項目生成情境,也可以從頭建立新情境。
查看情境清單時,只要點選情境,即可列出各情境的詳細資料和對話清單。
如要將情境儲存為黃金對話,請按照下列步驟操作:
- 選取情境。
- 按一下右上角的選單按鈕。
- 選取「儲存為黃金對話」。
情境使用者目標
每個情境都有使用者目標,說明使用者操作代理應用程式時的目標。例如:
Securely book a specific room at a chosen hotel and receive a confirmation.
CX Agent Studio 會根據使用者目標,自動生成用於評估的對話。
情境變數
定義情境時,您可以提供應在情境中使用的變數。
情境預期
如要執行評估,您必須定義測試案例的預期結果。
預期結果可分為兩種類型:
- 訊息:預期的代理回覆。
- 工具呼叫:包含預期輸入和輸出的工具呼叫。
預期結果可能包含下列條件:
- 必備條件
- 不得包含
- 工具呼叫後
- 變數值
如何建立預期:
- 按一下特定情境,即可開啟詳細資料。
- 在「預期」部分,按一下「查看全部」。
- 按照介面指示,建立情境的預期結果。
模擬
模擬測試案例會將對話拆解成已排序的步驟清單,稱為「目標」 (也稱為「里程碑」)。每個目標都會說明使用者歷程的一個階段,以及模擬使用者在進入下一個階段前必須符合的條件。
模擬介於情境和黃金測試案例之間:
- 情境會為模擬使用者提供單一、開放式的使用者目標,並讓其即興發揮整個對話。這項功能適合用於探索,但每次執行時,對話可能會採取不同的路徑。
- 黃金測試案例會固定每個使用者回合。這種方法適合用於迴歸測試,但對於長對話流程來說不夠靈活,無法因應代理用詞的合理變化。
- 模擬作業會保留即時模擬使用者,但會依序將其限制在您的目標範圍內。這樣一來,多步驟歷程 (例如驗證、查詢、更新) 就能重複執行,不必對每個步驟進行硬式編碼。
模擬情境的適用情況:
- 這段歷程包含幾個不同的階段,必須按照固定順序進行。
- 您必須確認代理達到中繼狀態 (例如成功驗證來電者),才能執行其他操作。
- 黃金對話太過死板,但單一目標情境無法可靠地執行整個路徑。
建立模擬
- 前往「Evaluation」(評估) 分頁。
- 按一下「+ 新增測試案例」。
- 選取「模擬」。模擬編輯器隨即開啟,其中包含一個空白目標。
- 輸入「Test case name」(測試案例名稱),並新增任何「Tags」(標記)。
- 填寫第一個目標的「User goal」(使用者目標) 和「Success criteria」(成功條件),並設定「Max turns to achieve」(達成目標的最大回合數)。
- 按一下「新增目標」,然後依序為歷程的每個階段重複上述步驟。 如要進一步瞭解各個步驟類型,請參閱「目標」。
- (選用) 在「Variable Override」(變數覆寫) 部分,按一下「Add overrides」(新增覆寫),在對話開始前設定工作階段變數。測試案例至少有一個覆寫項目後,標示的按鈕會替換為新增 (+) 圖示按鈕,位於現有覆寫項目方塊旁。
- (選用) 按一下「Add expectations」(新增預期結果),附加會與整個轉錄稿進行比對的對話層級預期結果。
- 點選「建立」。
編輯器有「UI」分頁和「YAML」分頁,兩者編輯的是同一個測試案例。如要進一步瞭解 YAML 格式,請參閱「以 YAML 格式編輯模擬作業」。
目標
按一下「新增目標」,在模擬中新增步驟。每個步驟都屬於下列其中一種類型,您可以從步驟的類型選單中選取:
- 使用者目標:模擬使用者會自行生成語句,直到符合成功條件為止。這些步驟在編輯器中會標示為「目標」。設定:
- 使用者目標:模擬使用者在這個步驟中嘗試達成的目標,例如
Ask for a refund on the most recent order。 - 成功標準:判斷步驟是否完成的條件,例如
Agent asks for the reason for the refund。 - 達成目標的回合數上限:模擬停止前,這個步驟允許的回合數上限。預設為 3。
- 使用者資訊:選用的人物角色和情境提示,只有模擬使用者能看到,代理看不到。請使用這項功能提供使用者知道的詳細資料,例如訂單編號或來電原因。如要新增這個欄位,請開啟步驟的更多選項選單,然後按一下「Add user information」(新增使用者資訊)。
- 使用者目標:模擬使用者在這個步驟中嘗試達成的目標,例如
- 靜態語句:模擬使用者會傳送您提供的文字,不會生成任何內容。如果精確用字很重要,請使用這個選項,例如測試代理如何處理英數字元帳號。
- 事件:將具名事件 (而非語句) 傳送至代理。這項功能可用於重現非對話輸入內容,例如電話事件。
在編輯器中,靜態語句和事件步驟會標示為「Turn」。與使用者目標一樣,系統目標也可以有成功條件,但沒有「達成目標所需的最大回合數」或「使用者資訊」欄位。
將成功標準寫成可觀察的代理行為。系統會可靠地評估代理應說或做的條件,但不會評估對話中未出現的內部狀態。
模擬功能的運作方式
- 模擬使用者會從第一個步驟開始。
- 在每個回合中,模擬使用者會生成僅適用於「目前」步驟的話語。
- 代理回覆後,系統會根據成功條件評估目前步驟。如果符合條件,系統會將步驟標示為完成,模擬使用者則會繼續進行下一個步驟。已完成的步驟不會重新開啟。
- 如果未在「Max turns to achieve」(達成目標所需的最大回合數) 限制內完成步驟,模擬就會停止。系統不會嘗試執行後續步驟。
- 對話結束後,系統會評估轉錄稿,並針對嘗試過的每個步驟產生書面理由。
除了每一步驟的限制外,整個對話的總上限與其他模擬對話相同,都是 100 輪。在實際操作中,模擬作業會先因達到每步驟的「Max turns to achieve」(達成目標所需的最大回合數) 限制而停止。
除了模擬對話適用的其他通過或失敗條件外,模擬作業也必須完成所有步驟,才能通過。由於步驟是嚴格依序執行,因此只要有一個步驟失敗,測試案例的其餘部分就會遭到封鎖。請妥善安排步驟順序,以便在發生錯誤時,清楚指出中斷的階段。
模擬結果
開啟模擬結果,即可查看目標部分,其標題會顯示已完成的步驟數和總數,例如 Goals (2/3)。如果未完成所有步驟,該部分會自動展開。其中每個步驟都有一個可收合面板:
- 綠色勾號代表已符合該步驟的成功條件。
- 紅色 X 表示步驟未完成,原因可能是條件未達成,或先前步驟造成阻礙。
每個面板都包含「Justification」(理由),以淺顯易懂的語言說明系統判定步驟完成或未完成的原因。執行作業完成後,未完成的步驟會展開並顯示理由,已完成的步驟則會收合。如果某個步驟從未嘗試執行,系統會顯示訊息,說明阻礙該步驟的目標文字。
目標下方的「Conversation」(對話) 面板包含完整的模擬轉錄稿,因此您可以重播模擬使用者說的話,以及代理的回應。
如果執行作業因錯誤而結束,結果頂端的資訊卡會顯示錯誤訊息。如果執行作業已完成,但「靜態語句」步驟未完成,該資訊卡會重複第一個這類步驟的理由。由於靜態語句和事件步驟在編輯器中都標示為「Turn」,請查看目標部分,瞭解資訊卡參照的是哪個步驟。未完成 「使用者目標」和「事件」步驟只會記錄在目標部分。
以 YAML 格式編輯模擬作業
在模擬編輯器中,按一下「YAML」YAML分頁標籤,即可編輯 YAML 格式的測試案例。目標清單會以 steps 表示,每個步驟都會對應到「目標」一節所述的欄位:
evals:
- name: "billing_refund_request"
tags:
- "billing"
session_parameters:
product_id: "prod_123"
steps:
- goal: "Greet the agent and ask for a refund for product_id."
success_criteria: "Agent asks for the reason for the refund."
max_turns: 3
- goal: "Provide the reason and insist on the refund."
success_criteria: "Agent agrees to process the refund or escalates."
- static_utterance: "I want to check my balance."
| YAML 鍵 | 控制台欄位 |
|---|---|
name |
測試案例名稱 |
tags |
標記 |
session_parameters |
變數覆寫 |
goal |
使用者目標 |
success_criteria |
成功標準 |
max_turns |
達成目標的最大回合數 |
response_guide |
使用者資訊 |
static_utterance |
靜態語句步驟 |
event |
事件步驟 |
expectations |
目標 |
編輯器會在您輸入時驗證 YAML,並套用下列規則:
- 文件必須包含
evals清單,且編輯器只會讀取該清單中的第一個項目。 - 每個項目都必須有
name和至少一個步驟。 - 每個步驟至少須包含
goal、static_utterance或event其中一項。 session_parameters中的每個鍵都必須是代理應用程式中宣告的變數。expectations中的每個字串都必須是代理應用程式中現有預期的提示文字。比對時會忽略大小寫和周圍的空白字元。如要建立預期,請在「UI」分頁上使用「新增預期」,然後在這裡參照其提示。- 系統會拒絕
evals清單項目中無法辨識的鍵。
金黃
這些測試案例用於定義迴歸測試的理想對話路徑,確保更新代理時,核心、關鍵的對話路徑不會中斷。建立黃金對話的方式有多種:
如何從模擬器匯入對話:
- 使用模擬器開始對話。
- 按一下模擬器右上角的三個垂直點,開啟模擬器選單。
- 按一下「Save as golden」(儲存為黃金版本)。
- 輸入黃金測試案例的名稱,然後按一下「Save」(儲存)。現在會顯示在「Evaluation」(評估) 分頁中。
如要根據對話記錄建立測試案例,請按照下列步驟操作:
- 前往「Evaluation」(評估) 分頁。
- 按一下「+ 新增測試案例」。
- 選取「Golden」。
- 點選「下一步」。
- 按一下「從對話記錄中選取」。
- 在隨即顯示的視窗中,選取要儲存為黃金測試案例的對話。您可以選擇依對話 ID 搜尋。
- 如果您已啟用遮蓋功能,請先檢查代理回覆和變數是否需要遮蓋,再繼續處理缺少的資訊。
- 按一下「新增」。
如要從頭建立測試案例,請按照下列步驟操作:
- 前往「Evaluation」(評估) 分頁。
- 按一下「+ 新增測試案例」。
- 選取「Golden」。
- 點選「下一步」。
- 按一下「從頭開始建立」。
- 在顯示的視窗中,新增測試案例的「顯示名稱」。
- 視需要新增使用者輸入內容和預期代理回覆的文字。按一下「+ Add user input」和「+ Add agent expectation」來新增回覆。按一下「+ 新增對話輪」,在測試案例中新增對話輪。
- 按一下「建立」,將黃金測試案例新增至測試案例清單。
如要根據情境測試案例中的模擬對話建立測試案例,請按照下列步驟操作:
- 前往評估執行作業結果頁面。
- 按一下所選對話右側的選單圖示 (三個垂直點),然後點選「儲存為黃金對話」。
如要從檔案批次上傳測試案例,請按照下列步驟操作:
如要進一步瞭解檔案格式和 CSV 範本,請參閱「黃金測試案例 CSV 格式」頁面。
金黃期望
如要執行評估,請定義黃金測試案例的預期結果。預期結果是指您預期代理在對話中特定時間點達成的特定成果。評估期間,系統會將實際的代理行為與這些預期行為進行比較。
預期結果可以是下列其中一種類型:
- Message:代理應向使用者提供的文字回覆。評估系統會檢查代理的回覆是否在語意上符合這項預期。
- 工具呼叫:預期代理會呼叫特定工具並回覆。您也可以為工具呼叫指定預期的輸入引數。
- 代理轉接:預期代理會將對話轉接給真人服務專員或其他機器人。
如何建立預期:
- 按一下特定黃金測試案例,即可開啟詳細資料。
- 在「詳細資料」部分,按一下「查看黃金」。
- 按照介面指示新增或修改預期。
評估設定
在測試案例清單的標題列中,您可以調整評估設定:
- 黃金標準:
- 黃金標準通過/失敗條件:設定模擬對話通過或失敗的邏輯。
- Turn level:這些規則會評估每個回合。如果未達到任何門檻,特定指標會以紅色標示為失敗。
- Semantic similarity:語意相似度的門檻值。
- Tool correctness:工具正確性的門檻值。
- 幻覺:如果停用,幻覺就不會納入通過/失敗的評估。
- 預期層級:這些規則會判斷一輪對話中的預期。如果未達到任何門檻,特定指標會以紅色標示為失敗。
- 工具正確性:工具正確性的門檻值。
- 黃金執行方法:選擇原始或穩定的重播驗證。
- 工具假資料:使用模擬資料,而非實際的正式環境 API 呼叫。
- Scenarios:
- 情境通過/失敗條件:設定模擬對話通過或失敗的邏輯。
- 對話發起者:設定由使用者或模型發起對話。
- 工具假資料:使用模擬資料,而非實際的正式環境 API 呼叫。
- 音訊評估
- 音訊評估錄音
執行評估作業
如要執行評估,可以點選測試案例列中的執行按鈕,或選取多個測試案例並執行。
如果您儲存了多個版本,可以選取要使用的代理版本,或自動將草稿代理儲存為新版本,以便執行。
評估執行完畢後,系統會更新指標並顯示結果。
點選特定執行評估,即可查看該次執行的詳細結果。除了標準指標外,系統還會顯示下列指標:
- 失敗的回合
- 所有對話回合詳細資料的分頁清單,包括實際和預期的代理回覆。
對於黃金測試案例,您可能會看到「穩定重播」一詞,這表示測試是在一致的環境中執行 (即不變更背景資訊/輸入內容)。
如果是模擬測試案例,結果會顯示每個目標的結果,而非與預期回覆的逐輪比較。詳情請參閱「模擬結果」。
使用 AI 改善測試案例 (預先發布版)
您也可以選擇使用 AI 協助排解執行作業問題,並建議提升代理品質的方法。執行次數達 3 次以上時,AI 建議的效果最佳。如要啟用 AI,請選取要評估的測試案例,然後按一下「執行所選項目」。在彈出的視窗中,勾選「使用 AI 找出問題」旁的方塊。
執行完成後,結果頁面會顯示 AI 建議。
Gemini 會自動生成可下載的 loss_report,總結代理的各項成效,並醒目顯示可改善的部分。
任何使用者都能查看 AI 建議的修正方式,但只有發起執行作業的人,才能根據結果採取行動。
點按「問問 Gemini」,與助理代理互動。首先,您會看到損失報表,其中說明模型或代理的高階問題。您可以要求助理代理說明報告,報告會提供摘要,並可能建議修正方式。套用修正後,您可以要求輔助代理再次執行評估。
匯入及匯出
您可以匯入及匯出 YAML 或 JSON 格式的評估測試案例、執行作業和結果。匯入時,請確認接收代理包含匯出資料中定義的所有資源 (工具、變數和子代理)。
匯出測試案例:
- 選取一或多個測試案例。
- 按一下「匯出測試案例」。
- 選取格式。
- 系統會下載 ZIP 檔案。
如何匯入測試案例:
- 按一下「+ 新增測試案例」。
- 選取「Golden」。
- 點選「下一步」。
- 上傳 ZIP 檔案。
- 如果匯入時發生衝突,系統會引導您如何處理。
- 點選「建立」。
如要匯出評估執行作業和結果,請按照下列步驟操作:
- 選取一或多個評估執行作業。
- 按一下「匯出執行作業」。
- 選取格式。
- 系統會下載 ZIP 檔案。
指標
每項測試案例結果都包含一組指標,可根據所選測試案例評估代理的成效。指標會依控制台指示,在回合層級或預期 (對話) 層級計算。
在所有情況下,您都可以在「Evaluate」分頁的「Settings」選單中,自訂執行通過所需的值。
Tool correctness (工具正確性)
系統會針對黃金、情境和模擬測試案例計算這項指標。這項指標反映的是,在預期工具呼叫和預期參數值的情況下,符合預期參數的百分比。未呼叫工具會評為 0 分,沒有輸入參數的工具呼叫則會評為 1 分。如果在黃金評估期間,系統發出非預期的工具呼叫,結果會視為失敗,但不會影響工具正確性值。
使用者目標滿意度
針對情境和模擬測試案例計算。使用者目標達成度是二進位指標,專為使用者模擬評估設計。這項指標會評估模擬使用者是否認為自己達成了目標 (0=否,1=是)。輸入內容是模擬使用者設定和對話轉錄稿定義的 user_goal。如果提供的 user_goal 未指定明確或隱含的目標,輸出分數會是 -1。
模擬作業沒有整體使用者目標的專屬欄位,因此這項指標會根據「測試案例名稱」進行評估。為模擬作業命名,說明使用者整體想達成的目標。
這並非模擬中唯一的對話層級信號。模擬作業也可以包含預期結果,系統會根據整個轉錄稿檢查預期結果,並在結果的「Expectations」(預期結果) 部分回報。這些預期與情境使用的預期相同,請參閱「情境預期」。系統會依目標達成數回報每個步驟的結果。
目標達成數
僅適用於模擬。系統不會為對話提供單一分數,而是會個別回報模擬中的每個步驟是否完成,並提供解釋結果的理由。控制台會在目標部分的標題中,以已完成步驟數/總步驟數的形式總結,例如 Goals (2/3)。這個計數包含模擬中的每個步驟,包括靜態語句和事件步驟。
由於系統會依序嘗試執行步驟,因此第一個未完成的步驟就是失敗原因,後續步驟則不會嘗試執行。
幻覺
適用於黃金和情境測試案例。系統會計算每個生成回合的幻覺分數。這項指標反映代理是否提出不符合其情境的聲明 (0=否,1=是)。脈絡是由對話中先前的任何回合、工作階段變數、工具呼叫和代理指示組成。這項指標只會針對包含工具呼叫的回覆計算。不會偵測工具呼叫中的幻覺,而是假設做為背景資訊提供的工具呼叫正確無誤。為盡量減少偽陽性,如果回覆不含事實聲明,或僅包含已確立的常識,這項指標可能會傳回「不適用」分數。
您可以在評估設定中啟用或停用幻覺。
語意比對
僅針對黃金測試案例計算,不適用於情境或模擬測試案例。這項指標會評估觀察到的代理話語與預期代理話語的相符程度。語意比對是在對話層級計算。傳回的值介於 0 (完全不一致或矛盾) 到 4 (完全一致)。
情境預期
針對情境和模擬測試案例計算。這項指標會評估模擬使用者是否滿意代理的行為 (0=否,1=是)。支援兩種模擬使用者期望:
- 工具呼叫預期:計算方式與工具呼叫正確性類似,但有下列例外狀況:
- 結果為 0 (否) 或 1 (是)。
- 非預期的工具呼叫不會扣分。預期結果是指對話必須滿足模擬使用者預期的一組工具呼叫。
- 當工具呼叫輸入符合預期時,系統會在執行階段攔截呼叫,並以模擬傳回值取代。
- 代理回覆預期:檢查對話中的任何代理回覆是否包含預期字串。
工作完成
針對情境和模擬測試案例計算。工作完成度是衡量對話品質的指標。這項指標會同時評估使用者是否達成目標,以及代理的行為是否正確。定義如下:
User_Goal_Satisfied AND no_hallucinations_detected AND Expectations Satisfied
如果是模擬,則會加入第四個條件:模擬中的每個步驟也必須完成。控制台會將工作完成情況回報為測試案例結果的整體通過或失敗狀態。
職位
您可以自訂模擬使用者角色,並透過情境和模擬測試案例,使用這些角色測試代理。這項功能可確保代理在執行階段,能與可能遇到的人類使用者類型適當互動。
如未選取,系統會為每個情境結果隨機選取一個。
這項功能適用於文字和音訊輸入內容。
建立人物角色
- 如要建立角色,請前往「Evaluate」(評估) 分頁,然後按一下「Persona management」(角色管理) (位於「設定」圖示旁)。
- 按一下「+ 新增角色」。
- 在彈出的選單中,輸入「Name」(名稱)、「User personality」(使用者個性),以及任何其他「User context」(使用者背景資訊) (例如年齡、位置、來電原因等)。
- 按一下「+ 新增」。
如要使用角色執行評估,請按照下列步驟操作:
- 返回「評估」主頁面,選取一或多個情境或模擬測試案例,按一下「執行所選項目」。
- 在彈出的視窗中,從「Personas」下拉式選單選取剛建立的角色,然後點選「Run」。
評估和爬坡法的最佳做法
使用模組化元件建構新的代理時,請為每個代理變體建立專屬測試案例,例如:
- 語音和即時通訊
- 簡訊和即時通訊 SDK
- 品牌 A、B、C 等
建立其他案例,檢查跨變體指令洩漏。舉例來說,在語音模式下執行的案例不應顯示即時通訊專屬指令,反之亦然。
確認測試案例是針對正確的代理執行:
- 如果是互動模式 (即時通訊或語音) 或管道,只要根據正確的部署作業執行測試,就能自動確保一致性。
- 每個部署作業都會封裝模態、使用的模型和管道。
- 如果是建構工具定義的變數條件,請在執行測試案例時插入變數值。例如:
brand_name == "Cymbal Retail"或brand_name == "Acme Corp"。
請您常用的程式設計代理反覆改良 CX Agent Studio 代理,直到所有測試案例都達到目標指標或其他品質目標。
- 請程式設計代理整合不同測試案例的建議變更,這些變更會影響相同的代理指令。指示代理標記棘手的衝突,交由專人審查,以便在必要時提供細緻的輸入內容。
- 要求程式設計代理,為所有代理變體建立並排差異比較,顯示變更內容。這有助於瞭解及驗證所選修正項目。
- 視需要反覆調整。 這些疊代作業的具體性質,取決於 CX Agent Studio 代理設計、程式碼代理設計、使用的模型和對話架構。
- 請手動驗證實際轉錄稿和結果樣本,確保編碼代理的結果準確無誤。
- 指示程式設計代理找出爬坡練習中缺少的測試情境,並視情況建議新的測試案例。視需要繼續疊代。