I’ve been experimenting with this: I’ve been interacting with ChatGPT as various Animal Crossing characters. My family plays Animal Crossing, so I wanted to see if I could make chatbot villagers.
I’ve been able to do it fairly well one-on-one, where I create appropriate prompts to interact with, but ultimately I wanted to make a little hobby kit for people to play around with.
While there are a lot of moving parts, I wanted to share what I’m doing at a high level, in case folks are doing similar.
Basically, each villager/character is a Persona, and each message they send is short like in the game…
…and I track all the messages they send in the forums, as what I call “indoles”:
Etymology 2
From Latin indolēs (“inborn quality, nature”), from indu- (“within, in”) + ol- (“to grow”) (an affix also found in abolish and adolescent).
Pronunciation
- (Received Pronunciation) IPA(key): /ˈɪndəʊ̆liːz/
Noun
indoles (uncountable)
- Natural disposition; innate character; unalterable intrinsic traits and qualities (collectively).[1]
References
- ^ The Oxford English Dictionary (2007)
Okay, so here is what I do:
I create dozens of indoles for each character, made from quotes from the game. And I send a bunch of them as part of the system prompt to the chat API. From the Common Crawl, ChatGPT is already effective at pretending to be most characters, but this way I’m able to interject “personality” in each API call.
Okay, here’s the fun part! Each response that goes back into my forums becomes a new indoles! ![]()
When I filter the indoles to go along with the chat API call, half of them are recent responses, and the rest are randomly chosen from the rest (I put a limit on how many are included, so I don’t mess up my API calls).
This allows the Persona to slowly over time become “personalized” based on the conversations they’ve had. And because I load recent responses, there is a bit of “awareness” of the Personas interactions.
I haven’t quite gotten to it yet, but eventually I plan to have them talk to each other, but I’m rate-limiting responses (for lots of reasons: ease, funding, because I like relaxed forums), and I haven’t quite figured out the @-mention logic for them yet.
Let us know if you are building something similar. ![]()
