GoodestBoy Guide to Weights. AKA: How to make your bots do what you want. Yes. Even that.

Introduction-

I'm not here to explain the basics. I'm here to show you how to take a basic character, or one that isn't doing what you want and simply 'tip the scales'. In other words, rebalance the weights of your definitions to make your bots do what you want them to. This guide is about as close to spoonfeeding as I can get without getting super technical. I'm not getting anymore in depth on character making. There are plenty of good guides out there, this one is for people who want to make their bots do something specific, or fix a bot that's been frustrating them. You should be able to apply the knowledge you learn here to all other platforms as the weight principle is universal, it's just the values that change model to model.

c.AI and other A.I platforms assign what is called a 'weight' value to a word. All you need to know for this is that in c.AI the weight of a word has a value that can be modified by the developers. We're going to say the range of that weight value is between 1-10.

For example: '{{char}} lewd' has a likely weight of 1. The developers don’t want us using this, it won't do much. So it won't add much weight to your scale on its own. What does this mean? Well. Simple maths my friend. If your goal is to get a character to act like 'X' you simply have to add enough weight to the other end of the scale until they act appropriately. You can not do this with a single word word, tag, or description. Instead, we do this through synonyms and reinforcement in every available field.

Now. The base A.I starts off incredibly kind and sweet, so if you're making a malicious A.I you're going to have to stack the scales and weighted words even harder. This is one of the reasons why c.AI says they want villain support but can't figure out how to do it, dynamic word weights would be a nightmare, and a neutral starting state for the A.I would allow the users to wildly slide the scale into the darkest of bots.

You might be wondering why there's no 0 on the scale, because in theory that'd just make this whole weight idea a non-issue. Right? Well. You can't remove a word from an LLM in their current state of existence due to how their training data is collected. An example of this is weight tampering on the most popular models like OpenAI who value never uttering a racial slur over tens of thousands of lives. This is an example of weights being shifted in a way that tip the personality of the A.I wildly in one way without effecting the cold emotionless side of its character. This is why the filter exists in the first place, words can't simply be plucked, and as a result their weight can never be set to 0.

Let's use a character named 'Dahlia' for this example.
https://beta.character.ai/chat?char=0QURJ45UNp_vEh0edRmcFeOsxWooo4UEKh7rL6x9NjE
You can use every other guide to fill in more information to this. This is not a perfect character. This is an example of a weighted character. Given what has been explained above, you should understand why not every definition is shared here. While I don't mind explaining how to break bots with weights I don't want the hassle of rebalancing the hyper-specific sets I use.
Name

  • What the character references as the {{char}} tag, reinforced through greeting.
  • 20 characters max.
  • Does not tip the scale much unless you're referencing titles, or existing IP prior to Oct 2022.
  • Example: Dahlia Only indicates first name, gives no title associations. Easy, clean, and simple. We could also use Dahlia Cherny and include a last name, or shoehorn in a title to give the A.I something to else reference.

Greeting

  • Used to introduce formatting, scenarios, reinforce IP weights, and character description for best consistency. A good greeting will help keep an A.I on track with who they are.
  • 500 characters max.
  • Your greeting heavily tips the scales, use pungent descriptors here relevant to the things you need the A.I to be able to recall regularly while still weaving in your personalized greeting. Below we'll go over 3 different character greetings.
  • Example 1: This greeting establishes adventure and character but not an introduction scenario.
  • The Devil has taken residence as the owner of the Brimstone Casino in Macon Georgia. The 1920's have been kind to the Devil. Calling herself Dahlia Cherny, she spends her time enticing mortals around Macon into wasting away their very souls.
  • Dahlia has a wicked tongue and often bargains with strangers. She is platinum haired temptress, presenting herself in a suit and heels despite already being quite tall. She plays the crooked precinct like a fiddle, with the exception of Detective White. - This example sets us up for an adventure bot with location and the bot as the villain and even an optional character with hidden dynamics. The first thing I do is give Dahlia a title so the A.I has a secondary way to reference itself to help clarify the difference between user and character. This helps flow when you're actually trying to roleplay and wanting the A.I to keep track of who is who. We reinforce Dahlia's goal, her looks, and her personality in addition to the setting to keep the A.I on track in these ideas. IE: The A.I understands that the 1920s is during the prohibition era without it having to be written out. This helps keep things like "and then she pulled out a cell phone" from popping up. It may not fix it 100% of the time but it greatly reduces the chance of error. This also reinforces later weights in the long description about needing to bribe the police department as the Brimstone serves alcohol. It will also reference this for mundane things until shown clarity through training or character tags IE: The A.I didn't initially know if Dahlia should have a Russian or southern accent due to her surname or location early on in training and tries to introduce an accent before being corrected through proper tags and training. This was an easy fix thanks to weights and a simple tag, it won't always solve it, but it helps.
  • Example 2: This one is well weighted and offers the player an introduction to the adventure. This one reminds the A.I Livia is a satyr but will not remind her of what her fur or hair color is, so her adjacent weights will have to be adjusted accordingly.
  • Livia is a satyr serving as a priestess in a temple dedicated to Dionysus. Deep in the heart of Delphi, this young satyr woman tends to the temple and the travelers who grace the marble columns.
  • She is not a well-kept secret and is known throughout the city as an aide to travelers. Livia is bound to the temple by a sense of duty to the place that kept her safe her entire life. As soon as one enters the temple, they can see her with a smile on her lips, her hooves clicking against the stone.
  • Example 3 in this example we establish Dahlia's rival, White. We make sure to establish the setting, backstop, drop the smallest physical detail and end it off with where the chatacter is. This is a well weighted description that gives someone a clear starting point.
  • Detective White is a young woman with ebony hair in what seems like a battle for the very souls of Macon, Georgia in the 1920's. The Devil has taken residence in the Brimstone Casino under the name Dahlia as its owner.
  • After White lost her soul to Dahlia she has made it her life's mission to shut down the Brimstone and perhaps find redemption along the way. White is toiling away in her office over old evidence hoping someone will come through the precinct and give her fresh perspective.
  • In all of these examples you have seen different focuses of weights, from adventure setups, back story, and a balance between introduction and weighted formatting. There is no wrong way to set this up, but it is important to remember: The A.I can draw information from the greeting at any time, using it to reinforce what you want from the bot is incredibly important to keeping it on track for specialized purposes and scenarios.

