봇 탐색 디자인Design bot navigation

적용 대상: SDK v4APPLIES TO: SDK v4

사용자는 이동 경로를 사용하여 웹 사이트를 탐색하고고, 메뉴를 사용하여 앱을 탐색하고, 전달뒤로 와 같은 단추를 사용하여 웹 브라우저를 탐색할 수 있습니다.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. 디자인 및 제어 대화 흐름에 설명 된 것 처럼 사용자는 대개 비선형 방식으로 봇을 조작 하 여 뛰어난 사용자 환경을 일관 되 게 제공 하는 bot 탐색을 어렵게 만듭니다.As discussed in Design and control conversation flow, 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:

stubborn 봇

사용자는 종종 마음이 바뀌어서 취소하기로 하거나 때로는 완전히 새로 시작하고 싶어합니다.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. 사용자는 봇이 적절히 응답할 것이라고 당연히 기대하면서 "help" 또는 "cancel"와 같은 일반적인 키워드 명령을 시도할 수 있습니다.A user may try common keyword commands like "help" or "cancel" with reasonable expectations that the bot will respond appropriately.

다음과 같은 시나리오를 고려해 보세요.Consider the following scenario:

clueless 봇

봇 내의 모든 다이얼로그가 특정 키워드를 수신하고, 적절히 응답하도록 디자인하고 싶을 수 있지만 이러한 접근 방식은 권장되지 않습니다.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. 응답을 컴파일하는 데 시간이 오래 걸리는 경우 "입력" 메시지를 보내 봇이 작동 하 고 있는지를 표시 한 다음 자동 관리 메시지를 사용 하는 것이 좋습니다.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.