Modified: 05th Jun 16 |

Chatty the IRC chat bot

October 1st, 2009

First a little overview:

  • First off, Chatty can be found in channel #chatty on FreeNode IRC network.
  • Chatty will not react unless you address it directly, like "Chatty, Hi".
  • Chatty does not 'just' match request to response. So don't be surprised when the bot does not respond what you think you taught it. It's not a bot to hold simple facts, it's a bot that is intended to be rather autonomous (human).
  • Chatty will not let you see what you just taught it. You need to end the conversation with '@end' first, and initiate a new conversation.
  • If you are talking to Chatty, only you are talking to Chatty. When Chatty addresses you, it will only consider what you respond. If someone else begins to talk to Chatty, they will be doing their own little conversation with the bot.
  • If it's more than 20 minutes ago you spoke to chatty, it will automatically start a new conversation even though you haven't ended the previous conversation.
  • IMPORTANT! - If you get a bad response from Chatty, please teach it an alternative response using "Chatty @learn <better response>". This is key to getting a sensible memory.


Today I let my chatbot loose on IRC. The chatbot is meant to learn by interacting with people. What that means is that when i first put it on IRC it knew nothing what so ever.

The primary means it's intended to learn, is by the responses people gives to the sentences the bot replies. The first 40 people that interacts with the bot, will probably get a lot of "I have no response, please teach me" messages from the bot. Naturally it will not be able to say anything sane when it has a completely plain mind.

When the bot complains that it doesn't have a response, it is possible to teach it by typing:

Chatty @learn <some response>

Notice that the conversation cannot go on, until you have filled in something you would have expected the bot to reply to your request.

Just from observing the first couple of conversations with the bot (with an empty brain) people will pose a request, then teach it a proper response, and then pose the same request again to see how the bot reacts. This is not how the bot works, although I perfectly understand that people would expect it to (i would do the same thing myself with a strange bot).

Let me explain a bit. The bot does not work on a simple request-response fashion. The bot is designed with a lot of things in mind, one of them is, that it is supposed to take the context of conversation into account. This means that the bot will be having isolated conversations with people, and if you just taught the bot something in a conversation, it will not give responses it just learned in the same conversation as you're having.

You can however force the bot to end the conversation by issuing the commend:

Chatty @end

If you then initiate a conversation with the bot, it will take into account stuff you taught it in the previous conversation.

Another effect of this isolated conversation nature, is that you cannot intefere with conversations others are having with the bot. That is, if someone is telling the bot something, and it cant respond, you cant teach the bot a proper response. Only the person having the conversation can alter the conversation.

If you are having a conversation with the bot, and it begins telling bogus, you can use the @learn command to teach it a better response. This is fairly important, otherwise you basically taught it that it's response was ok.

The goal, is that when enough people have spoken to it, it will begin to make sense. Just as if it was a child.

The ultimate goal, is to make the bot compose sentences on its own.

So that's what i wanted to say for now. - Happy chatting.