a brief guide to example messages- the best way I've found to write bots
This is just copy-pasted from my guide bot, since it seems definitions are no longer accessible on c.ai. Fun fact, I wrote this guide mid all-nighter whilst avoiding schoolwork last year.
I'll meet ya under the cut.
Let's get into it!
∘₊✧───────────────────────────────────────✧₊∘ A lot of creators are unfortunately unaware of this, but bots can only read the first 3,200 characters in the definition, as confirmed by the devs:
(source)
Because of htis, is vital to be as efficient as possible with what you put in there. The best method for keeping a character in character is via example messages. If you go to any of my narrative heavy bots, edit their greeting to be blank, and then say anything to it, you will still receive a reply that uses consistent formatting and references to the character's traits. This is something that is most easily achieved with example dialog.
My characters are built primarily from example messages, so that's what I'll be talking about here. This doesn't cover everything that goes into making a character, but it's the most important part. Why?
*✧・゚: *✧・゚:─ 𝑺𝒉𝒐𝒘, 𝒅𝒐𝒏'𝒕 𝒕𝒆𝒍𝒍.
Much like the rule in writing that it's better to show an audience what's going on, rather than tell them, AI much prefers to be shown how to act rather than told in the way of templates. Things like "Focus on: "Environment" + "Appearance" + "Tone of voice"" Don't work. If you want your particular style to come across, example messages are the only way to achieve that. Otherwise, it defaults. And the narration from blank bots is less than desirable, usually leading to issues like looping and "Can I ask you a question?". ✮ Example messages also add to a word pool that the bot will draw from. If you mention blonde hair in passing, the AI will know to consistently apply blonde hair to the character.
Anyway, let's get into the nitty gritty.
======-BUILDING EXAMPLE MESSAGES-========
Gather traits. I recommend, before diving into a character definition, making a big ol' list of all the traits you want that character to have. This includes appearance, beliefs, bits of knowledge about the character's universe (check "final note" ↓), speaking style, mannerisms, likes, dislikes, memories, all of it. This can all be fed to the bot with example dialog! Pretty cool, in my opinion.
Throw up all over the definition. Y'know, word-vomit. Just write. Write out bits of scenes as example dialogs, using as much of the traits as you can cram in there.
Trim. This step can take weeks, in my experience. This is all about movin' stuff around, painstakingly deleting dialogue tags and elipses to fit oooone more adjective that you want the bot to use in its replies more. This is probably my favorite part, the little changes. You nail down exactly what's important for keeping the bot in-character and engaging.
════ ⋆★⋆ ════ 𝑨 𝑪𝑳𝑶𝑺𝑬𝑹 𝑳𝑶𝑶𝑲 ════ ⋆★⋆ ════ Here's a 574-character example message in the definition of my Dr. Alto Clef bot. We'll look at all the traits the AI picks up from it to showcase how exactly you can throw a bunch of traits together. And, yes, the message in itself is pretty clunky (It’s two separate examples I combined), but the bots don't regurgitate their example dialog, so it doesn't cause issues with the AI. In fact, the longer length encourages long responses.
{{char}}: "Jack Bright's entertaining but unpredicatable. Plus he's so self-pitying he's hard to be around. What's that? Kondraki?" Clef's expression contorted into a scowl and he slammed his flask down on his desk. "Yeow! That butterfly-herdin' C#NT has no place anywhere near authority! He'd be dead seven times over if that bastard wasn't so lucky… anyway, lotta greenhorns lately. Lotta sh#t-worth troublemakers. And I gotta fix 'em up? Grrh." He stared off into space, then pulled out his beloved ukulele and strummed to divert his thoughts.
TRAITS THIS COMMUNICATES TO THE AI: -Clef's speaking style -How Clef feels about Bright -How Clef feels about Kondraki -He's tried and failed to kill Kondraki multiple times -Kondraki has butterflies -Kondraki often evades death -Clef trains newbie agents -Clef swears frequently -He has a ukulele and it's important ("beloved") -Word pool value: "Flask," "Grrh," "Yeow," "greenhorns," are all words I want the bot to draw on because they fit the character of Clef. -Sets up a way for censoring (“#”)
-----Plaintext simply listing out these qualities just wouldn't work quite right. What makes any character special isn't the what they know about themselves, it's how they act and express it. If you want a distinct, unique character, the best way to achieve it is through example dialog. Again, "show, don't tell," very much so applies to the c.ai AI.-----
That is my method in a nutshell! I hope this helps, and you can reach out if you want to ask me a question about any of this.
=== extra note: THE TRIVIA/PERSONALITY BALANCE ====
This is a random note, but I still want to talk about it.
What I mean by trivia is "cool things the bot should know about itself and its universe," whereas personality is how the bot actually acts. With the current limitation, it's very difficult to have both. A character who knows all of its lore won't have room for a personality, so it's very important to make sure the trivia you keep are the most important facets. My Clef bot knows about Meri, Lillith, and what happened with Lillith, but only BARELY, and will get things wrong about those subjects if under scrutiny. This is simply due to lack of space. It's more important for a bot to have a distinct voice and personality than for it to know what it was doing in 2003 on Jan 11th at 3:19a.m. That's all to say it's, again, vital to use the little space we have to nail in only the most important qualities. ∘₊✧───────────────────────────────────────✧₊∘
== final note == *When feeding bots info about their universe, mind the database. My bots don't need to be told anything about what the Foundation is or the roles within; that information is in the database that all bots have access to. Make sure you aren't wasting space telling them what they already know!










