After eight months of development, we're excited to announce the official launch of Stealth. Stealth is an open source Ruby framework for creating conversational voice and text chatbots.
Here at Black Ops, we've been building chatbots for small and large brands for as long as chatbots have been a thing. In that time, we were always longing for the same great tools and services that we were accustomed to during our time as web developers. We felt trapped by services that required us to build our chatbots exclusively on their proprietary platforms. We also felt limited by services that didn’t allow us to customize and extend our chatbots by writing code (our customers did, too). Why couldn’t we build our chatbots using our favorite code editor or deploy them using Docker or Heroku?
So back in August 2017, we started imagining a better way, so we wouldn't have to settle anymore. We wanted this framework to include:
With all of those goals in mind, we decided to create an open source, Ruby framework. We chose the Ruby language not only because it’s our favorite, but also because of the diverse community and rich libraries (gems) available. We even modeled a lot of Stealth around Ruby on Rails.
In addition to all of the great things already provided by Ruby and Rails (ActiveRecord, ActiveSupport, Sidekiq, Sinatra, RSpec, Bundler, wide support, etc.) we also added a few specific things that make building Ruby chatbots with Stealth fun and easy.
Since Stealth is an MVC-architected framework, we had to design our own View layer. We call them Replies. Replies are YAML templates that support ERB. Regardless of which messaging platform your bot is connected to, replies are standardized. This means that connecting your bot to a new network can be as trivial as adding a new gem.
We also built our own concept of sessions. Sessions in Stealth are Redis-backed and they map users to positions within your bot. We call those positions flows and states. You can think of flows and states as lightweight state machines. More info about both are in our Getting Started guide.
Lastly, we designed best practices right into the framework. By default, bots come with three flows: Hello, Goodbye, and CatchAll. The hello and goodbye flows handle user entrances and exits. The catch_all flow is responsible for errors and for the times your bot fails to comprehend a user’s message. You can think of the catch_all flow as our advanced version of the
HTTP 500 error page. The
catch_all flow is capable of re-asking questions, routing users to different flows, and even handing off a conversation to a human operator. More info about
catch_all’s can be found in our documentation.
We are releasing version 1.0 today and it contains support for everything mentioned above. Additionally, version 1.0 comes with official support for Facebook Messenger and SMS (via Twilio). It also supports Mixpanel analytics and the AWS Comprehend NLP/NLU service.
We hope you love building chatbots with Stealth, and we can’t wait to see what you build. We already have so many more features and service integrations planned, but we welcome your feedback and pull requests! 🤖