Microsoft CEO Satya Nadella used his Build 2016 keynote to suggest a new road to what he calls a "more personal computing," suggesting we need to think of "conversations as a platform" and interact with sites and services beyond the traditional app and Web browser.
Key to that new platform are a new generation of conversational apps built on many years of computing research, called "bots."
While the experimental Tay bot Microsoft unleashed on Twitter last week may have been a failure, general-purpose chat bots are increasingly powerful tools that provide interactive services on platforms such as WeChat, Slack, and soon on Skype. Instead of going to a Web page to order pizza, you'll converse with a Domino's bot. Or instead of slogging through flight times, you'll be getting flight information from a Delta or United bot.
Building with the Bot Framework
Ubiquitous computing researchers have long focused on the idea of the agent: Software that will complete tasks on behalf of users. While bots as they stand are much simpler than an agent, they're tools that can work in conjunction with smarter, more personal software such as Microsoft's Cortana. That also means bots are meant to be quick and easy to build and deploy, which is where Microsoft's new Bot Framework comes in.
Designed to be cross-platform, the Bot Framework has its own developer portal. You can quickly sign up and register existing bots to use the portal's back-end services, or build and deploy your own bots from scratch. Bots can be built to work with a wide selection of endpoints, including SMS messaging, so your app can be connected to an ancient Nokia mobile phone running on a 2G network somewhere in a developing country, extending reach well beyond the bounds of the Internet.
At the heart of the Bot Framework is the Bot Connector, which handles connections to channels, as well as cloud storage for state and session tracking. Bots themselves are written using an open source Bot Builder SDK for C# and Node.js, with the SDK hosted on GitHub (though if you have an accessible REST endpoint, you can use any language you like). Finally, registered bots are listed in a public directory, which includes a scratchpad chat service where users can try them out.
Bots are, at heart, chat engines, taking and parsing messages from a user and responding appropriately. For example, a food-ordering bot will take an order, acknowledge it, and pass the order onto an e-commerce system, along with a user's credentials to approve payment. Developers can use a local emulator to get started, with no need to connect to the cloud service. You'll need to build a series of call/response pairs to handle chitchat with a user, either looking for simple strings or by using machine learning tools to work with natural language responses.
Sign up for CIO Asia eNewsletters.