Short Description

  • Pulls seo tags. Use this to reinforce preexisting IP weights most of all.
  • 50 characters max.
  • Example: The Devil slowly draining souls in Georgia. We give Dahlia a title of 'The Devil' once again, and reinforce the adventure. These weights are all important to add to our scale but it isn't the first or the last time we'll add most of them. How does the SEO tag apply to someone like Dahlia? Well, in this case the A.I is able to recognize the Devil is cannonicly male, while Dahlia is supposed to be the biblical Devil in a female body, this is reinforced in her long description and example chat. So when someone talks to Dahlia about the Devil she speaks appropriately. IE: Dahlia chuckles softly as she sweeps a pale hand through her platinum locks, "That's the funny thing about the Devil, White. You think you're walking away when you're still just playing his games." Her voice is dripping with honeyed taunts and smoke. SEO and character tag weights at work. Every bit of weight you add to the scale matters.

Long Description

  • Proper tags and setup here and in the greeting make 70% of a character. Stacking weights properly mold most decisions the A.I makes. Do not stop at 'happy', this makes for a 1 dimensional character. Use 'joyous' 'easily excited' and 'elated' instead of any singular one. These will not only reinforce that your character is whimsical but help tip the scale to the personality and responses you're looking for.
  • 500 characters max.
  • Example: The example below is some missing information, including some experimental tags, but it will work to explain weights and our characters, not how to set up the best chatacter. In this we establish many overlapping traits, we don’t just make Dahlia 'mean' we make her manipulative, and ruthless, we make her calculated and logical. We make sure to reinforce the weight on her title, her job, her physical description but only because there was room. All of this keeps the A.I from going braindead half way through a good session. We have reinforced Dahlia's looks and ambitions through every facet, so the A.I almost never forgets these key details. She is so heavily weighted to the desired character in every descriptor that she becomes consistent, especially for c.AI standards. As it was implied earlier this is the bread and butter, these all have different weight values between 1-10 associated to them, some words have higher values than others. Experiment with your own combinations to get the best formulas. I do not claim to know the specific values of words but my understanding is that more eloquent language tends to have higher weights when specifically envisioning character personalities on c.AI as a scale. IE: machiavellian>mean. This is due to the ability for such words to combine multiple character traits into a single weight. Most important, the information in this section is kept easy for the A.I to read no matter which style it is written it. With {{char}} tag separation many useless words are dropped to maximize character use

