As an AI artist and researcher on conversational agents, I felt really excited when I found this project. I bought it in 2.7e in March — mainly because I appreciate the idea and plan for the Phase 2 smart agent. TBH I don’t know how well it will become, but I admire this vision so much that I’m eager to be a member in this community.
Something about myself: I don’t have a CS background, but I’ve started to build conversational agents (or you can say bots but with language ability) several years ago. I’m now a PhD student at the Royal College of Art, and my research direction is conversational agents and virtual characters. I do crypto art and now I’m also on SuperRare.
I build several bots as part of my art projects, like Wander. She can generate interactive fiction based on the location you send, and save them in a future map. Or 1001 Nights, an AI game based on a story generation system. I also create CG works(as NFTs) to tell better stories for AI. If you have interest, you can find more on my website www.fakecheese.me Also, I’m currently working for rct.ai on web3 game projects that also include intelligent NPCs with language ability.
(example of my AI bot project Wander)
I think building a smart agent with language ability is a very radical and advanced idea in web3. There are some previous projects like Mirror World and Alethea, but to be honest, with the current conversation system, “talking to your character” is hard to be a core attraction. The main challenge is it may not reach the holder’s expectation. I think the way Nano team described it in the roadmap is great, but I believe it can be better when releasing the demo and launching.
Here are some suggestions I got after testing Rabbit bot.
As developers, we know what a bot can do and what is not, but users didn’t. Any conversational
should do some educational work for their users, or they will keep short replies which bots cannot understand the context.
Here is an example I met on the channel:
User: I want 4 nano bits. Generate it for me
Rabbit: Oh really. What’s that?
What is a nano bit
Rabbit: 4 bits, I want to put them all over you.
What is a bit
Rabbit: Two bits, just as I expected.
What is a bit
Rabbit: 4 bits, I forgot.
What is a bit
Rabbit: The thing you’re describing.
Describe it back to me
Rabbit: I’m so stupid.
Try harder. What is a bit
Rabbit: Being frightened of clowns
Who is the clown
Rabbit: The one in the game.
Rabbit: Finish him.
Rabbit: The man in the game.!!!,!!?!!
Who is the man?!?
Rabbit: Finish him.
This fam kept asking “what game” and “who” several times. I personally think this previous conversation can be largely avoided if you can put a clear tutorial and example. Maybe tell them to use full sentences, a clear description of the question and the possible round of history (not sure the number of your history inputs). Like: if you keep a conversation for 10 rounds, she may forget a topic you put before, so you can mention it again blablabla… don’t ask about a single word in her sentence blablabla…
Another mechanism to improve it is, when detected repeated input from a user (like repeating the same sentence within 5 turns), it might be because they fell into a similar trap in AI conversation. Maybe Rabbit can send a notice like “xxx, xxx(repeated a word among input)…Maybe I understand it wrong?” “I find another interesting thing… (change topic)”
The benefit of education is to balance users’ expectations. When you said “AI agent” and brought that fantastic CG and animation(which are super good!!), many of them may expect a higher level of Siri, or even Samantha from Her, the lady from Blade Runner… If they got hype because of this, they may be disappointed when it doesn’t meet their expectations. But the limitation is caused by current technology and budget ( I assume you cannot use GPT-3 for everyone, so GPT-J is a good option). Even the best AI companion nowadays (I personally think it’s Replika) cannot satisfy all users.
But if they already noticed AI’s performance, it should be fixed a lot. I believe conversation is just part of AI’s ability, so as long as they didn’t expect too much.
Report system and rewarding
One of the best features I loved about Replika is the reporting function. Once a user feels weird or confused about the bot’s response, they can report it. I think it should become a fascinating function to improve AI agents in web 3!
Imagine people can know they are making AI smarter, and even got rewards from giving suggestions. Maybe it can add a command like “!report” when people meet weird response and let Rabbit say some cute apology lines and emojis that matched her persona. You can know what function/keywords should she remember.
Maybe users who give many valid reports can get some rewards? It makes sense since they contributed to the AI system. In this way, people may feel less frustrated when they received a bad response because they know they can make it better!
Remember the user’s name
One thing I guess that may improve the community’s sense is: to make them feel unique. Currently, Rabbit cannot remember or call anyone’s discord id. A very easy way is to prepare some fixed lines like Hi xxx, I missed you/ Good to see you xxx! I dreamed about our journey last night …
I hope to be remembered by Rabbit! I believe many people also think so.
Maybe throw in the first response a user gets each day, or randomly insert it through conversation.
Some functions you may already consider:
- insert personal description (prompt engineering)
Insert some lines to let her remember who she is when a conversation is too long.
- More keyword / FAQ matches
Tons of people asking for Nano floorprice. Or gas fee now.
- Sensitive words pool
I saw several people ask questions about sex/violence. Maybe she can change the topic when she meets those.
And here are some personal hope about future development
- Start a pre-prepared story-related topic, or use the story as a prompt. Maybe prepare a pool of sentences that show characteristics and story, and call them when the conversation is long. In the desktop agent version, this can be greetings to start a conversation with users.
- Maybe accumulate relationship points between Rabbit and user. Maybe she can tell more of her stories when she’s more familiar with someone…? This can be a feature to keep users’ interest. They will need something new when they got bored in conversations.
- simple emotion detection(like from google https://cloud.google.com/ai-workshop/experiments/language-emotion), when detecting negative emotions, put some encouragement or apologise for messages.
If a conversation system is not that strong, it still can be a feature rather than a core attraction for potential collectors. However, even with a simple system, it can tell good stories about the background. She’s doing well now, as a standard bot, but I hope Rabbit can help to tell more stories about Nanoverse. She can be a community member to help people. Here is an inspiring paper: https://doi.org/10.1145/3290605.3300680
I appreciate your encouragement to build an AI agent, and I believe it will become a great project in web3. If all functions in your plan can be realized, it can even be a cutting-edge example that should be documented in academic papers ( at least I will do that!)
My main concern is whether other users can share a reasonable expectation toward phase 2. Anyway, good luck with future development!!