Chatbots have gotten a lot of hype over the last few years. Now that the hype is dying down, it’s clear that there is a long way to go before chatbots are ubiquitous tools for interacting with our favorite services.

There are many tools to help you develop a bot, but when SmartLogic wanted to develop “The Incredible Baltimore Bill Bot”, we couldn’t find anything in the Elixir ecosystem that suited our needs.

So we decided to roll our own.

In the process, we learned that a chatbot architecture based on our own cognitive processes was easier to develop for and more efficient in its use of resources.

Out of this attempt, I’ve developed a platform-agnostic framework for developing chatbots using Elixir and Phoenix. The architecture is loosely inspired by modern cognitive psychology and easy to grasp at a glance.

The result of this is a framework called Virtuoso (WIP) which I will describe in this talk. If you follow along you should have a working FB Messenger bot in about 30 minutes.