Dev Watch

Blog archive

Microsoft, Facebook Lead the Way in New-Age Bot Programming

As chatbot Tay could tell you (hopefully without racist bigotry), bots are a hot topic in software development right now, with Microsoft and Facebook among the most prominent leaders guiding the movement.

While they have recently seen a marked uptick in interest assisted by artificial intelligence (AI), machine learning (ML) and cognitive computing advances, bots have been around for a while -- and have been stirring things up in unexpected ways at both Microsoft and Facebook.

Though some early efforts in the evolving arena of AI-assisted bots are obviously -- and understandingly -- rough around the edges, the two companies are providing tools and guidance for developers wanting to explore new bot-enabled opportunities.

Tay, Chatbot Gone Wild
Tay, Chatbot Gone Wild on Twitter (source: Twitter)

The importance of the evolving technology to both companies was shown recently as both Microsoft CEO Satya Nadella and Facebook CEO Mark Zuckerberg featured bots -- specifically chatbots -- extensively in keynote addresses at their respective developer conferences.

Nadella framed the bots conversation in the context of a "Conversations as Platform" initiative.

"We also are going to talk about a new emerging platform," Nadella said. "We're in the very early days of this. It's actually at the intersection of all of our three ambitions. We call it Conversation as a Platform. It's a simple concept, yet it's very powerful in its impact. It is about taking the power of human language and applying it more pervasively to all of our computing. That means we need to infuse into our computers and computing intelligence, intelligence about us and our context. And by doing so we think this can have as profound an impact as the previous platform shifts have had, whether it be GUI, whether it be the Web or touch on mobile. And so we'll have an extensive conversation about the beginning of this new platform journey."

Just a couple weeks later, Zuckerberg echoed that theme at the company's F8 developer conference.

"We think that you should just be able to message a business in the same way you message a friend," Zuckerberg said. "You should get a quick response and it shouldn't take your full attention like a phone call would and you shouldn't have to install a new app. So today we are launching Messenger Platform, so you can build bots for Messenger. And it's a simple platform that's powered by artificial intelligence, so you can build natural language services to communicate directly with people."

Bots at Microsoft
As for the tools and guidance, Microsoft introduced the Microsoft Bot Framework preview to "build and connect intelligent bots to interact with your users naturally wherever they are, from text/SMS to Skype, Slack, Office 365 mail and other popular services."

The Microsoft Bot Framework
[Click on image for larger view.] The Microsoft Bot Framework (source: Microsoft)

It features a Bot Connector to help developers connect their existing bots to different communication tools, such as GroupMe, SMS, e-mail and so on. For creating brand-new bots, there's a Bot Builder for Node.js, with a BotBuilder SDK hosted on GitHub.

The company is also showcasing sample bots that were shown off at Build in a Bot Directory. These include bots that summarize articles from provided URLs, search Bing for news, images and music, explore "what if" scenarios and more.

Just a few days ago, Microsoft expanded client support for its Skype bot, part of the company's Skype Developer Platform that invites developers to "Build a bot for Skype. Get access to a preview of the Skype Bot Platform."

Earlier in the year, the company's research unit introduced Botivist, "a platform that uses Twitter bots to find potential volunteers and request contributions."

Earlier this month, Microsoft's Jeff Hollan published a blog post detailing how the Bot Framework works better with the company's Azure cloud service. "In just one weekend I was able to make a bot that leveraged workflows (Logic Apps), APIs (Web Apps), security (Azure AD), on-premise systems (Hybrid Connections), and Machine Learning (luis.ai) to create a bot that improved my work productivity. The power and variety of Azure offerings was the only reason I was able to build such a system in such a short amount of time."

Bots also figure prominently in Microsoft's Cortana Intelligence Suite, which includes Microsoft Cognitive Services, "a collection of intelligence APIs that allows systems to see, hear, speak, understand and interpret our needs using natural methods of communication."

"Bots (or conversation agents) are rapidly becoming an integral part of one's digital experience -- they are as vital a way for users to interact with a service or application as is a Web site or a mobile experience," Microsoft says in its Bot Framework documentation. "Developers writing bots all face the same problems: bots require basic I/O; they must have language and dialog skills; and they must connect to users -- preferably in any conversation experience and language the user chooses. The Bot Framework provides tools to easily solve these problems and more for developers [for example], automatic translation to more than 30 languages, user and conversation state management, debugging tools, an embeddable web chat control and a way for users to discover, try and add bots to the conversation experiences they love."

