Bot 設計準則Principles of bot design

適用于: SDK v4APPLIES TO: SDK v4

Bot Framework 可讓開發人員建立引人注目的 Bot 體驗,解決各種商務問題。The Bot Framework enables developers to create compelling bot experiences that solve a variety of business problems. 藉由學習本節所述的概念,您就能夠設計符合最佳做法的 Bot,並且在這個相對而言較新的領域中,利用至今所學的課程。By learning the concepts described in this section, you'll become equipped to design a bot that aligns with best practices and capitalizes on lessons learned thus far in this relatively new arena.

設計 BotDesigning a bot

如果您要建置 Bot,可以肯定地說您預期使用者會加以使用。If you are building a bot, it's safe to assume that you are expecting users to use it. 我們也可以肯定地說,您會希望使用者偏好 Bot 體驗而不是替代方案 (例如應用程式、網站、電話通話及其他解決其特定需求的方式)。It is also safe to assume that you are hoping that users will prefer the bot experience over alternative experiences like apps, websites, phone calls, and other means of addressing their particular needs. 換句話說,您的 Bot 會與應用程式和網站等項目爭用使用者的時間。In other words, your bot is competing for users' time against things like apps and websites. 那麼,該如何讓您的 Bot 穩操勝券,達到吸引和保留使用者的最終目標?So, how can you maximize the odds that your bot will achieve its ultimate goal of attracting and keeping users? 其實只要在設計 Bot 時,決定正確因素的優先順序,就這麼簡單而已。It's simply a matter of prioritizing the right factors when designing your bot.

不保證 Bot 成功的因素Factors that do not guarantee a bot's success

在設計您的 Bot 時,請注意下列因素都不保證 Bot 成功:When designing your bot, be aware that none of the following factors necessarily guarantee a bot's success:

  • Bot 的 智慧型 功能:在大部分情況下,讓您的 bot 更聰明的情況不太可能會保證使用者或採用您的平臺。How smart the bot is: In most cases, it is unlikely that making your bot smarter will guarantee happy users or adoption of your platform. 事實上,許多 Bot 有一些進階機器學習或自然語言功能。In reality, many bots have little advanced machine learning or natural language capabilities. 如果 Bot 需要解決其設計目的的問題時,就會包含這些功能,但是您不應該假設 Bot 智慧與使用者採用 Bot 之間有任何相互關聯。A bot may include those capabilities if they're necessary to solve the problems that it's designed to address, however you should not assume any correlation between a bot's intelligence and user adoption of the bot.

  • Bot 支援多少自然語言:您的 Bot 可以有很好的對話表現。How much natural language the bot supports: Your bot can be great at conversations. 它可以有大量的詞彙,甚至笑話可以說得很好。It can have a vast vocabulary and can even make great jokes. 但是,除非它能夠解決您的使用者需要解決的問題,否則這些功能對於讓您的 Bot 成功並無太大助益。But unless it addresses the problems that your users need to solve, these capabilities may contribute very little to making your bot successful. 事實上,有些 Bot 完全沒有對話功能。In fact, some bots have no conversational capability at all. 而在許多情況下,這完全沒有問題。And in many cases, that's perfectly fine.

  • 語音:讓 bot 進行語音的情況並不一定會導致絕佳的使用者體驗。Voice: It isn't always the case that enabling bots for speech will lead to great user experiences. 通常,強制使用者使用語音可能會導致令人沮喪的使用者體驗。Often, forcing users to use voice can result in a frustrating user experience. 當您設計 Bot 時,請一定要考慮語音是否能有效解決指定的問題。As you design your bot, always consider whether voice is the appropriate channel for the given problem. 那裡會不會是吵雜的環境?Is there going to be a noisy environment? 語音能夠傳達需要與使用者共用的資訊嗎?Will voice convey the information that needs to be shared with the user?

可讓 Bot 成功的因素Factors that do influence a bot's success

大部分成功的應用程式或網站都有至少一個共通之處:絕佳的使用者體驗。Most successful apps or websites have at least one thing in common: a great user experience. 這點對各種 Bot 都是一樣的。Bots are no different in that regard. 因此,確保絕佳的使用者體驗,應該是您在設計 Bot 時的第一要務。Therefore, ensuring a great user experience should be your number one priority when designing a bot. 一些主要考量包括:Some key considerations include:

  • Bot 是否可以輕鬆地以最少的步驟來解決使用者的問題?Does the bot easily solve the user's problem with the minimum number of steps?

  • Bot 是否可以比任何替代體驗更妥善地解決使用者的問題?Does the bot solve the user's problem better/easier/faster than any of the alternative experiences?

  • Bot 可以在使用者關切的裝置和平台上執行嗎?Does the bot run on the devices and platforms the user cares about?

  • Bot 是否可供探索?Is the bot discoverable? 使用者在使用 Bot 時,是否自然知道要怎麼做?Do the users naturally know what to do when using it?

以上問題與 Bot 有多聰明、有多少自然語言功能、是否使用機器學習,或者是使用哪種程式設計語言來建立等因素,都沒有直接關係。None of these questions directly relates to factors such as how smart the bot is, how much natural language capability it has, whether it uses machine learning, or which programming language was used to create it. 如果 Bot 能夠解決使用者需要解決的問題,並且提供絕佳的使用者體驗,那麼使用者不太會關心這些因素。Users are unlikely to care about any of these things if the bot solves the problem that they need to address and delivers a great user experience. 絕佳的 Bot 使用者體驗不需要使用者打太多字、說太多話、需要重複問題,或是解釋 Bot 應該自己要知道的事項。A great bot user experience does not require users to type too much, talk too much, repeat themselves several times, or explain things that the bot should automatically know.

提示

不論您建立的是什麼類型的應用程式 (Bot、網站或應用程式),使用者體驗都是第一要務。Regardless of the type of application you're creating (bot, website, or app), make user experience a top priority.

設計 Bot 的程序就像是設計應用程式或網站,因此數十年來建置應用程式與網站的 UI 和提供 UX 的經驗,在設計 Bot 時仍然適用。The process of designing a bot is like the process of designing an app or website, so the lessons learned from decades of building UI and delivering UX for apps and websites still apply when it comes to designing bots.

每當您不確定設計方法對於您的 Bot 是否正確時,請回過頭來問問自己下列問題:在應用程式或網站中會如何解決該問題?Whenever you are unsure about the right design approach for your bot, step back and ask yourself the following question: how would you solve that problem in an app or a website? 相同的答案經常都能套用到 Bot 設計。Chances are, the same answer can be applied to bot design.

後續步驟Next steps

您已熟悉 Bot 設計的一些基本原則,請繼續深入了解使用者與 Bot 之間首次互動的幾個基本原則設計。Now that you're familiar with some basic principles of bot design, learn more about the basic principles for designing the first interaction between a user and bot.