Knab is a completely modular bot with support for any number of sources (e.g., IRC, a Web page, the console, etc.). Knab was originally designed as a drop-in replacement for infobot, but has expanded into a fully-functional modular bot. It is not IRC-specific: it has been designed so that it can accept events from any source. In addition, its behaviour is finely configurable, each aspect of its functionality being controlled by hot-pluggable modules which can be loaded and unloaded while the bot is still running. New modules are easy to write, making the bot able to behave in any way the bot's owner wants.
Knab means for "Knab is Not A Bot", and is a bottom-up implementation of a general purpose "bot": effectively a program that takes text as input, and gives replies based on the input. The most common use is as a bot on an IRC channel, doing Google lookups, dictionary definitions, Weather checking, and general fact remembering.
Knab is written completely in perl, and will thus run on any platform that perl will, although I am developing on a FreeBSD machine with perl 5.005_03.
Knab differs from other bots I have seen (notably infobot (http://www.infobot.org)) in that it is completely modular: everything is a module that can be enabled and disabled. It is "source" independent (i.e. the source of the text can be IRC, the console, a web-based form, a network socket, Jabber, etc, as long as a module has been written for the medium), and the modules are hot-pluggable.