ボット ナビゲーションを設計するDesign bot navigation

適用対象: SDK v4APPLIES TO: SDK v4

ユーザーが Web サイトでのナビゲーションに使用するのは階層リンクです。アプリではメニューを、Web ブラウザーでは 進む ボタンや 戻る ボタンをナビゲーションに使用します。Users can navigate websites using breadcrumbs, apps using menus, and web browsers using buttons like forward and back. しかし、適切に確立されたこれらのナビゲーションの中に、ボット内のナビゲーション要件に完全に対応しているものはありません。However, none of these well-established navigation techniques entirely address navigation requirements within a bot. 前に説明したように、ユーザーとボットの対話は非線形的に行われることが多いため、優れたユーザー エクスペリエンスを一貫して提供するボット ナビゲーションの設計が難しくなっています。As discussed previously, users often interact with bots in a non-linear fashion, making it challenging to design bot navigation that consistently delivers a great user experience.

次の課題について考えてみます。Consider the following dilemmas:

  • ボットとの会話中、ユーザーが状況を見失わないようにするには、どうすればよいですか。How do you ensure that a user doesn't get lost in a conversation with a bot?
  • ユーザーはボットとの会話中に "戻る" ことができますか。Can a user navigate "back" in a conversation with a bot?
  • ボットとの会話中に、ユーザーが "メイン メニュー" に戻るには、どうすればよいですか。How does a user navigate to the "main menu" during a conversation with a bot?
  • ボットとの会話中に、ユーザーが操作を "キャンセル" するには、どうすればよいですか。How does a user "cancel" an operation during a conversation with a bot?

ボットのナビゲーション設計の詳細の多くは、お使いのボットでサポートされる機能によって異なります。The specifics of your bot's navigation design will depend largely upon the features and functionality that your bot supports. 開発しているボットの種類に関係なく、会話インターフェイスの設計が不十分なことで陥りがちな落とし穴については、回避することができます。Regardless of the type of bot you're developing, you'll want to avoid the common pitfalls of poorly designed conversational interfaces. この記事では、"頑固なボット"、"鈍いボット"、"不可解なボット"、"当たり前のことを言うボット"、"忘れられないボット" の 5 つの特徴の観点から、これらの落とし穴について説明します。This article describes these pitfalls in terms of five personalities: the "stubborn bot", the "clueless bot", the "mysterious bot", the "captain obvious bot", and the "bot that can't forget."

ヒント

ご自身のボットのこれらの特徴はそれぞれ、ユーザーによる割り込み処理を適切に実行すれば大抵は緩和できます。Mitigating each type of these personalities for your bot can often be done by correctly handling user interruptions.

"頑固なボット"The "stubborn bot"

頑固なボットは、ユーザーが方向転換を試みても、会話の現在のコースを是が非でも維持しようとします。The stubborn bot insists upon maintaining the current course of conversation, even when the user attempts to steer things in a different direction.

以下のシナリオについて考えてみます。Consider the following scenario:

及ぼす bot

ユーザーが心変わりして、操作をキャンセルすることはよくあります。最初からすべてをやり直すこともあります。Users often change their minds, decide to cancel or sometimes they want to start over altogether.

ヒント

すべきこと:ユーザーがいつでも会話の方向を変更しようとする可能性があることを考慮してボットを設計する。Do: Design your bot to consider that a user might attempt to change the course of the conversation at any time.

やってはいけないこと:ユーザー入力を無視し、同じ質問を無限に繰り返すようボットを設計する。Don't: Design your bot to ignore user input and keep repeating the same question in an endless loop.

この落とし穴を回避する方法は多数ありますが、最も簡単なのは、おそらく、ボットが同じ質問を無限に繰り返さないようにすることでしょう。これは、質問ごとの再試行の最大回数を指定するだけ達成できます。There are many methods of avoiding this pitfall, but perhaps the easiest way to prevent a bot from asking the same question endlessly is to simply specify a maximum number of retry attempts for each question. このように設計されているボットは、ユーザーの入力を解釈し、適切に "賢く" 対応するわけではありませんが、少なくとも、同じ質問を無限に繰り返すようなことはしません。If designed in this manner, the bot is not doing anything "smart" to understand the user's input and respond appropriately but will at least avoid asking the same question in an endless loop.

"鈍いボット"The "clueless bot"

鈍いボットは、ユーザーが特定の機能にアクセスしようとしていることを解釈できないときに、無意味な方法で応答します。The clueless bot responds in a nonsensical manner when it doesn't understand a user's attempt to access certain functionality. ユーザーは、適切な応答を期待して、"ヘルプ"、"キャンセル" のような一般的なキーワード コマンドを試みる場合があります。A user may try common keyword commands like "help" or "cancel" with reasonable expectations that the bot will respond appropriately.

以下のシナリオについて考えてみます。Consider the following scenario:

救い bot

ボット内のすべてのダイアログについて、特定のキーワードをリッスンし、適切に応答するように設計したくなるかもしれませんが、このアプローチはお勧めしません。Although you may be tempted to design every dialog within your bot to listen for, and respond appropriately to, certain keywords, this approach is not recommended.

