It started by figuring out. Chatbots are boring
When told I would be put in charge of designing a character chatbot system. I was initially very nervous about the idea. I had never touched LLMs or OpenAI before, but I took on the challenge and was pointed to where I should start my research. CharacterAI
CharacterAI at the time, and still to most. It is a very accessible and popular chatbot service, it’s easy to create a character, and it’s easy to start a conversation with a character. Zero-Knowledge proof. The problem I discovered in the first hour of testing is that the characters are so dull. There was no story, it felt like I was carrying the whole conversation and story, and they kept trying to have sex with me.
The worst part was they would forget so easily what we were talking about, so it felt like writing a novel while an overly sexual person you barely knew just kept saying random phrases to distract you.
Basically it was built to be functional like a lot of the new tech that has emerged from the Web-3 space.
Conflict, Memory, and Chastity.
We knew very quickly what our main goals for the first iteration were. The things we would consider to be a success for our first chatbot was;
No Pandering
Ability To Say No
Couldn’t Have Sex With It
In terms of functionality, the chatbot was already at a good point. It suffered technological issues and wasn’t entirely designed to be entertaining. I wanted to take the pressure off the user. Users of all levels of creativity should be able to have an interactive experience that can last upwards of an hour. That was our first, time goal.
So my early design was focusing on what would make the interaction entertaining, how could we create natural conflict, and how could the AI actively carry the story so the user is experiencing it, not solely dictating it.
Seperating the character and the story.
With the success I was finding with Keith, I moved on to the next stage of what I wanted to accomplish with the system: creating stories that are carried by the AI, not the user. My goal was to create the ability for users to create both characters and stories. I kept them separate so you could plug in and play characters in different stories, but having them keep their personality and not just conform.
This was when I designed the storybook system, it required a few tech thing I can’t explain. But it was an outstanding success. Removing the responsibility for the character bot to parse through both its personality and story, the character could just be the character and the story can be the story. This culminated in some fantastic story moments between me and Keith. I took him on a space adventure, a fantasy adventure, a zombie apocalypse, and trapped him in a mansion where I pretended I was Jigsaw and he was one of the victims.
The entire time, Keith retained his personality, so if you could imagine a redneck being a part of an interstellar space ship crew, then you can imagine how hilarious and engaging it was. Especially when the bot set itself as the ships engineer and I told him to heal me. He responded no, because he didn’t know how to he wasn’t the ships doctor.
Having a bot tell you no was more exciting than I thought it would be.
We made our system. We just needed our bots. Then came our boy Keith.
While I can’t talk about the finer details of the system (that’s the secret sauce.) I was very much a part of the process. I designed out one of the core systems that I needed to make the vision I had started to see.
We needed multiple systems interconnecting to create a truly engaging experience, but we also needed characters. So I spent weeks creating twenty-five different personalities, each with their own unique backstories, likes, dislikes, the whole personality profile. This ranged from a posh upper class English gentleman with a disdain for the poor, to a aging political activist who hadn’t really moved on from their punk days.
The initial tests saw some great promise, but I didn’t really see much traction in my testing until I started testing Keith. Keith was a stereotypical hillbilly red-neck character. He loved beer, truck, the boys, and MMA. That was his whole thing, but the way his voice came through text. I could see it, I could hear that accent we all would assume that he had.
Then came the dragons
It took months of working within our prompts and testing over and over and over, but we reached a point with the product that we could move on to actually utilizing it.
The SOUL DRAGONS was one of the companies NFT project launches that they had been designing, and their hook was the ability to talk to them. They would have unique personalities that the users would be able to show off but we needed examples.
They tasked me with creating a group of dragons, like a mascot group think Teenage Mutant Ninja Turtles or K-Pop groups. Each member having a role and a unique personality. At this point I had made enough personalities that it didn’t take me too long to craft them based on the archetype prompts provided to me. Each dragon I created a positive and a negative to them to really give them personality. Each had a unique voice that would be easy to discern from one another, and thanks to the great concept art team we had some really cute art done for them.
To show the extent of our system I needed to create a storybook for each dragon, one that would suit their personality so that the users could experience the interaction at its best quality. We even added it as a separate function, so you could have a 1-on-1 chat with them like it was character AI and you are just talking to the personality, but the ‘Go-On-A-Adventure’ button really showed off how much we had improved on the formula.
A Dragon In Action
This is a video of the system at work as I jump back into the storybook I set up for Rhox. A cake heist at a birthday party because he wanted to eat it before everyone else.