Since early 2016, chatbots came into the technology spotlight in a big way with top tech superpowers like Microsoft and Facebook releasing comprehensive frameworks aimed at mass-producing messenger bots.

Although the bot industry is relatively new, there’s still plenty of debate surrounding some of its terminologies, especially the difference between a Bot Development Framework and a Bot Platform. Simply put bot development frameworks are software features used by developers to build bots with predefined functions and classes taking away much of the manual work required to build chatbots.

In this post we will focus our review and comparison analysis on popular bot frameworks, before we jump straight into that, here's a brief illustration of the common differences between frameworks and platforms.

Source: Maruti Technologies

Bot platforms allow users to create bots without any coding knowledge using drag-and-drop functionality. These bot building platforms go hand in hand with bot publishing platforms, like Facebook, Slack, or Twitter, where easy-to-build bots are launched for interaction.

Bot frameworks, on the other hand, are more complicated. You can think of a framework as a kind of toolkit for development, with ready-made code snippets that plug into an API easily. Popular frameworks allow developers to build for natural language and robust customization and create bots that will integrate with a wide variety of publishing platforms.

Microsoft Bot Framework

The Microsoft Bot Framework works using the Azure Bot Service which enables developers to build intelligent, enterprise-grade bots with ownership and control of data. It offers a set of predefined functions and classes plugged-and-played to create highly customized and robustly capable bots.

The Microsoft Bot Builder SDK consists of a .NET and Node.js SDKs which makes part of the Bot Connector, Developer Portal, and Bot Directory ecosystem. The framework provides the Direct Line REST API, which can be used to host a bot in an application or website.

Another component of the Microsoft SDK is the LUIS.ai. The Language Understanding Intelligence Service provides the Natural Language Processing intelligence behind the Bot Builder and also Microsoft’s personal assistant Cortana. LUIS allows bots built with Microsoft’s Bot Builder to draw from a deep library of NLP knowledge.

The Microsoft Bot Framework’s integration component is impressive. It gives just what we need to build, connect, manage and publish intelligent chatbots that interact naturally wherever integrated with Slack, Facebook Messenger, Telegram, Webchat, GroupMe, SMS, email and Skype. Also, there is a PaaS option on Azure, just for Bots.

API.ai (Dialogflow)

API.ai is another web-based bot development framework. It's a service that allows developers to build speech-to-text, natural language processing, artificially intelligent systems that you can train up with your own custom functionality.

Since its acquisition by Google, API.ai was rebranded to Dialogflow but has retained its SDKs and libraries provisions for bot development on Android, iOS, Webkit HTML5, JavaScript, Node.js, Python, etc. With this acquisition, it is now possible to integrate your Api.ai agent with Actions on Google that lets you build applications.

API.ai's concepts such as agents, entities, intents, actions, and contexts make it suitable for intergration with many popular messaging, IoT and virtual assistant’s platforms or embedded applications. However its not recommended for customer service applications or complex bots.

Facebook Bot Engine (Wit.ai)

In April 2016, Facebook realized Facebook Bot Engine based on Wit.ai technology. Wit.ai runs from its own server in the cloud, the Bot Engine is a wrapper built to deploy the bots in Facebook Messenger platform. Wit.ai was engineered for viral adoption; meaning, a short learning curve. The documentation is fantastic: very extensive but easy to read.

The Facebook Bot Engine relies on Machine Learning. You feed the Bot Framework sample conversations and it can handle many different variations of the same questions. The potential is quite big as developers could improve their chatbots over the period.

Wit.ai offers several options:

  1. Predefined Entities - These predefined entities were created by Wit.ai developers and include the standard set of date, time, phone, etc.
  2. Intent - Wit.ai uses machine learning to figure out the important bits of the input. It basically decides what the user wants to perform. It’s up to the user to train the model.
  3. Sentiment This uses a bag of words approach i.e utterance based to train models to learn and replicate conversations.
  4. User-Defined Entities - These entities rely on keywords. They can be part of a predefined list, or free text substring based on an adjacent keyword. Its yet to support sophisticated needs.

Wit.ai is designed to be simple and accessible via a public cloud, so more complex deployment would conflict with the general philosophy of the system.

Conclusion

These are some of the Bot frameworks available in the market for developers to build bots. They are commonly referred to as the new apps. Client-centric organizations can use some of these tools to focus on the new Conversational User Interfaces provided by bots. Although these tools are still shaping up they are easy to use and have vast intergration opportunities. If your organization spends a lot of money and time on talking to clients, you can try to build a bot handling it. The era of Conversational User Interfaces has already started so be one of the first movers to enter the trend.