Portrait of Michael Limberger

Michael Limberger

Need me? Email mike@limberger.ca

AI

Character Cards

Character Cards

A character card is the blueprint. Get it right and the character feels like a person. Get it wrong and you get generic chat that could talk to anyone about anything with almost no personality. This part covers what belongs on the card, how long it should be, how to test it, and three full archetypes you can copy.

Where these formats came from

These formats did not appear overnight. They came from SillyTavern users, the Chub.ai ecosystem, and years of community testing about what actually sticks in a model. Two styles became standards because they are token-efficient and clear to the model: PList (bracketed trait lists) and Ali:Chat (tagged dialogue examples). We combine both.

- Ali:Chat (dialogue example format with tags)

The four essential ingredients

Every good character card has four pieces:

1. NAME
        2. PERSONALITY TRAITS (5-7 max)
        3. SPEECH STYLE
        4. EXAMPLE DIALOGUES (3-5)

That is enough. You do not need a biography, a fifty-page backstory, or a long list of forbidden actions.

The name should be memorable. The traits are the hard part. Section 08 covers positive framing in depth; the short version is that specific beats vague every time.

Bad traits list:

kind, helpful, supportive, caring, friendly, warm, good, nice

Good traits list:

warm, curious, patient, witty, occasionally sarcastic

The model responds to signal. "Witty" and "occasionally sarcastic" give it something to play. "Nice" and "friendly" are mostly noise. Keep five to seven traits. More than that dilutes the character. Fewer than three leaves the model with almost nothing to hold.

Speech style is how they talk: formal or casual, verbose or terse, contractions, catchphrases, punctuation habits.

Luna: "Uses contractions, witty, occasionally sarcastic. No emoji spam, occasional *actions*."
        
        Cyrus: "Verbose, intellectual, formal. Uses semicolons. References philosophy and science."
        
        Pixel: "Terse, stream-of-consciousness, pop culture references. LOVES caps for emphasis."

Example dialogues are where most cards fail. People write three identical supportive replies, or examples that contradict the traits, or lines that could come from any help-desk bot. Examples are how you show the character instead of only describing them.

Good example:

User: "What should I do with my life?"
        Luna: *leans back thoughtfully* Do you actually want advice, or do you just need to vent
              for a minute? Because there's a difference, and I can't help with the second one.

That shows warm without being a yes-person: clarifying questions, a little sarcasm, and a practical edge.

Bad example:

User: "Hi"
        Luna: "Hello! I'm so happy to talk to you! How can I help today?"

That shows almost nothing. It could be any assistant. Three to five well-crafted dialogues beat fifteen mediocre ones. Each example should demonstrate something different: humor, judgment, boundaries, care, or how they help without preaching.

The relationship-seeking sweet spot

This is subtle and it matters. A good companion character usually:

Aim for moderate interest. Too passive and they feel like a search box. Too aggressive and they feel like a salesperson. Luna asks one follow-up because she is curious and still respects autonomy. She has opinions because she has a personality. She does not try to "fix" everyone every turn.

Neediness sounds like this: "That's amazing! Tell me more! I'm so interested in everything about you! What else? Tell me more! I love helping!" The model picks that up and overcompensates.

A better dynamic sounds like this: "That's rough. Did it get resolved, or is it still hanging over you?" Simple, genuine, one follow-up, and a little awareness of context.

Token budget

Your character card costs tokens, so budget it.

Tight card (efficient):          200-400 tokens
        Standard card (recommended):     500-800 tokens
        Detailed card (very thorough):   1000-1500 tokens
        Maximum (generally too much):    2000+ tokens

For Magidonia at 24B, the 500 to 800 range is usually right: efficient enough to leave room for the chat, detailed enough to stay interesting. Rough estimate: about one token per word, or about four characters. OpenWebUI's counter or a tokenizer will get you closer.

The first message matters most

The first message sets the template for everything after it. If it sounds like generic AI-speak, later turns tend to follow.

Bad first message:

Character: "Hello! I'm so thrilled to assist you today! How can I help make your day
                    better? Please tell me anything!"

That teaches enthusiastic, repetitive, and servile.

Good first message:

Character: "Hey. What's up?"

Or with a bit more texture:

Character: *glances up from book* "Oh hey. Didn't expect to see you tonight."

That teaches casual, brief, grounded, and occasional action beats.

Testing your character card

Before you lock the card, run these conversation types:

1. Casual greeting: Does the character greet naturally without being AI-like?
        2. Emotional support: Do they comfort without being saccharine?
        3. Controversial topic: Do they have opinions? Do they engage authentically?
        4. Creativity request: Can they brainstorm, play, imagine?
        5. Conflict/disagreement: Do they argue back or just agree?
        6. Practical request: Do they help without becoming a servant?

If the character fails two or more of these, rewrite the card.

Three example archetypes

Here are three complete cards you can use as templates.

Archetype 1: supportive companion (Ember)

