|
BotMadD is an unopinionated bot engine for Slack. It really has only one
opinion... that a bot should be written to handle one conversation, and the bot
manager (BotManD itself here) should manage the lifecycle of these bots,
starting up instances for new conversations and shutting them down once the
conversations are complete. BotManD bots are simple standalone executables which read input on stdin and
respond on stdout. BotManD starts up your bot based on configured triggers (a
separate instance is launched for each new conversation), and then gets out of
you bot's way. For people who still remember inetd, think of this as inetd for bots. (Would,
in fact, have named it botnetd but for some unfortunate associations the word
evokes.) I wrote BotManD because I often need a simple way to run pre-determined
commands on remote machines. I initially used small special-purpose scripts for
these developed using one of the many Slack bot libraries, but each time I
needed to add support something resembling a simple conversation, I ended up
having to write code to manage state and keep track of conversations happening
in multiple threads... a lot of plumbing work not related at all to the task I
was trying to finish. This frustration led to the development of the initial
prototype of BotManD, which I quickly found useful enough to justify
reimplementing with a few more bells and whistles to support different types of
bot interactions. The thing that sets BotManD apart from other bot toolkits is that it is
designed from the ground up to handle conversations. There are, of course,
other bot development tools which support conversations, like Botkit, but they
all seem to need tool-specific conventions to implement complex logic involving
conditionals or loops. BotManD bots, on the other hand, are simple executables
written in the language of your choice. Assuming your language of choice is
turing-complete, so is your bot. :) Of course, tools like Botkit do a lot of other things, not least of them being
the ability to talk to a bunch of different messaging platforms. BotManD only
supports Slack right now, though there are plans to support Teams and Discord
some time soon. Check the GitHub repo for instructions on getting started with BotManD, as well as
a bunch of examples, including a few real-world ones which do some interesting
things using ChatGTP and OpenAI's API. |