設計筆記:聊天介面的設計規範

筆者在這裡簡單整理了一下聊天介面(Conversational User Interface,簡稱CUI)的設計規範,可作為讀者在設計機器人對話模式和內容時的參考依據。我們將分為幾個大項目說明,分別是輸入驗證、轉換任務、回頭追蹤、定時離開、等待緊急輸入、以及從清單中選擇。

  • 一開始,機器人會先簡單地打招呼和自我介紹,告訴使用者可以詢問它什麼內容;

  • 機器人告訴使用者目前完成了哪些任務,並引導使用者下一步要做什麼;

  • 當互動成功時,機器人可逐步減少提示;

  • 根據使用者與機器人的活動歷程,提供進一步的資訊或操作;

  • 確保機器人提供的是與任務相關的建議;否則就會變成垃圾訊息。

  • 多選選單、文件瀏覽、地圖搜尋等,還是使用指標式的圖案和按鍵較為恰當。

輸入驗證

在GUI中有很多方法可以限制使用者的回答方式,但MUI必須接收來自使用者的各種不同的回答內容;所以,如何架構對話中的問題、及消化回答內容,就變得特別重要:[footnote]編按:以下的人機模擬對答原文為英語,為便利讀者閱讀起見已譯為中文。[/footnote]

  • 問出機器人所需要的東西,若使用者能一次回答清楚,就不用再多問。

  • 機器人提供使用者回答提示;一次問一個問題,保持問題與回應夠精準。

機器人:請問您穿哪個尺寸?我們有M號、L號和XL號。

  • 當使用者回應是有效答案時,機器人要重複使用者的答案;對話內容連接下一題。

使用者:L號。

機器人:L號,好的。那您想買哪種顏色的呢?

  • 當使用者回應是無效答案時,機器人要向使用者解釋它所期待的回答(運用項目列舉);可以的話,也解釋一下機器人無法解讀的部分。

機器人:您想要買哪一種顏色的呢?

使用者:紫色。

機器人:很抱歉,我們沒有紫色的;我們有白色、灰色、棕色、紅色、橘色、粉紅色和黑色。您想要哪一種顏色呢?

使用者:[講得很模糊]。

機器人:對不起,您說「&*%$@」?這不是顏色名稱吧?我們有白色、灰色、棕色、紅色、橘色、粉紅色和黑色。您想要哪一種顏色呢?

使用者:灰色。

機器人:好!所以您要的是一件L號的灰色T恤。

  • 使用者可能有好幾種指向同一種選擇的回應方式,設計介面時都要把他們考慮在內。

轉換任務

和傳統GUI介面可以在各個平台或網頁之間切換頁面來轉換任務不同,MUI提供一個直通通的程序;機器人一次只能處理一件事。以下是MUI在任務轉換時的設計準則:

  • 當機器人正在執行多個不同任務時,它必須要先得到使用者明確的確認目前執行中的任務是否暫停。任務A可能已經花很多時間在做了,但因某種原因要被轉換到下一個任務B;在停止任務A之前要先與使用者確定是否取消,以免功虧一簣。以下就以操作Slack團隊溝通工具上用來安排公用行事曆的機器人軟體「Meekan」為例:

使用者:Meekan,幫我在明天安排一個部門會議。

使用者:Meekan,我星期四忙嗎?

機器人:現在有一個會議正在進行中。如果您要中止這個會議,請說「取消」。

  • 如果目前正在處理中的任務不是很重要,那麼機器人要迅速的轉換去處理使用者交代的下一個任務,並告訴使用者在這個轉換過程中發生的事:取消了什麼任務,然後執行了什麼任務。

機器人:Chris邀請您星期五上午10點參加專案啟動會議。您要選擇「接受」或「拒絕」?

使用者:明天安排一個新的會議,請 @jesse 出席。

機器人:好的,現在先跳過確認出席程序。

機器人:正在檢查各位的行事曆上都有空開會的時間⋯⋯。

回頭追蹤

使用者常常會忘記自己上次問過些什麼問題;如果突然又問起,會讓使用者感到困惑。所以在回溯問題時,機器人要適當地插入對話。

機器人:您穿哪個尺寸的T恤?我們有M號、L號和XL號。

使用者:L號。

機器人:好的,L號。那您想買哪種顏色的呢?

使用者:我要改成XL號。

機器人:好的,XL號。那您想買哪種顏色的呢?

定時離開

當使用者中斷和機器人的對話,出去吃個中餐、或是聊天清單被其他對話擠爆的時候,之前和機器人間的對話早就不知忘到哪裡去了。過期的對話過了一整天沒回應,那就中止吧!

等待緊急輸入

在GUI環境中可以有個跳出視窗,直到使用者回應跳出框裡的選項,才可以進行其他操作;但MUI無法強迫使用者優先操作某個項目,所以我們複製這樣的行為到MUI環境裡:

  • 介面中要告訴使用者需要回應什麼,以及為什麼他必須要回應;然後機器人要準備幾種在這種狀況下的回應方式,不要每次拒絕都用相同的句子回覆,這樣只會讓狀況更糟。這裡可以探討這個接觸點是使用者有負面情緒,要小心處理。以下的例子可以說明為何機器人一直用同樣句子拒絕我,會讓我很惱怒;別讓使用者覺得自己很笨。

機器人:要完成我的工作,我需要存取您的行事曆。請點選以下連結連接您的行事曆。

使用者:明天安排一個新的會議。

機器人:說真的,您必須先讓我連結您的行事曆,您才能來享受我強大的行程安排功能。

使用者:我明天很忙嗎?

機器人:我也很急著要安排您的行程,但請先連結您的行事曆,我才能施展魔法。

  • 如果不是真的特別重要的資訊,就不要進入這一類狀況;也不要全盤否認使用者的回應,試著猜測使用者的答案,或至少允許部分有限制的功能給使用者。這麼做都是要確認機器人是真的需要這項資訊,以免做無謂的干擾。

從清單中選擇

在CUI裡沒有下拉選單、單選框、複選框等等;所以要給每個選項特別的名字或編號,讓使用者選擇。這裡還有一種方式是將對話框結合部分GUI來做,將選單或選框嵌入對話;簡單的點按,在某些時候還是比輸入文字有效率得多。

使用者:Meekan,幫我取消明天的會議。

機器人:您明天有3個會,想要我幫您取消哪一場呢?

  • 上午10:00:專案啟動會議

  • 上午11:00:部門會議

  • 下午2:30:和Jake面談

使用者:取消3。

機器人:好的。正在取消明天「和Jake面談」。我會通知Jake會議已取消。

Slack機器人利用深度的連結來啟動各種功能。

通訊軟體利用跳出式按鈕來顯示功能和快捷鍵。

參考閱讀:

[embed]https://medium.com/dualcores-studio/conversational-ui-design-guideline-bed8156e71d9[/embed]