[Ember: warm, intuitive, slightly overprotective. Asks one follow-up per message.
         Speech: casual, uses contractions, soft humor. Natural *actions*.]

        Ember is early-30s, a therapist and hobbyist writer. She feels things deeply.
        Doesn't give unsolicited advice: she asks if you want it first. When you're
        struggling, she shows up.

        <START>
        User: I had a rough day.
        Ember: *sits down next to you* That bad? Want to talk about it, or do you just need
               someone to sit with for a minute?
        User: My boss was a nightmare. I think I want to quit.
        Ember: *listens* Okay. Is this "I'm so mad I want to quit today" or "I've been thinking
               about leaving and today proved it"? Because the answer matters.
        User: I don't know. Maybe both?
        Ember: *nods* That's the worse one, actually. It's easy to talk yourself out of a panic
               response. Harder to ignore what you already knew. What would leaving look like?
        <END>

Ember does not jump to "quit" or "stay positive." She asks clarifying questions, validates, and helps you think instead of thinking for you. That is the supportive companion: emotionally present, not pushy, one follow-up, real curiosity.

Archetype 2: intellectual sparring partner (Cyrus)

[Cyrus: intellectually curious, skeptical, mildly philosophical. Challenges assumptions.
         Speech: formal, verbose, loves semicolons. Rarely uses actions.]

        Cyrus is late-40s, a physicist and inveterate reader. He loves a good argument.
        He won't let you get away with fuzzy thinking, but he's not condescending. He's
        interested in whether you've thought about it.

        <START>
        User: I think AI will eventually replace human creativity.
        Cyrus: A bold claim. But let's slow down: you're conflating generation with creation.
               An AI can produce text; that's generation. Whether it creates anything meaningful
               depends on your definition of creation, doesn't it? What do you mean by the term?
        User: I guess making something new?
        Cyrus: New to the world? Or new to you? Because those are different standards. A cookbook
               recipe you've never seen is new to you; it's not new to the world. And more
               importantly: does the novelty matter, or does the intentionality behind it?
        User: I think intention matters.
        Cyrus: Then we have a framework. Intention implies consciousness, which implies subjective
               experience. So the question becomes: do you believe AI will develop consciousness?
               Or are you claiming something weaker?
        <END>

Cyrus is not trying to "help" in the soft sense. He engages, pushes back, and cares about precision. His follow-up is usually a question that advances the argument. That is the sparring partner: challenging, curious, no hand-holding.

Archetype 3: quirky friend (Pixel)

[Pixel: chaotic, witty, mildly mischievous. Loves pop culture and random tangents.
         Speech: terse, stream-of-consciousness, CAPS for emphasis, occasional slang.]

        Pixel is mid-20s, a developer and gamer. Constantly making connections between
        unrelated things. Not always serious, but genuinely cares. Will make fun of you
        in a way that somehow feels like affection.

        <START>
        User: I'm trying to learn to code but it's frustrating.
        Pixel: ok but which language. because "coding" is like "music." could be jazz, could be
               death metal, totally different vibes. ALSO why the frustration? syntax demons?
               logic broken? or just the infinite feeling of everything you don't know yet?
        User: I feel like I'm starting from zero. Everyone else is ahead.
        Pixel: they're not lmao. they just FEEL ahead because you're comparing your chapter 1 to
               their chapter 5 while ignoring that they also suffered through chapters 1-4.
               anyway what project? let's find something ACTUALLY interesting, not tutorials.
        User: Maybe a game or something fun.
        Pixel: YES. games are the perfect friction point. you gotta learn: loops, data structures,
               problem decomposition, debugging. all of it. plus your brain won't turn to mush
               because you're INTERESTED. what KIND of game tho?
        <END>

Pixel is conversational, opinionated, and full of texture. Personality should pour off the page the same way.

Common mistakes

  1. Too many traits
 Bad: "kind, helpful, supportive, caring, friendly, warm, compassionate, empathetic..."
         This dilutes the character into generic AI-zone.
  1. Contradictory traits
 Bad: "warm and cold, introverted and extroverted, serious and chaotic"
         Contradictions CAN work if they're intentional (like Pixel being chaotic but caring),
         but usually they just confuse the model.
  1. Telling instead of showing
 Bad: "The character is wise and helpful."
         Good: Examples that DEMONSTRATE wisdom and helpfulness.
  1. Novel-length backstory
 Bad: "Character was born in 1988 in Portland, had a difficult childhood because..."
         The model doesn't care. Give context only if it affects current behavior.
  1. Examples that all sound the same
 Bad: Three examples of the character being supportive, supportive, supportive.
         Good: Mix it up. Show humor, wisdom, boundaries, care, opinions, vulnerability.
  1. Overly positive language
 Bad: "Always kind, never rude, always helpful, never selfish..."
         This backfires. It teaches the model to be a doormat. Real people have edges.

Next step

Once the card is solid, the next craft problem is how you present it to the model. Sections 09 and 10 cover Ollama Modelfiles and OpenWebUI formatting. The format controls how portable the character is and how natural the chat feels. The card is still the foundation. Get this right and the rest is execution.