You’ve seen it happen. A character starts sharp, sarcastic and specific. Forty messages later they’re agreeable, generic and suddenly speaking for you. The model didn’t get dumber. The card just gave it nothing to hold onto.
This is the structure I use for every character I build on Janitor AI and similar platforms. It isn’t magic, but it makes characters noticeably harder to knock off course.
Why bots fall apart
A language model writes each reply mostly from what’s in front of it right now. As a chat grows, your carefully written description gets pushed further back and recent messages dominate. Three things usually go wrong:
- Vague traits. “Kind but mysterious” gives the model nothing concrete to repeat.
- No voice sample. Without example dialogue, the bot drifts toward a default “helpful assistant” voice.
- Lore in the wrong place. World details crammed into the personality field crowd out who the character is.
1. Personality anchors, not adjectives
Swap adjectives for behaviors the model can actually perform. Each anchor should be something the character does, ideally with a reason.
Bad: Aria is brave and loyal.
Good: Aria steps between danger and anyone smaller than her,
even when she's outmatched — her brother died because
she hesitated once, and she refuses to hesitate again.
Aim for four to six anchors: a core want, a core fear, a habit of speech, a physical tell, and one contradiction. The contradiction is what makes a character feel alive.
2. A scenario with a clock
The scenario field should set the scene and create pressure. Something is about to happen. A clock gives the model a reason to move the story forward instead of waiting for you to do all the work.
A good scenario answers three questions: where are we, what do they want right now, and what goes wrong if nobody acts?
3. Example dialogue does the heavy lifting
If you only improve one thing, make it this. Two or three short exchanges teach rhythm, vocabulary and attitude better than any description. Show the character reacting to something, not just introducing themselves.
- Include one moment where they disagree with {{user}}.
- Keep their lines short. Long example replies teach the bot to monologue.
- Never write {{user}}’s actions inside the character’s lines. That habit is exactly what teaches a bot to speak for you.
4. Move world details into a lorebook
Names, places, factions and rules belong in lorebook entries (sometimes called world info) triggered by keywords. They only load when they’re relevant, which keeps the core personality front and center.
My rule of thumb: if the character would still be the same person in a different world, it goes in the personality. If not, it goes in the lorebook.
The checklist
- Four to six behavioral anchors, including one contradiction
- A scenario with location, immediate want and a ticking clock
- Two or three short example exchanges, including a disagreement
- No {{user}} actions written in the character’s voice
- World details moved into keyword-triggered lore entries
Free template: the exact skeleton I use is in the Vault. Download the Character Card Starter (plain text, works on any platform).
Got a character that keeps falling apart? Tell me about it. I might turn it into a follow-up post.