ヒント

すべきこと:指定したキーワードに対するユーザー入力 ("ヘルプ"、"キャンセル"、"やり直し" など) を検証して適切に応答するミドルウェアを実装する。Do: Implement middleware that will examine user input for the keywords that you specify (ex: "help", "cancel", "start over", etc.) and respond appropriately.

やってはいけないこと:すべてのダイアログで、キーワード一覧に照らしてユーザー入力を検証するように設計する。Don't: Design every dialog to examine user input for a list of keywords.

ミドルウェア でロジックを定義することで、ユーザーとのすべてのやり取りにアクセスできるようにします。By defining the logic in your middleware, you're making it accessible to every exchange with the user. このアプローチを使用すると、個々のダイアログとプロンプトで、必要に応じてキーワードを安全に無視させることができます。Using this approach, individual dialogs and prompts can be made to safely ignore the keywords, if necessary.

"不可解なボット"The "mysterious bot"

不可解なボットは、ユーザーの入力をすぐには確認しません。The mysterious bot fails to immediately acknowledge the user's input in any way.

以下のシナリオについて考えてみます。Consider the following scenario:

不可解ボット

この状況は、場合によっては、ボットが停止していることを示すことがあります。In some cases, this situation might be an indication that the bot is having an outage. しかし、ボットがユーザー入力の処理でビジー状態であり、その応答のコンパイルをまだ完了していないだけの場合もあります。However, it could just be that the bot is busy processing the user's input and hasn't yet finished compiling its response.

ヒント

すべきこと:ユーザー入力への応答のコンパイルにボットが少し時間がかかる場合でも、ユーザー入力をすぐに受信確認するようにボットを設計する。Do: Design your bot to immediately acknowledge user input, even in cases where the bot may take some time to compile its response.

やってはいけないこと:ユーザー入力への応答のコンパイルが完了するまで、ユーザー入力の受信確認を延期するようにボットを設計する。Don't: Design your bot to postpone acknowledgement of user input until the bot finishes compiling its response.

ユーザー入力をすぐに受信確認することによって、ボットの状態について混乱を招く可能性がなくなります。By immediately acknowledging the user's input, you eliminate any potential for confusion as to the state of the bot. 応答のコンパイルに時間がかかる場合は、bot が動作していることを示す "入力" メッセージを送信してから、 事前にメッセージを表示することを検討してください。If your response takes a long time to compile, consider sending a "typing" message to indicate your bot is working, and then following up with a proactive message.

"当たり前のことを言うボット"The "captain obvious bot"

当たり前のことを言うボットは、当たり前すぎて役に立たない、頼みもしない情報を提示します。The captain obvious bot provides unsolicited information that is completely obvious and therefore useless to the user.

以下のシナリオについて考えてみます。Consider the following scenario:

機長の明白なボット

ヒント

すべきこと:ユーザーにとって役立つ情報を提供するようにボットを設計する。Do: Design your bot to provide information that will be useful to the user.

やってはいけないこと:ユーザーにとって無駄な、頼みもしない情報を提供するようにボットを設計する。Don't: Design your bot to provide unsolicited information that is unlikely to be useful to the user.

役に立つ情報を提供するようにボットを設計することで、ユーザーがボットと関わる可能性が大きくなります。By designing your bot to provide useful information, you're increasing the odds that the user will engage with your bot.

"忘れられないボット"The "bot that can't forget"

忘れられないボットは、過去の会話の情報を現在の会話に不適切に組み込みます。The bot that can't forget inappropriately integrates information from past conversations into the current conversation.

以下のシナリオについて考えてみます。Consider the following scenario:

すべてのボットを記憶する

ヒント

すべきこと:ユーザーが以前のトピックを見直したいことを明らかにするまで、または明らかにしない限り、現在の会話のトピックを維持するようにボットを設計する。Do: Design your bot to maintain the current topic of conversation, unless/until the user expresses a desire to revisit a prior topic.

やってはいけないこと:現在の会話と関係がないときに、過去の会話の情報を挿入するようにボットを設計する。Don't: Design your bot to interject information from past conversations when it is not relevant to the current conversation.

会話の現在のトピックを維持することで、混乱とストレスの可能性が減り、ユーザーが引き続きボットと関わる可能性が大きくなります。By maintaining the current topic of conversation, you reduce the potential for confusion and frustration as well as increasing the odds that the user will continue to engage with your bot.

次のステップNext steps

会話インターフェイスの設計が不十分なことによって陥りがちな落とし穴を回避するようにボットを設計することで、優れたユーザー エクスペリエンスへの重要な一歩を踏み出すことになります。By designing your bot to avoid these common pitfalls of poorly designed conversational interfaces, you're taking an important step toward ensuring a great user experience.

次に、UX 要素の詳細について詳しく確認します。この要素は、ユーザーとの情報のやり取りにボットで最も一般的に使用されています。Next, learn more about the UX elements that bots most typically rely upon to exchange information with users.