Bots at Facebook
Over at Facebook, the bot initiatives aren't as extensive, with a more targeted focus on its beta Messenger Platform, which promises to help developers "discover all the ways bots on the Messenger Platform help you join the conversation." Earlier this month, the company published a guide on How To Build Bots for Messenger.

"Starting today, all developers and businesses will be able to build bots for Messenger, and then submit them for review," Facebook's Seth Rosenberg said. "We will gradually accept and approve submissions to ensure the best experiences for everyone on Messenger. We're putting people first with new guidelines, policies and controls to offer the best interactions we possibly can."

"We're excited to introduce bots for the Messenger Platform," said Facebook exec David Marcus in a blog post. "Bots can provide anything from automated subscription content like weather and traffic updates, to customized communications like receipts, shipping notifications, and live automated messages all by interacting directly with the people who want to get them."

The three main capabilities within bots for Messenger listed by the company are:

  • Send/Receive API. This new capability includes the ability to send and receive text, images and rich bubbles with CTAs [calls to action].
  • Generic Message Templates. We think people prefer to tap buttons and see beautiful images, rather than learn a new programming language to interact with your bot. That's why we've built structured messages with call to actions, horizontal scroll, URLs and postbacks.
  • Welcome screen + Null state CTAs. Our first principle was giving developers space to own the experience. Think of the message thread as your app. We're giving you the real estate and the tools to customize your experience. This starts with the welcome screen. People discover our featured bots and enter the conversation. Then, they see your brand, your Messenger greeting, and a call to action to 'Get Started'.

To help developers leverage these capabilities, Facebook is providing the Wit.ai Bot Engine to provide "ongoing training of bots using sample conversations. This enables you to create conversational bots that can automatically chat with users. The wit.ai Bot Engine effectively turns natural language into structured data as a simple way to manage context and drive conversations based on your business or app's goals."

Facebook's Bot Engine
[Click on image for larger view.] Facebook's Wit.ai Bot Engine (source: Wit.ai Inc.)

To help get their efforts noticed, Facebook said developers can use Web plug-ins, Messenger Codes (scanning a provided code to start a conversation), Messenger Links and Messenger Usernames (both of which provide personalized links that can be shared anywhere online), which are detailed here.

Other Players
Microsoft and Facebook are helping to lead the way in bot development, but they aren't the only major players in this wide-open new game. There's IBM's Watson, of course, and Apple's Siri. And there's plenty more going in in this space. Chatbots.org publishes a "List of all chatbots (virtual assistants, chat bot, conversational agents, virtual agents) in the world" and a "New to Chatbot programming" forum site.

Pandorabots Inc. offers Artificial Intelligence as a Service (AIaaS), described as "a RESTful API for integrating artificially intelligent chatbots into applications," along with the Pandorabots Playground, "a free, integrated development environment for building chatbots loaded with features and tools."

For more on chatbot development, check out Why Developers Love Chatbots and Bots: An introduction for developers. There's also The Book of AI, describing "How To Build Chat Bots with The Personality Forge," which is "an advanced artificial intelligence platform for creating chat bots."

Still in the Early Stages
Despite the aforementioned uptick in interest, Forrester Research analyst Julie Ask earlier this month provided a word of warning, listing "a few big hurdles standing in the way of bots becoming the next big thing in 2016":

  • Bot services must be convenient. Consumers want their mobile moments addressed by a better (read: faster and more contextual) experience. The apps that consumers use today like Uber, Yelp, Amazon or Facebook Notify, are amazing. There is nearly zero friction for the consumer to get what he or she wants immediately in context -- or what Forrester refers to as a mobile moment.
  • The enabling technology isn't sophisticated. Great bot services will depend on artificial intelligence and insights. Consumers don't want to chat with machines that ask them dumb questions. Only one in four enterprises surveyed by Forrester even use location data to make mobile services more relevant -- let alone insights built on the immense context available.
  • Developer tools are nascent. Fortunately today's chat platforms were built with extensibility in mind. That said, enterprise interactions demand enterprise quality -- major brands will not go to market based on a few developers trying this out in the office. Microsoft announced a Bot framework at Build 2016, and there will be many more to follow.

However, like most in the development community, Ask is generally optimistic about bots making a major impact in our lives and the lives of developers.

"Bots, and the chat platforms they run on, provide an amazing opportunity for brands to deliver contextual experiences on borrowed mobile moments," Ask said. "This is the first step on a journey towards a bright future where consumers no longer orchestrate their needs through content and services, but sit back and let the technology work for them."

Any experience with developing AI bots and chatbots? Comment here or drop me a line

Posted by David Ramel on April 22, 2016