In the world of custom built bots there are two frameworks which reign supreme. Microsoft Bot Framework and Botkit. Both have SDKs that help developers build bots.
As a contributor to Botkit, I see people ask in issues what the difference between Botkit and Microsoft Bot Framework are, and why they should choose one over the other.
Here’s a quick answer for anyone who is building a bot and wondering which framework they should choose!
Every bot developer faces the same challenges: receive messages from a Platform, understand the user’s intent, respond accordingly. This means handling low level parts like sending/receiving messages as HTTP requests, running NLP or regex on user input, tracking conversation state, and triggering code you’ve specified as a response.
Personally, I build bots with Botkit because it allows me to control all aspects of the interaction, and supports an open ended number of platforms.
Botkit and Microsoft Bot Framework are both open source bot frameworks that do all that for you, so you can focus on building an interaction. Startups building new products, and Enterprise businesses rolling out access to their product across platforms will have different needs, and will be better served by one over the other.
Microsoft Bot Builder
- Supports .NET, Node, and C#
- Send/Receive Messages, Conversation System
- Unifies Platform events
- Connects to many platforms
- Uses “Write once run anywhere” style
- Best for platform agnostic products
Quick Clarification, per docs:
The Microsoft Bot Framework provides just what you need to build and connect intelligent bots that interact naturally wherever your users are talking, from text/sms to Skype, Slack, Office 365 mail and other popular services.
MS Bot Builder is the sdk you use to create bots which connect to MS Bot Framework.
A little confusing, I know.
Bot Framework is itself a platform that connects your bot to many different platforms. To use Bot Builder entails registering with MS Bot Framework and connecting your bot to it.
MS Bot Builder supports many programming languages and platforms. It really excels at building an interaction once and having it run on the maximum amount of platforms (ie FB Messenger, Skype, Alexa, etc)
If your bot will rely heavily on NLP, Microsoft Bot Framework makes it easy to integrate with their LUIS NLP service.
Bot Framework has support for Azure and scaling right out of the box. It focuses on a connector based strategy, so you must first register your bot with Microsoft, and then register with individual channels and link them to the bot.
Support for langauges like .NET and C# makes it the default choice for many enterprises and developers working outside Node JS.You must register your bot with Microsoft Bot Framework first and create connections through their Website.
The write once run anywhere is useful if you’re trying to approximate a similar experience across a wide variety of touch points, but lacks the ability to custom tailor content to the platform it will be consumed through.
If you’re building a product that relies heavily on NLP and being omnipresent across many different channels (including Voice and skype), then Bot Framework is likely your best choice.
- Node based
- Send/Receive Messages, Conversation System
- Easy to use and extend
- Direct access to Platform APIs
- Helpful community
- Best for platform specific products
Botkit is an Open Source Node JS bot framework, run by the folks at Howdy. Botkit is easy to learn, and has a large and helpful community. There are over 120 contributors to the project, and new Platform features are integrated by the community as they become available.
Botkit supports Facebook Messenger, Slack, Twilio, Facebook For Work, Microsoft Teams, Cisco Spark, and Web Chat. You can easily add new integrations as well.
It is easy to get up and running with one of the starter kits provided. Because Botkit focuses on a per Platform integration, you get access to the underlying platform APIs, and have more granular control over the look and feel of your interaction.
Botkit is framework for sending and receiving messages, calling platform APIs, and running custom code. Bring whatever NLP services or other middlewares that you want.
Botkit connects you directly to the events a platform is sending you, giving you more ways to interact with the platform than MS Bot Builder which generates generic events.
If you’re a startup building a bot product this is Platform specific (Facebook Messenger, Slack, etc.) then you’ll want the granular control Botkit offers.
Because Microsoft Bot Framework is actually a platform itself, Botkit supports Microsoft Bot Framework as a flavor of bot you can create!
Just like Botkit has a Facebook library, and a Slack library, it has a Microsoft Bot Framework library as well.
So why run a MS Bot Framework bot through Botkit? To get access to platform specific APIs that Botkit exposes, AND translate your bot to other services. Checkout the Botkit docs about using MS Bot Framework.
Personally, I build bots with Botkit because it allows me to control all aspects of the interaction, and supports an open ended amount of platforms.
Hopefully now you know which framework is right for you. Both have good documentation and plenty of developers using the project.
Building bots can be fun and pretty approachable with the right framework. But when you do get stuck, join the Botkit Developer Slack community which has channels for different platforms where you can get help!
Feel free to reach out to me there with any questions, im
@jonchurch on the slack team!