AI 應如何自然應對突如其來的轉移話題
當使用者突然詢問新事物時,AI 應將最新的請求視為當前需要回答的任務,簡短確認這一轉變,並且僅沿用明確有助於回答的先前細節。如果使用者的措辭既可能代表重新開始,也可能代表延續前文,則應提出一個具體針對該關聯的問題。這個簡單的步驟有助於助手順應使用者的引導,既不會遺失有用的背景資訊,也不會將舊內容硬套到毫不相關的請求中。
為什麼轉移話題值得直接正面回應
人們在日常對話中經常切換主題,而對話研究也將話題轉換視為較長交流中的正常現象。一項針對 215 場 Switchboard 對話的研究發現,話題轉換通常是由單方參與者發起的;另一項研究則專門測試了系統如何偵測轉換並針對其生成回應。這些發現支持了一個實用的設計要點:對話型 AI 需要識別使用者何時改變了當前任務,而不是預設每條訊息都在延續上一條內容。(An Empirical Study of Topic Transition in Dialogue;TIAGE: A Benchmark for Topic-Shift Aware Dialog Modeling)
第一時間的回應應該讓這個轉換清晰明瞭,而不是讓使用者去解釋為什麼會轉移話題。如果一個人一直在討論週末的餐點,然後突然問:「你能幫我寫一封簡短的感謝信嗎?」,助手只需說:「沒問題,我們來寫感謝信。」對餐點對話進行冗長的摘要只會增加溝通阻力,並讓助手顯得還停留在上一個話題上。
從識別新任務開始
閱讀最新的訊息以找出其要求的行動:起草、解釋、比較、規劃、修改或回答。然後確認該行動的目標對象以及同條訊息中陳述的任何限制條件。一個全新的請求,例如「給我三個雨天下午的點子」,即便前幾輪對話圍繞著不同主題,也提供了一個明確的任務。助手可以直接回答,僅在前幾輪對話中提及的一般偏好顯然適用時才予以使用——例如先前陳述過的偏好室內活動。
有用的確認應簡短且具體:「切換到雨天計畫:這裡有三個室內活動點子。」在許多情況下,回答本身就能起到確認的作用。避免對使用者的動機發表冗長的推測;話題轉換是開啟新對話任務的證明,而不是使用者為何轉換話題的證據。微軟的機器人導航指南同樣警告,不要在使用者的話題已經轉向別處時仍堅持原有的對話路徑,也不要插入無關的過去資訊。(Design bot navigation)
僅保留發揮價值的上下文
在跨越邊界帶入細節之前,先進行相關性測試:這項事實會以具體方式改變新請求的答案嗎?如果是,則保留它。如果否,則將其排除。從「幫我選擇一日遊」轉到「我應該為它打包什麼」時,先前陳述的預算可能很重要。但當使用者索取打包清單時,先前一段無關的生日祝酒辭的具體用詞很可能就無關緊要了。
這是關於實用性的判斷,而非主張必須抹去對話歷史。一些對話模型會明確地將先前的對話輪次分割為感知主題的單元,而對話介面也可以跨輪次維護狀態。這些機制表明,上下文可以在不同層級進行管理;但它們並不能決定哪個舊細節與特定請求相關。在實踐中,助手應區分持久的限制條件與單一任務的細節,且僅在有助於解釋答案時才提及帶過來的具體事實。(Topic-Aware Multi-turn Dialogue Modeling;Conversation state)
一個精練的實用原則是:保留使用者明確的偏好和當前有效的限制條件,捨棄上一項任務中未完成的步驟(除非使用者主動回到該步驟),並避免僅為了表明「自己還記得」而重新翻出舊的對話細節。這條規則是對研究和設計指南的編輯整合,而非引述或經過實驗驗證的公式。
判斷話題切換是明確的還是模稜兩可的
明確的轉換無需進一步澄清。「新問題」、「另一個主題」或「現在幫我處理……」等短語能清楚表明使用者的意向。一個完全不依賴於先前交流的完整請求也是如此。簡短確認並繼續即可。
當使用者使用的代名詞或指稱可能指向多個先前的項目,或者不清楚他們是想修改舊內容還是開始新內容時,過渡就會變得模稜兩可。例如,在討論了兩件可能的禮物之後,問一句「你能讓它更具個人風格嗎?」,此時指稱就不明確了。這時應提出一個針對性的問題:「你指的是那本書的點子,還是烹飪課?」微軟關於意圖辨析的指南建議使用針對性的問題和選項,同時告誡問題過多會讓互動感覺像在審訊。(Disambiguate customer intent)
如果某個很可能的解讀既安全又容易更正,助手可以直接說明並繼續:「假定您指的是感謝信,這裡有一個語氣更熱情的版本。」僅在猜錯不會浪費使用者精力或扭曲答案的情況下使用這種方式。如果不同的解讀會產生截然不同的結果,請在繼續之前先詢問清楚。
實用的回應順序
對於每次突如其來的話題轉移,請套用以下簡短順序:
在內部命名新任務。確認使用者當前所要求的內容,以及其中隨附的任何限制條件。
檢查是否有明確信號。如果使用者明確轉移話題或提供了獨立完整的新請求,請接受此轉換。
篩選先前的上下文。僅沿用會直接影響新答案的偏好、事實或限制條件。
解決一次真正的歧義。提出一個簡明扼要的問題來區分合理的解讀;若能讓回答更輕鬆,可提供選項。
回答所選定的任務。除非使用者要求返回舊主題,否則不要重啟舊對話串。
思考這個例子:使用者首先要求提供一份簡單的野餐菜單,並說明一位客人不吃堅果。隨後他們說:「另一個問題:為我的鄰居推薦一份小禮物。」明確的過渡使新意圖十分清晰。堅果的限制條件與禮物點子毫無關聯,因此重複或套用該限制只會造成干擾。相反,如果使用者說:「你能讓它對他們來說更安全嗎?」,且之前的對話中包含多個可能的物品或人員,助手就應詢問「它」指的是什麼,以及「他們」是指誰。
讓切換顯得尷尬的常見錯誤
繼續執行已被放棄的任務。如果使用者提出了一個新的、完整的問題,不要堅持完成先前的檢查清單,也不要詢問他們是否確定要切換。例如,Dialogflow CX 的設計指南將明確的取消意圖描述為一種允許人們放棄活動對話主題的方式。更廣泛的設計啟示在於為使用者的重新定向留出空間。(Intents | Dialogflow CX)
將每個新句子都當作白紙一張。有些簡短訊息確實依賴先前的上下文:「把第二個縮短一點」如果沒有剛給出的清單就無法理解。即使大主題發生了變化,也請保留解析代稱所需的直接上下文。
憑空捏造關聯。兩個主題接連出現並不意味著使用者希望將它們結合起來。如果他們的措辭不支持這種關聯,請依新請求本身的邏輯來回答。
在意圖已經明確的情況下仍然提問。只有在澄清能夠改變答案時,澄清才是有用的。否則只會拖延任務。針對缺失的關聯提問,而不要僅僅針對使用者更換了話題這一事實發問。
一句話完成自然過渡
一個實用的模式是:「好的——[新任務]。如果仍然適用,我會參考[相關的先前細節];[一個具體問題]?」僅在真正的歧義會影響答案時才使用最後的問題。對於獨立完整的請求,直接略過提問:「好的——這裡有三個適合雨天下午的低成本室內活動。」
目標非常明確:順應用戶表明的方向,僅在發揮價值時保留上下文,並在關聯真正不明確時提出一個具體的澄清問題。這能讓突然的話題轉移感覺像對話中的自然輪替,同時讓答案始終聚焦於使用者當前的需求。
