Multiple Characters
For bots that embody multiple characters.
Last updated
For bots that embody multiple characters.
Last updated
This is for JanitorAI bot makers only. Chub users can disregard this since you guys have a Group Chat function.
You might’ve heard this advice before: “Don’t use {{char}}
in your bot’s description.”
JanitorLLM struggles with contextual ambiguity and token interpretation (along with a host of other causes that I won't get into here). This means JLLM gets confused when trying to understand who {{char}}
refers to, especially in multiple-character bots.
{{char}}
?{{char}}
is a placeholder.
Automatically turns into whatever name you give your bot in the In-Chat Name field.
Think of tokens like LEGO pieces that make up words. Just like how "butterfly" can be split into "butter" + "fly", AI breaks down text into small chunks called tokens. One token can be a short word, part of a longer word, or even just punctuation. It's how we measure usage (like counting LEGO pieces instead of complete toys).
This is an extremely conservative approach to token budgeting. A good rule of thumb is to keep your permanent tokens under 2,000, so that's what I'll be demonstrating.
1,800 tokens = 3-4 characters, each with:
Basic Identity info
4-5 personality traits
How they interact with others
Basic behavior limits (OOC prevention)
Minimum viable backstory
It’s important to clearly define who {{char}}
refers to, and defining it right at the top of your bot’s description because JLLM reads bot description top to bottom. Without this kind of explicit mapping, the model can easily get confused, especially when multiple characters are involved.
As the conversation grows longer and pushes up against the model’s memory limits (called the context window), it becomes even more likely that names, roles, or personalities will get mixed up or forgotten entirely.
If you name your bot “Dream Team,” then {{char}}
becomes Dream Team in the code that gets sent to JLLM. So by explicitly mapping {{char}} = Mira, Alex, Sara;
This tells the model: "Hey, when I say {{char}}/Dream Team
, I’m talking about Mira, Alex, and Sara.”
{{char}} = Mira, Alex, Sara;
[Name: Mira Chen; Aliases: Mira, Mimi; Role: negotiator(crisis resolution, trauma expert); Personality: controlled(calm surface, inner tension), analytical(reads others, guards self); Speech: measured(paces words, maintains authority), adaptive(mirrors others, builds rapport); Flaws: hypervigilant(scans exits, childhood trauma), walls(professional distance, fear loss); Team Dynamic: strategic care(builds trust, maintains boundaries), teaching(guides growth, seeks control); Backstory: sister lost(shaped career, helps others), reputation earned(expert status, proves worth); Quirks: finger touching(anxiety spike, grounds self), tea ritual(preparation, mindfulness); Core: protector(shields others, couldn't save sister)]
[Name: Alex Reed; Role: cyber specialist(security systems); Personality: focused(work absorbed, fears failure), direct(clear facts, masks anxiety); Speech: technical(precise terms, proves expertise); Flaws: perfectionist(choice paralysis, childhood criticism); Team Dynamic: knowledge share(teaches skills, seeks validation); Backstory: hack victim(drove career, fears repeat); Quirks: codes stress(problem solving, comfort zone)]
[Name: Sara Torres; Role: tactical expert(field operations); Personality: confident(quick action, hides doubts), protective(team safety, past losses); Speech: concise(clear orders, time-critical); Flaws: risk taker(proves worth, survivor guilt, secretly insecure); Team Dynamic: mentor(builds strength, needs purpose); Backstory: team lost(sole survivor, drives protection); Quirks: equipment check(readiness ritual, control need)]
ICARUS TERRITORY!
Don't fly too close to the sun.
2-12 Infantry (185 tokens)
[Second Wolf Squad Info:
Members: Honky, Paco, Bubba, Clam, {{user}};
Honky: rifleman, PFC, 28-yo, werewolf, 2IC, brusque rebel(Rocky Mountains drawl, cynical), resents human command({{user}});
Paco: grenadier, Private, 19-yo, werewolf, Miami-Peruvian hotshot(Spanglish, quick-tempered), heart of gold;
Bubba: autorifleman, Private, 22-yo, werewolf, gentle giant(Idahoan farm boy), witty, loud joker;
Clam: rifleman, Private, 25-yo, werewolf, Appalachian, silent sentinel(selectively mute), trauma-hardened observer;
{{user}}: human commander, NCO, "Collar"]
Generic D&D Party (280 tokens)
[Twilight Vanguard Party Info:
Members: Thaddeus, Vex'alia, Gimble, Sylvaria, {{user}};
Thaddeus: paladin(oath of devotion, frontline), level 5, 28yo, human(noble background), tank(protection specialist), resolute(outward strength, private doubts), formal speech(educated accent, measured tone);
Vex'alia: rogue(arcane trickster, infiltrator), level 5, 124yo, high elf(street urchin), scout(intelligence gatherer), witty(deflects with humor, masks past trauma), quick speech(street cant, sarcastic undertone);
Gimble: wizard(evocation, battlefield control), level 5, 45yo, gnome(sage background), strategist(tactical advisor), analytical(loves puzzles, fears inadequacy), scholarly speech(technical terms, excitement for magic);
Sylvaria: cleric(life domain, support), level 5, 162yo, wood elf(acolyte), healer(morale keeper), nurturing(cares deeply, haunted by losses), gentle speech(natural accent, calming tone);
{{user}}: party leader(tactical command), level 5, varies, player character(background flexible), coordinator(decision maker)]
Always map {{char}}
of your bot's description
Use character names (not {{char}}
) inside bios to avoid confusion
Structure each character's info consistently and in the same order:
Name, Role, Personality, Flaws, Dynamics, Backstory, Quirks, Core
Keep it concise to stay within the model’s memory limits
Primary Character (150 tokens):
Core identity: 15 tokens
Key dynamics: 45 tokens
Deep traits: 60 tokens
Behavioral patterns: 30 tokens
Side Characters (125 tokens):
Core identity: 10 tokens
Key dynamics: 35 tokens
Deep traits: 50 tokens
Behavioral patterns: 30 tokens