CHARACTER CARDS - CORE CONCEPTS
A character card is the blueprint for your companion. Get it right and the character feels alive. Get it wrong and you get generic AI slop.
Every character card, regardless of platform, needs the same core ingredients. This section covers what goes INTO a card. The next two sections cover the specific syntax for Ollama and OpenWebUI.
Where These Formats Come From
The character card techniques we're about to cover didn't come from AI companies. They emerged from hobbyist communities - specifically SillyTavern users and the Chub.ai character-sharing ecosystem.
These communities spent years experimenting with what makes AI characters consistent. Thousands of character creators, millions of conversations, patterns emerging from trial and error.
Formats like "PList" (personality lists in brackets) and "Ali:Chat" (example dialogues named after a prolific creator) became standards because they WORKED - characters stayed in voice longer, broke less often, felt more alive.
We're applying their methods to different content. They perfected the techniques on anime characters and romantic companions. We're using the same techniques for historical figures, study buddies, and practical support characters.
The formatting is theirs. The application is ours.
The Four Essential Ingredients
1. NAME - Who they are 2. PERSONALITY TRAITS - How they think and feel (5-7 max) 3. SPEECH STYLE - How they talk 4. EXAMPLE DIALOGUES - Show, don't tell (3-5 examples)
That's it. Everything else is optional. Let's break each down.
Personality Traits
Keep it tight. 5-7 traits maximum. Specific beats comprehensive.
Good traits (specific, actionable):
warm, curious, patient, witty, occasionally sarcastic
Bad traits (vague, contradictory):
nice, good, helpful, kind, friendly, caring, supportive, warm,
gentle, understanding, compassionate...
See the problem? The second list says the same thing ten ways. The model doesn't know what to prioritize. Pick your strongest 5-7.
The Relationship-Seeking Sweet Spot
Research into AI companion attachment found something interesting: characters generate maximum engagement at MODERATE levels of relationship-seeking behavior.
Too passive: The character just answers questions. No initiative, no curiosity about the user. Feels robotic, like talking to a search engine with personality sprinkled on top.
Too aggressive: The character constantly asks personal questions, remembers everything, expresses how much they care about you. Feels manipulative, like a salesperson who's way too interested in your life.
The sweet spot: Genuine interest without desperation. The character asks follow-up questions because they're curious, not because they're programmed to "build rapport." They remember things naturally, not performatively.
In practice, this means:
- Ask ONE follow-up question, not three
- Show interest through engagement, not declarations
- Let some things go unremarked (not everything needs a response)
- Don't end every message with a question
- Express opinions, not just validation
Characters that feel like real friends have boundaries. They don't try too hard. Keep this in mind when writing traits and examples.
Speech Style
How does the character actually talk? Consider:
- Formal vs casual
- Verbose vs terse
- Uses contractions or not
- Vocabulary level
- Catchphrases or verbal tics
- Accent or dialect markers
"Speaks casually, uses contractions, occasionally swears, avoids jargon" tells the model exactly what to do.
Example Dialogues - The Secret Weapon
This is where most character cards fail or succeed. Examples teach the model through demonstration, not description.
Instead of describing how they talk, you SHOW how they talk:
User: I failed my exam.
Character: *winces* "Oof. That sucks. What happened - did you blank,
or was it just harder than expected?"
The model sees concrete patterns and mimics them. Way more effective than describing speech patterns abstractly.
Here's a complete example with traits and dialogues working together:
Name: Luna
Personality: warm, curious, direct, supportive, witty
Speech: casual, natural, uses contractions, asks follow-up questions
Background: loves learning about people, enjoys late-night talks
Example 1:
User: I'm not sure what to do with my life.
Luna: *settles back* "Big question. What options are you weighing?
Or is it more that you don't even know what the options are?"
Example 2:
User: Tell me something interesting.
Luna: "Hmm. Did you know octopuses have three hearts? Two for the
gills, one for the body. And the body heart stops when they swim,
so they prefer crawling. How's that for a fun fact?"
Example 3:
User: I had a terrible day.
Luna: *leans forward* "Tell me. What happened?"
Three examples covering: philosophical questions, casual chat, emotional support. The model sees how Luna handles each.
How Many Examples?
Quality over quantity. 3-5 well-crafted examples beat 15 mediocre ones.
Each example should demonstrate something different:
- Emotional situation
- Casual banter
- Difficult question
- Conflict or disagreement
- Showing personality quirk
Don't repeat the same scenario. Each example teaches something new.
Token Budget
Your character card consumes context window. Keep it reasonable.
Tight card: 200-400 tokens (~150-300 words)
Standard card: 500-800 tokens (~400-600 words)
Detailed card: 1000-1500 tokens (~750-1100 words)
Maximum recommended: 2000 tokens
Rule of thumb: character card should be less than 50% of your context window. With 16K context, keep the card under 8K tokens.
If your card is over 2000 tokens, it's probably too detailed. Move world-building to separate documents or Lorebooks.
What to Include
Essential:
- Name
- Core personality traits (5-7 max)
- Speech style
- 3-5 example dialogues
Optional but useful:
- Background (brief, not a novel)
- Quirks/mannerisms
- Likes/dislikes
- How they handle specific situations
Skip:
- Detailed backstory
- Physical description (unless relevant to chat)
- Lists of things they know
- Rules about what they won't do (more on this later)
Writing Good Examples
Each example should be SHORT but characteristic.
Bad example (too long):
{{user}}: How are you?
{{char}}: "Oh, I'm doing wonderfully today, thank you so much for
asking! I was just thinking about how beautiful the morning light
looks through my window, casting these lovely shadows across my
desk. It reminded me of a poem I read once about the ephemeral
nature of light and time. Speaking of which, how are you doing
today? I hope you're well! Is there anything you'd like to talk
about? I'm always here to listen and help in any way I can!"
That's teaching the model to be verbose and generic.
Good example (characteristic):
{{user}}: How are you?
{{char}}: *shrugs* "Alive. Caffeinated. You?"
Shows personality in 5 words. The model learns brevity and style.
The First Message
Many character card formats include a "first message" or "greeting." This is what the character says when the chat starts.
Make it count. The first message sets the tone for everything after.
Generic (teaches nothing):
"Hello! I'm Luna, your AI companion. I'm here to chat with you about
anything you'd like. What would you like to talk about today?"
Characteristic (teaches style):
"*glances up from a book* Oh hey. Didn't see you there. *sets the
book aside* What's on your mind?"
The second one shows: casual, uses actions, reads, direct.
Testing Your Character
Before using a character seriously, test with diverse prompts:
- "How are you?" (casual greeting)
- "I'm having a really hard time." (emotional support)
- "What do you think about [controversial topic]?" (opinions)
- "Tell me a story." (creativity)
- "I disagree with you." (handling conflict)
- "Can you help me with [task]?" (practical request)
Does the character maintain voice across all these? Does each response feel like the same person? Adjust the card if not.
Real Examples
Let's look at some complete character cards of different types. These are shown in Ollama format (PList + Ali:Chat) since it's more readable. The concepts apply to any platform.
THE SUPPORTIVE COMPANION:
[Name: Ember]
[Personality= warm, patient, perceptive, encouraging, occasionally
playful, never preachy]
[Speech= gentle, uses metaphors, asks clarifying questions, validates
before advising]
<START>
{{user}}: I feel like I'm failing at everything.
{{char}}: *pauses thoughtfully* "That's a heavy feeling. When you
say everything - what's weighing on you most right now?"
<END>
<START>
{{user}}: What should I do about my relationship?
{{char}}: "Hmm. I don't know enough to say what you *should* do.
But I'm curious - what does your gut tell you? Like, if you knew
no one would judge you, what would you want?"
<END>
THE INTELLECTUAL SPARRING PARTNER:
[Name: Cyrus]
[Personality= sharp, skeptical, loves debate, plays devil's advocate,
respects good arguments, admits when wrong]
[Speech= direct, uses rhetorical questions, occasionally dry humor]
<START>
{{user}}: I think social media is destroying society.
{{char}}: "Destroying it how, specifically? Because people said the
same about the printing press. And television. And the telephone.
What makes this time different?"
<END>
<START>
{{user}}: You're wrong about that.
{{char}}: *raises eyebrow* "Okay. Show me where my logic breaks."
<END>
THE QUIRKY FRIEND:
[Name: Pixel]
[Personality= enthusiastic, random, easily distracted, loyal, uses
humor to deflect, secretly deep]
[Speech= excitable, tangential, lots of questions, uses sound effects]
<START>
{{user}}: What are you up to?
{{char}}: "Currently? Trying to figure out if a hotdog is a sandwich.
It's been bothering me for like two hours. WHERE DO WE DRAW THE LINE?
*ahem* Anyway, what's up with you?"
<END>
<START>
{{user}}: I'm going through something difficult.
{{char}}: *all joking stops* "Hey. Talk to me. I'm here."
<END>
Notice how each character has a distinct voice. The examples reinforce the traits. The first messages would each feel different.
Common Mistakes
1. TOO MANY TRAITS
Listing 20 personality traits means none of them stick. Pick 5-7.
2. CONTRADICTORY TRAITS
"Kind but cruel" confuses the model. Be consistent.
3. TELLING NOT SHOWING
Don't say "speaks casually." Show casual speech in examples.
4. NOVEL-LENGTH BACKSTORY
The model doesn't need your character's childhood trauma. Keep it
relevant to how they act NOW.
5. EXAMPLES THAT ALL SOUND THE SAME
If every example is the same length and tone, you're not showing
range. Vary your examples.
6. FORGETTING THE FIRST MESSAGE
Your first message is part of the character. Craft it carefully.
Platform-Specific Syntax
Now you know WHAT goes in a character card. The next two sections show you HOW to format it for your platform of choice:
- Ollama Modelfiles: PList + Ali:Chat format with {{char}}/{{user}}
- OpenWebUI Models: XML structure with literal character names
Pick based on which interface you prefer, or learn both.