bBot is in active development with an alpha version focused on fundamentals for ease of maintenance and fully tested module design.

The upcoming beta will include a set of modules that provide bBot's unique features for modelling and executing stateful conversational UI.

The first release will add tutorials and examples to get started. With at least one of each adapter to provide full utility and patterns.

Subsequent minor versions post release will add adapters for a variety of storage, natural language, and messaging platforms (including for voice interfaces).

Our next major version will introduce a front-end for conversation designers to prototype and test interactions, while maintaining the flexibility for coders.

Watch our GitHub milestones for detailed updates.

Alpha Modules

Application

Core

Loads adapters and middleware, controls the running status to pause, play, shutdown, reboot.
~(O_O)~ bleep bloop.

Config

Apply settings from command line arguments, environment variables or config files. Accessible to all modules and extensions.

State

Provided to callbacks, contains all attributes of the bot and current interaction (message matching and language processing). Used to invoke response.

Message

Received from the platform, with user and room meta. Response envelopes can address user, room or a platform event, like reactions and topic changes.

Message Adapters

Use any messaging platform to hear and respond to message. In alpha, we include adapters for Rocket.Chat and a command line adapter for testing.

Storage Adapters

Use any storage provider to save the bot's memory and persist transactional data like messages. We include Mongo and Redis by default.

Listen

Match incoming messages to callbacks by text pattern, natural language processing, or custom functions and fallbacks.

Bit

Bits provide a simple schema for defining a single point within a series of interactions. Bits link together to make conversations.

Brain

Controls all the operational memory and handles anything stored longer term. It keeps known users and messaging history or custom data sets.

ID

Assigns every listener, message, user and state instance within either a hash or sequential id, tracing every event to it's source.


In development...

Scripts

Allows bot to process external file/s on load. For developers to add behaviour and conversation content using bBot (its primary purpose).

Webhooks

An internal express server sets up HTTP listeners, to change the bot's state or trigger interactions in the message platform.

HTTP Requests

Post or get content between the bot and external services to provide real-time context to an interaction.

Beta Modules

Natural Language Adapters

We will include Watson as a default option for adding NLU to match and respond based on message intent, entities and/or sentiment.

Path

An essential component for conversations. Matches message against possible branches in a tightly scoped context. Adapts to user input in real-time.

Dialogue

Controls conversation paths, with fallbacks and timeouts. Routes responses as required.

Scene

Enters and conducts audience participation in dialogue. Audience can be a user or a whole room. Once engaged, the bot processes input within that context.

Improv

Parses message templates at runtime with data from user attributes, collected context and/or custom extensions.

Director

Provides conversation firewalls, allowing certain users to be authorised or blocked from entering particular interactions.

Outline

A simple conversation modelling schema. It's attributes automatically configure modules to populate and conduct a series of interactions.

Transcript

Record conversation event details. Transcripts are searchable and can be used to populate response context from interaction history.

Release Modules

Message Adapters

Messaging platform support extends to Slack and Messenger.

Rich Messages

Send messages with rich UI payloads. Attach button menus and multimedia content, to be presented in the message platform.

Feature Tutorials

The bot comes loaded with a variety of example interactions that can be engaged with and modified to learn the basics.

Pretend

A set of mock adapters, that emulate processing developer's scripts in a live platform. For unit testing assertions on bot interactions.

Post Release Modules

Internationalisation

Providing multi-lingual scripts allows the i18n module to change the bot's language in real-time, based on user attributes or NLU detection.

Web Dashboard

View the operational status and active behaviour of the bot. Can report on known users and interaction transcripts.

Analytics Adapters

Provide a drill down feed of analytics data to external platforms. We'll package Chatbase as a default provider.

Webhook Adapters

Integrate events and share data with external platforms without effort. We'll provide Zapier and StackStorm to start.

Message Adapters

Messaging platform support extends to Telegram, Discord, Hangouts as well as voice platforms (TBA).

Natural Language Adapters

We'll add more adapters for Rasa, Wit.ai and Dialogflow.


Icons created by ProSymbols from the Noun Project