Getting Started | Contributing | Mailing List
Note: This project is no longer supported, as I no longer have the time to maintain it.
Abot (pronounced Eh-Bot, like the Canadians) is a digital assistant framework that enables anyone to easily build a digital assistant similar to Apple's Siri, Microsoft's Cortana, Google Now, or Amazon Alexa. Further, Abot supports a human-aided training backend enabling anyone to build services like Facebook M.
Unlike those proprietary systems, Abot is open-sourced and extensible. By providing an extensible platform onto which anyone can easily add functionality, Abot is the first A.I. framework that aims to be available everywhere and— ultimately—to do everything.
CloudBot is a simple, fast, expandable open-source Python IRC Bot!
CloudBot is currently unmaintained. The project possibly usable, but there are currently no developers building new features or fixing bugs.
There are several forks of CloudBot which you may want to use instead. These projects have much more work done on them, and are thus incompatible. If you already have a running CloudBot instance you will probably need to start over from scratch.
snoonetIRC/CloudBot : https://github.com/snoonetIRC/CloudBot
The prototypical IRC bot responds to text. Generally, the pattern is you provide a regex to match on, and some code to run when someone says something in chat that matches your regular expression. Your plugin runs when a pattern match happens, and then returns.
Your Lazlo module, by comparison is started at runtime and stays resident in memory. Outwardly, Lazlo acts like a bot, but internally Lazlo works as an event broker. Your module registers for callbacks -- you can tell Lazlo what sorts of events your module finds interesting. For each callback your module registers, Lazlo will hand back a channel. Your module can block on the channel, waiting for something to happen, or it can register more callbacks (as many as you have memory for), and select between them in a loop. Throughout its lifetime, your Module can de-register the callbacks it doesn't need anymore, and ask for new ones as circumstances demand.