3 different flavors for building chatbots with Microsoft

Microsoft is investing a lot of money in developing new tools to make AI more accessible to everyone. And that’s what we noticed at Microsoft Ignite 2019. If we focus on the building chatbots’ industry we have the following products that are made available by Microsoft:
  • (new) Power Platform – Power Virtual Agent
  • (new) Bot Framework Composer
  • (update) Bot Framework SDK
This article will discus the difference between these 3 products. But also for who they are built and how flexible they might be.

Power Virtual Agent

A screenshot of the Power Virtual Agent. Showing from left to right: menu, chatbot, help
This product was unexpected. As being part of the “AI Inner Circle” I knew about below tools, but not about this.
Might be strange but the Power Virtual Agent is not 100% part of the Bot Framework team. But part of the Power & Dynamics team.
Enough about ownership. The tool has been fully build for business users. It is an online application with a very nicely build GUI that needs no code at all. It has a lot of prebuilt topics that are freely to use.
I already made an introduction video (preview version) that shows you all the features.
But in short what features does it have.
  1. Topic (Intent) recognition
  2. Entity recognition
  3. Calling Flow Automate tasks
  4. Human Handover
First time I played around with this new tool, I was really amazed of the simpleness of the tool. It gives non technical people the chance to play around with chatbots too.
This is really the option if you don’t want to write any code at all.

Pros vs Cons

  • Easy to use
  • Call backend processes with Power Automate
  • Extension possible with Bot Framework Skills
  • Easy deployment to different channels
  • Easy process to add authentication to your bot
  • No LUIS Integration, which means you need to ask for your entities instead of recognizing them together with your topic (intent)
  • You can not make use of Qna maker
  • There is no option for Language Generation
  • You can not keep track of different version
  • No debugging possible

Bot Framework Composer

Screenshot of the Bot Framework Composer showing how a dialog is build
Now this one was not a surprise for me. This was the missing link for Microsoft Bot Framework. A tool that can help speeding up chatbot development.
It has so many awesome features. There is no struggle anymore to visualize your dialogs. Since you build your dialogs in a UI its so easy to go through them with your customers.
Another feature is that training your LUIS and QnA Maker is done within the tool. There is no need anymore to switch between different environments.
This is a great tool if you don’t want to write a lot of code. Having coding skills will help you though to get some extra features up and running.
The best feature probably is that it is fully open source. So ‘you’ can help to make it even better or you can white label it to offer it to your customers. It also gives you the opportunities to build specific connectors to tools that are not supported by default.
Although you can link the generated code to a version control system. It might be more difficult to work together with multiple people on the same project.
Its only in preview. But I’m looking forward to build my first bot with it for a customer when there is a stable release. (Might be at Build! 2020, I think)

Pros vs Cons

  • Easy to use
  • Call backend processes (API)
  • Train LUIS within the app
  • Train Qna Maker within the app
  • Version Control
  • Debugging via Bot Emulator
  • Low Code but not No Code

Bot Framework SDK

Schema of the Bot Framework SDK showing the possible integrations with 3th party apps.
And the last but not least the highly adaptable SDK that is already at version 4.6 preview (at the time of writing this article). Also this SDK is fully open source and supports multiple languages.
The SDK is available for C#, Java, NodeJs & Python. Over the time the way of building a chatbot has changed a lot. I remember we started building our first bot in v3 preview. Our chatbot was read but had some issues. Then the stable version got released, and we had so much code to rewrite. But at the moment there is a good MVC way of writing chatbots.
The great thing about the SDK is that the sky is the limit. Anything is possible, you can write your own integrations.
One of the latest features is Adaptive Dialogs. This means that once you are in a dialog (Ex.: Booking a flight), you can move to another dialog (Ex.: users ask what the weather is at the destination) and then go back to where it was.
Same as for the bots build with the Composer this is done fully on a local computer. This means that debugging is much easier. In this case we can run line by line in our IDE and figure out what is wrong.
And since its fully in code we can keep track of our versions. But also working together with other developers is possible. What is not the case with the Composer.

Pros vs Cons

  • Anything is possible
  • Usage of dispatch is possible (automatic choosing of Qna vs LUIS)
  • Bot Emulator
  • No visual UI
  • Learning curve is steep, you really need to understand the basics well before you can build something decent

Building chatbots with Microsoft​

Building a chatbot with Microsoft has changed a lot overtime. They had to catch up a lot compared to some other players. But too my opinion they really did a great job. Now there is a tool for everyone.
If you want to build a simple chatbot and you don’t have any coding skills then use Power Virtual Agent. Its an easy and simple way to build a chatbot.
If you want to make use of the full capabilities of LUIS and QnA Maker, and you do not want to code. Then the Bot Framework Composer is your tool. But keep in mind the tool is in preview at the moment. So I would suggest not using it for a chatbot that needs to be production ready.
But if you want full flexibility and control of your bot then Bot Framework SDK is the way to go.
You can start with the Power Virtual Agent but if you want to make your chatbot smarter and add more flexibility. Then you will need to move to the Composer or the SDK.
What is your next chatbot project?