2008/09/24

About egg-fu

egg-fu is a script for eggdrop IRC bots. In short it learns from what people in your channel talk about and progressively becomes more conversational. It started out pretty simple but as more ideas came to me it quickly became more complex. Because I was releasing it as a free, open source project I also made it completely configurable; every aspect can be configured, from the styles of responses to the native language.

It's a fairly successful project considering how niche it is and it's been going strong (as far as the number of downloads logged daily) even today, in spite of the fact that it has not been updated since 2003.

But I do plan on putting more work into egg-fu. A friend of mine has been wanting to get involved in the project and he has some great ideas for egg-fu. Of course, I also plan to update the code quote a bit as well; there are a lot of things I'd like to improve upon.

So stay tuned for more news on this project.


For a more detailed description, below is text quoted straight from the documentation included with each release:

First of all, what IS egg-fu? egg-fu is an eggdrop script coded in Tcl designed to simulate artificial intelligence, and engage an IRC user in conversation. The program is not actually artificially intelligent, as it doesn't make it's own decisions or form it's own opinions, it simply imitates such behavior by listening to what people say in a channel and remembering key points and 'learning' new things to say in this manner. When a topic that egg-fu recognizes is brought up or a keyword is said, egg-fu will randomly pick a tid-bit of information it has learned about it and respond appropriately, according to your own configurations.

This is the main function of egg-fu. To learn and respond. However, egg-fu can be configured as a medium for storing and retrieving information only when prompted.

egg-fu was based on the infoegg bot (which is based on infobot). Info egg was designed such that it would learn by listening and only respond to questions. It's learning matrices were very simple. It was these, that egg-fu was modeled after, and greatly improved upon. egg-fu talks and reacts much more fluidly and intuitively than info egg and requires no prompting to respond, unless configured that way. Being able to respond to any line of text sent to a channel (provided it's a topic that egg-fu knows) makes it's speech appear more life-like. In addition to its own learning capacity, all the teaching methods (features) coded in allow you to tweak egg-fu's responses to give it an even more realistic personality.

What prompted me to create egg-fu was when I was idly tweaking the code in infoegg and fixing bugs. When I realized how much work I was putting into it, I decided to make my own. The code was at first loosely based on infoegg's code, but has since been coded out. However I still credit infoegg's author to the birth of egg-fu.




No comments: