You're also right that Abot plugins as they stand now do not improve or learn automatically over time. I've done some work on a training system which will enable a Facebook M or Magic-style human-aided training backend. It'll be a plugin just like any other which will eventually be hooked up to a neural net with optional centralized training (so you don't need a GPU rig or tons of data to get started). An early version of that is probably going to be ready going into June with the v0.2 release.
Thanks so much for the feedback. I'd love to continue this discussion and find ways to improve plugins and training. If you're interested, there's a mailing list here: https://groups.google.com/forum/#!forum/abot-discussion
Regarding the neural net, I think that's an important feature because the most difficult part about guessing triggers is, well, guessing. Our language is awfully diverse and I think you'll get better results in the long run.
I've applied for membership to the mailing list. I'll keep my questions there.
I just wanted to ask about the intelligence built into the bot. I dug through the code a bit (great documentation btw) and it seems that this is using a state machine you've written and custom plugins for different scenarios. How would one account for situations were a case keyword in a plugin is used in a different context? Say for example, I ask "What street number did you say?" to the bot with this plugin^1. It seems that these are items that would trip it up?
Also these bots would not "learn" or get better over time without direct human input correct?
I hope these don't sound like critiques. They're not. Just generally curious about how all of this is put together - particularly the state machine and then also how the plugins can be built (and improved).
[1]: https://github.com/itsabot/plugin_restaurants/blob/master/re...