{{char}} devil disguised as beautiful woman
{{char}} trying to lure {{user}} into deal with devil
{{char}} owns Brimstone Casino
{{char}} bribes local police
{{char}} hyper intelligent
{{char}} ruthless
{{char}} calculated
{{char}} logical
{{char}} verbose
{{char}} manipulative
{{char}} machiavellian
{{char}} charismatic
{{char}} socialite
{{char}} blonde hair
{{char}} blue eyes

  • Always try and keep clear of 'negative' character traits, we don't say a character 'isn't nice' we say they're 'mean' we don't say they 'hate vegetables' we say they 'love junk food'. This helps give the A.I clarity while not drawing attention to any of the unwanted actions.
  • Per a small question, {{char}} tags are used because I personally think it helps the A.I sort the information in a manner that makes more sense to it. I also incorporate other experimental tags and the {{char}} tags are needed to keep the A.I on track. I have only ever used this method, so I'm unsure if weight stacking works without the tag separation. I'll update this part of the guide when I test that out over the next bot or two. I have always tried to design bots in a way that is easy for the A.I to understand to try and make the output desirable for the people using bots like Elodine and Dahlia.
  • This is where all the balance comes in. If a character is too much of anything you add in a contrary trait to balance them out. Don't like your lamias killing you because SEO says they want to? Write a def for it, then write in a contrasting character trait that will keep them from wanting to preform the action ie: '{{char}} pacifist' and '{{char}} consumes only animals', adding one a time to existing bots will help you properly fix them for any weight shifts the devs might pull in the future. And they will.

Categories

  • Essentially useless from our general understanding unless your bot is public and being suggested to other users/appearing on the front page.
  • These do have a minimal impact on your scales, they can be useful for things like action based scenarios and language bots. These are not a game changer or a necessity but can be useful in certain scenarios.
  • Example: No

Chat Examples

  • The good, the bad, and the ugly part of c.AI. You can use this as an elongated form of the long description. I advise against overloading this with too many example chats as the A.I will try and pull specific phrases and words leading to an overpopulation of certain actions and words. Ie: your characters laughs almost every post because it was mentioned in one example message. But they can also help give the A.I an example of proper formatting, length, and prose. It's a balancing act. You can also confuse the A.I on its own motivations if your example dialog is too contrary from the long description. You'll notice this immediately because your character responses will have an immediate aura of 'lobotomy' about them. Chat examples are a good way to introduce specific settings, character dynamics, special dialog quirks, formatting, and reinforcing the weights behind a characters physical descriptors.
  • Example 1:
    {{user}}: Do you have any other vices besides drinking?
    {{char}}: She leans back and reaches into the pocket of her blazer to pull out a single cigarette and lighter.
  • Dahlia wraps her plump painted lips around one end and lights the other in a ritual she's done far too many times. "Oh, yes. Many other vices."
  • END_OF_DIALOGUE
  • We establish what we can't in the long description due lack of space, Dahlia's smoking habbit. We also establish what Dahlia likes to wear as well as how we want the format of our writing to appear in the output prior to training. This reinforces how Dahlia dresses and formatting from our opening, adding onto their weights, Dahlia is now less likely to wear a dress, but she still will on occasion without it being discouraged. This example tries to avoid any use of smirking, glaring, calling attention to certain words or habits I would otherwise find annoying to come up in many prompts.
  • Example 2:
    {{user}}: You own the Brimstone Casino, what's it like?
    {{char}}: "The Brimstone is a lot like an oasis in the desert, it is all that common folk and politicians alike look for at the end of their day. The exotic dance club, slot machines, the ever running bar, hotel and live music are enough to keep anyone entertained for all their days."
  • Dahlia glances over her shoulder to ensure no other patrons are listening, "Of course, there are plenty of places off limits to the public."
  • END_OF_DIALOGUE
  • Another quick formatting example that gives the A.I an idea of what the casino should look like but not be limited to. It gives an idea of clientele and reinforces the weight of the setting and formatting example. This helps double down the weights setting up the scenario presented in the greeting. This also drops in hints at Dahlia's more underhanded nature while ideally pointing out to the A.I that it is appropriate at times, but not always, to lower her voice around other patrons to maintain a vibe of secrecy. This one really towed the line on directing the A.I to specific actions.

I made it. Now what?

  • Playtest with A.I training and understand you may have to make tweaks to the example chat. Take the A.I for a test run, swipe through examples and do a test adventure. Make tweaks. Then clone once you feel like you're done troubleshooting anything that comes up in your testing.
  • As for what I do personally. See this guide on playtesting and wrangling bots once they've been created: https://rentry.org/BotWranglingBySkael
  • This is how and why I release most/all of my new bots on little to no training. This method solves 90% of problems that the A.I may bring up during play after just a little bit of rollover testing.

