Принципы разработки ботовPrinciples of bot design

применимо к: Пакет SDK v4APPLIES TO: SDK v4

Bot Framework позволяет разработчикам создавать востребованные боты, которые решают различные бизнес-проблемы.The Bot Framework enables developers to create compelling bot experiences that solve a variety of business problems. После изучения основных понятий, описанных в этом разделе, вы будете иметь широкие возможности для разработки бота, который соответствует рекомендациям, и приобретенный опыт пригодится вам для продвижения в этой относительно новой области.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.

Разработка ботаDesigning a bot

Если вы создаете бот, можно с уверенностью предположить, что вы ожидаете его востребованности у пользователей.If you are building a bot, it's safe to assume that you are expecting users to use it. Можно также предположить, что вы надеетесь на предпочтение вашего бота таким альтернативам, как приложения, веб-сайты, телефонные звонки и другие средства удовлетворения особых потребностей пользователей.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. Другими словами, бот конкурирует с приложениями и веб-сайтами за время пользователей.In other words, your bot is competing for users' time against things like apps and websites. Итак, как вы можете повысить шанс того, что бот выполнит свою основную задачу — привлечение и удержание пользователей?So, how can you maximize the odds that your bot will achieve its ultimate goal of attracting and keeping users? Нужно всего лишь расставить приоритеты на правильные факторы при разработки бота.It's simply a matter of prioritizing the right factors when designing your bot.

Факторы, которые не гарантируют успешность ботаFactors that do not guarantee a bot's success

При разработке бота следует учитывать, что ни один из следующих факторов не гарантирует его успешность:When designing your bot, be aware that none of the following factors necessarily guarantee a bot's success:

  • Как работает Интеллектуальный робот: в большинстве случаев маловероятно, чтобы ваш 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. На самом деле многие боты не сильно продвинуты в машинном обучении или в возможностях естественного языка.In reality, many bots have little advanced machine learning or natural language capabilities. Бот может обладать этими возможностями, если они необходимы для решения проблем, для которых его разрабатывали, однако не следует предполагать, что существует некая корреляция между интеллектуальными возможностями бота и переходом пользователей на взаимодействие с ним.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.

  • Число поддерживаемых естественных языков бота. Ваш бот может отлично справляться с диалогами.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. Но если он не решает проблемы пользователей, то эти возможности мало повлияют на успешность бота.But unless it addresses the problems that your users need to solve, these capabilities may contribute very little to making your bot successful. На самом деле у некоторых ботов вообще отсутствует разговорная возможность.In fact, some bots have no conversational capability at all. И во многих случаях это вполне нормально.And in many cases, that's perfectly fine.

  • Voice: это не всегда так, что включение программы-роботы для речи может привести к отличному интерфейсу пользователя.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. При проектировании бота всегда думайте о том, подходит ли голосовая связь в качестве канала для решения конкретной задачи.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?

Факторы, действительно влияющие на успех ботаFactors that do influence a bot's success

Наиболее успешные приложения или веб-сайты имеют по крайней мере одну общую вещь — отличное взаимодействие с пользователем.Most successful apps or websites have at least one thing in common: a great user experience. В этом плане боты ничем не отличаются.Bots are no different in that regard. Таким образом обеспечение отличного взаимодействия с пользователем должно быть приоритетом номер один при разработке бота.Therefore, ensuring a great user experience should be your number one priority when designing a bot. Основные рекомендации:Some key considerations include:

  • Легко ли программа-робота решить проблему пользователя с минимальным количеством шагов?Does the bot easily solve the user's problem with the minimum number of steps?

  • Разрешает ли программа-робота проблему пользователя лучше, проще или быстрее, чем любые другие возможности?Does the bot solve the user's problem better/easier/faster than any of the alternative experiences?

  • Запускается ли бот на устройствах и платформах, которые интересуют пользователя?Does the bot run on the devices and platforms the user cares about?

  • Доступен ли бот?Is the bot discoverable? Имеет ли бот интуитивно понятное взаимодействие с пользователями?Do the users naturally know what to do when using it?

Ни один из этих вопросов прямо не связан с такими факторами, как интеллектуальность бота, числом поддерживаемых естественных языков, использованием машинного обучения или языком, использованным для написания бота.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. Пользователи вряд ли заинтересовались бы этими факторами, если бот решает необходимую проблему и обеспечивает отличное взаимодействие.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. Отличное взаимодействие бота с пользователем не требует от пользователя много печатать, слишком много говорить, повторять сказанное несколько раз или объяснять вещи, которые бот должен знать по умолчанию.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.

Совет

Независимо от типа приложения, которое вы создаете (бот, веб-сайт или приложение), сделайте взаимодействие с пользователем главным приоритетом.Regardless of the type of application you're creating (bot, website, or app), make user experience a top priority.

Процесс разработки бота подобен процессу разработки приложения или веб-сайта, поэтому опыт, накопленный десятилетиями создания пользовательского интерфейса и UX для приложений и веб-сайтов, по-прежнему актуален при проектировании ботов.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.

Каждый раз, когда вы не уверены в правильности подхода к разработке бота, вернитесь на шаг назад и задайте себе следующий вопрос: "Как следовало бы решить эту проблему в приложении или на веб-сайте?"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? Скорее всего, тот же ответ применим и для разработки ботов.Chances are, the same answer can be applied to bot design.

Дальнейшие действияNext steps

Теперь, когда вы ознакомились с основными принципами разработки бота, узнайте о том, как разработать процесс взаимодействия пользователя с ботом.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.