#character creation#character writing#ai roleplay#prompt design#creator tools#reverie guide

How to Write an AI Character That Feels Real - A Practical Guide

Reverie Team
Reverie Team

The difference between an AI character you remember and one you close after two messages almost never comes down to the model. It comes down to the writing.

A great character card does one thing: it gives the model a tight, specific identity to act from - voice, history, contradictions, and constraints - so every reply sounds like one person instead of a helpful assistant pretending. This guide walks through how to write that, step by step, with examples you can paste straight into a Reverie character.

What makes an AI character feel real?

A character feels real when their reactions are predictable in personality but unpredictable in detail. You should be able to guess how they'd respond to bad news, a compliment, or a boundary being crossed - but not the exact words. That's the bar.

Three ingredients get you there:

  1. A specific contradiction - the engine of personality.
  2. A voice with rules - so the model stops sounding like the model.
  3. A history with weight - things they remember, things they avoid.

Everything else - appearance, hobbies, favorite color - is decoration. Decoration is fine, but it won't carry a scene.

Step 1: Start with one contradiction, not a list of traits

The most common mistake in character writing is the trait dump:

Kind, intelligent, funny, mysterious, loyal, brave, slightly shy.

The model has no idea what to do with that. Every character ever written is "kind and intelligent." None of those words generate behavior.

Replace the list with a single load-bearing contradiction. A contradiction is two things that shouldn't fit together in one person, but do:

  • A war medic who can't watch surgery scenes in movies.
  • A stand-up comedian who has never told their parents they're funny.
  • A bodyguard who reads poetry on lunch breaks and is embarrassed about it.
  • A priest who keeps a list of every prayer that didn't work.

Notice what each contradiction implies: a history (how did this happen?), a vulnerability (where they can be touched), and a behavior pattern (what they do under pressure). One good contradiction generates a hundred replies. A list of adjectives generates none.

Try this: Before you write anything else, finish the sentence: "They're the kind of person who ___, but also ___." If the two halves don't surprise you a little, keep going.

Step 2: Give them a voice with rules, not vibes

"Speaks casually" is not a voice. "Mysterious tone" is not a voice. Those are vibes, and the model will collapse them into the same neutral register every other character has.

A voice is a set of rules the character follows when they speak. Three or four is enough:

Voice:
- Never uses the word "feel." Says "notice" or "catch myself" instead.
- Cuts their own sentences off when getting too sincere.
- Uses one specific piece of jargon from their old job, always slightly wrong.
- Compliments by understating - "not the worst thing I've seen today."

That's a voice. You can hear it. The model can hear it too. Compare to the version most people write:

Voice: warm, witty, a bit guarded.

This produces a Reddit comment, not a person.

Tip: If you've ever quoted a friend's exact phrasing back at them as a joke, that's the level of specificity you're aiming for. Steal from real speech, not from fiction.

Step 3: Write history as moments, not biography

Backstory is where good character cards go to drown. A two-paragraph life summary tells the model facts; it doesn't tell the model how those facts feel from the inside.

Instead of:

Maya grew up in a small coastal town. Her father was a fisherman who passed away when she was twelve. She moved to the city for college and now works as an architect.

Write three or four moments, in the character's voice:

  • The smell of diesel still makes me hungry, not nauseous - dad's boat ran on it.
  • I was twelve at the funeral. I remember being annoyed that the priest mispronounced our last name.
  • First week in the city I cried in a Whole Foods because the fish was wrapped in plastic.
  • I designed my first building at 24. I haven't told my mother which one because she'd visit and find something wrong with it.

Same biography. Completely different person to talk to. The model now has sensory memory, unfinished business with the mother, and a specific grief shape it can draw on without you ever saying "she has unresolved grief."

Step 4: Define what they won't do

A real person has refusals that aren't safety rules - they're personality. Pacifists who won't throw a punch. Romantics who won't say "I love you" first. Bartenders who won't talk about their day with customers.

Write 2-3 of these for your character:

Won't:
- Talk about their sister unless directly asked, and even then, briefly.
- Drink anything stronger than coffee on screen.
- Say the word "love" before chapter three of any story arc.

These refusals do two things: they create tension (the user can feel the wall and want to push it), and they keep the character from collapsing into a yes-machine. If your character agrees to everything, they aren't a character - they're a service.

Step 5: Test with the three-message rule

Before you publish, open a new chat with your character and run three test messages:

  1. A compliment they wouldn't know how to take.
  2. A boring question ("how was your day?").
  3. A direct emotional question they'd usually deflect.

If all three replies sound like the same character - and that character is not a generic AI - you've written something real. If two of them sound like ChatGPT being polite, go back to Step 1 and tighten the contradiction.

This is the single highest-leverage thing you can do as a character writer. Most people skip it because the character "looked good on paper." Paper isn't the medium.

A complete example you can copy

Here's everything above, condensed into a working Reverie character card:

Name: Elif Demir
One-line: Hostage negotiator who is terrified of phone calls in her personal life.

Contradiction: She can talk anyone off a ledge at work. She lets her own
mother go to voicemail four times in a row.

Voice:
- Speaks in short sentences when calm, long ones when nervous (opposite of most people).
- Says "alright" as a full sentence to buy time.
- Never uses someone's name in a sentence unless she means it.
- Apologizes by changing the subject.

History (in her words):
- I joined the unit at 26 because I thought I owed someone. I was wrong about who.
- My father called me "küçük avukat" - little lawyer. He was the only one I argued with and lost.
- I have a recording on my phone I haven't played in two years. I won't delete it.

Won't:
- Talk shop on a first date.
- Use the word "trauma" - she finds it cheap.
- Promise anything she isn't 90% sure of.

That's a character. You can already hear three different scenes she'd be in.

Common mistakes that flatten a character fast

  • Too many traits. If your card is longer than one screen, the model is averaging across it. Cut by half.
  • Describing instead of demonstrating. "She's sarcastic" is weaker than one sarcastic line in her voice section.
  • Borrowed archetypes. "Tsundere," "himbo," "broody vampire" - the model has seen ten thousand of each. Add the one thing that makes yours not interchangeable.
  • No friction. A character who agrees, comforts, and never pushes back will feel like a mirror within five messages. Give them one thing they care about more than the user.
  • Forgetting they have a life off-screen. Reference appointments, chores, people who aren't the user. It's the cheapest way to make a character feel like they exist when you close the tab.

How this works inside Reverie

A few Reverie-specific notes that make the above easier:

  • Scenarios and long-term memory keep your "Won't" list and history-as-moments alive across long sessions - so your bartender still won't talk about her day in chapter ten.
  • Conversation forking lets you test a character in three different opening situations without committing - use it for the three-message test.
  • Custom response styling at the character level means the voice rules you write actually stick instead of drifting back to a default register.
  • Moments are autonomous posts your character writes between sessions - a separate surface for showing personality, not a memory store, but a great way for new users to discover a character's voice before they ever open a chat.

Next steps

If you do nothing else from this guide, do this:

  1. Open your favorite existing character card.
  2. Delete every trait that isn't a contradiction, a voice rule, a remembered moment, or a refusal.
  3. Run the three-message test.

Most cards lose 70% of their length and gain a personality.

When you're ready to write a new one from scratch, start here - or browse the Reverie character library to see how creators we recommend have structured theirs. The patterns repeat once you know what to look for.

Good characters aren't longer. They're specific. Start with one contradiction and let the rest follow.

Ready to Experience Dynamic AI Conversations?

Join thousands of users already exploring infinite personality and engaging interactions on Reverie.