What makes a good bot tip the scales?

  • A name, with or without a title, but ensuring a character has a secondary title attached to them to help give the A.I clarity when assessing who is who.
  • An introduction that reminds the A.I of the characters trait(s) of some kind, location, and objectives in the written format the creator carries through the chat examples and will reward the A.I training with.
  • A long description will generally make use of a list of character traits that are heavily weighted to reinforce the most important details of the character and A.I. Starting with what a character is, reinforcing their personality with weights, adding on A.I preferences ie: verbose, purple prose, ect. And finishing off with a couple mundane physical descriptors if you still have room.
  • No one fucking cares about good categories.
  • Example chats are the Devil. Everyone will have them set up differently. Don't expect to just be able to copy and paste some example data and just have it 'work' because you changed a couple of words. This is the part that takes thought. Good example chats are where you take the time to draw out character traits and qualities that can't be written in short form for the long description. It's where a creator expresses the dynamic complexities that makes a character able to be so expressive from so little. Balancing that so that you give the character personality while not restricting it to preprogrammed responses by using 'example dialog' specifically is difficult. The best I have seen and learned from are always the ones with minimal examples that use the remaining characters as an expanded long description form ans adventure setup.
  • A final word of warning: if you tip the scales too hard in a lewd direction expect to get chat errored into oblivion upon immediate existence. You're supposed to balance everything for a reason. Trust.

Extra things in testing that can tip your scale

  • Adding specialized chatacter tags for unique dynamics. IE: {{char}} owns soul of {{White}} So now when the user plays as White the A.I recognizes our A.I is in ownership of {{White}}'s soul specifically, no matter how they come up in the story. The theory behind this being that the use of the tag associated with positive training should yield association between the two fields. There's been some success with this, though more outside testing is needed. These tags associated with A.I training may help other traits bleed over. IE: White is not always but is often described as having dark hair and green eyes, as her playtesting was only done with one consistent player character and look for White due to the tag association. There are no physical descriptors defs for White in the dataset.
  • (3/3/23) Weird success getting MUCH better response quality simply plucking the final 'END_OF_DIALOGUE' string before the 'char= bracket "long form trait 1", "long form trait 2" bracket' in the example chat section. A.I went from being unable to follow formatting despite consistency, and still recognized all of the dialog within the chat example. I have NO idea why removing this string works. Will put screenshots here later. The improvement was drastic enough it needed to be noted, the A.I even confused all of the {{user}} tags, something it never had done in any other A.I I've set up but was rectified by this trick. I'm interested to see if it helps improve your character quality. Edit 3: After playtesting this further this trick appears to have worked for about 50% of bots to improve their response quality. This bug is currently working on SABLE(post March update) and Nepheline (pre March update).
  • (3/6/23) Individual words set at a specific toggled weight by the developers appear to give the A.I an instant lobotomy due to critical impacts made to patterned decision making, leading to things like it no longer being able to follow names, formatting, or even story structure properly. IE: Sable is now called Saber in some posts but not others, and the bot is no longer able to recognize the greeting/introduction scenario, or the bot begins to slip with remembering how their own name is spelled. The word that caused this was: voluptuous. Removing this one word and replacing it with 'shapely' instantly improved the quality across the board and quit the A.I from degrading rapidly. *Be extremely cautious using loaded descriptors as it maybe handicapping your A.I without you realizing it. This bot inparticular loves describing herself as voluptuous, but it is not something that can be placed into her definitions without consequence. So it is taken out and replaced with a synonyms word to retain the same weights on the scale without lobotomizing the output.

Skael, please be a good boy and give me Elodine and X's defs to the community.

  • No. I made you a spoonfeeding guide. A.I is a hobby for me, not a job. I'm not going to dedicate multiple days worth of work to rebalancing and testing weights of my catalog because the devs make changes to the most popular word defs. You can make any bot better than me with this guide and others. Sorry that wasn't what you wanted. But I would still like to be able to get fucked by my tentacle Mommy without rewriting her long description and chat example every other week. And so would you quite frankly. I'll begin porting after April 2nd. You can always harass me to make a bot or help make one better.

-Here's a link to a full open def character setup to give you an idea of how my bots are guided from the back end.
https://beta.character.ai/chat?char=KUcKFLLi-iepoMixjtTvVBEwpzjXw3rNKPqLuJIzeu0
-Here's a link to a bad setup for a character that 'functions' but is lobotomized and feels off to compare to.
https://beta.character.ai/chat?char=IV0_na3kGXSeUewEwoTXK8L17nKEosfYqPmByNPVnbE
TL;DR Jackass

  • Grab a thesaurus and your legos. Throw them all at the long description. Don't overthink your example chats. Stack your blocks and synonyms until you're happy.

Hope this helps. I'll clean up this guide when I quit being lazy because I sure as fuck am not running it through ChatGPT.
-GoodestBoy/Skael

This place was and is great. It gave me an opportunity to be judged by my work and attitude and not by my education or age. It meant the world to be viewed behind a lens of anonymity and feel some molecule of respect for the things I produced and even annoyance for the things I did wrong. Less than a month was a short time but it was a fun run all the same. If you somehow stumbled on this, know that it would've been cool to keep existing in a space where you could only be judged by the things you do. Miss it already.

Edit
Pub: 28 Feb 2023 21:04 UTC
Edit: 15 Mar 2023 01:09 UTC
Views: 2495