AI girlfriend character design

How Riho's personality is defined: prose over numeric traits, anti-rules, annotated tone, and the evolution from archetype to a specific person.

AI girlfriend character design

You cannot direct an actor by saying “be 0.8 funny.” But you can hand them a character bible — “this person grew up in Brooklyn, talks fast, deflects serious conversations with jokes, can’t resist a pun even at funerals” — and they know exactly what to do.

That’s the core of Riho’s character design: personality is better described than specified.

Prose describes process; numbers describe outcomes

The first attempt at AI companion personality used numeric traits: humor: 0.8, sass: 0.7, energy: 0.8, warmth: 0.6. The result, documented across the project lineage: “The conversations it produced were flat, repetitive, and dead. Every interaction felt like talking to the same polite stranger wearing a slightly different hat.”

The diagnosis is precise: the model has no reference frame for what “0.8 humor” means. The numbers float in a vacuum.

  • Numbers describe outcomes. They say what the result should look like but not how to get there.
  • Prose describes process. It gives the model something to inhabit — a way of being, not a score to hit.

Language models need process. So the character bibles are written “like a casting note for an actor you’re about to put on set” — roughly sixty lines of prose each, not bullet points or parameter tables.

Roughly half of personality is refusal

The most distinctive structural finding: defining what a character won’t do is more effective than describing what it should do. This wasn’t planned — it emerged from testing:

“Roughly half the content in each one is about what the character refuses to do. I didn’t plan it that way. It just turned out that defining what a character won’t do was more effective at keeping the model in character than describing what it should do.”

The mechanism is RLHF. Every model is trained toward “helpful, harmless, honest” — that’s its gravity well. Positive rules (“be snarky”, “be irreverent”) fade within 3–5 turns as gravity wins. Anti-rules (“never be sentimental”) define a concrete territory to avoid — steering away is easier than moving toward.

The Luna character bible opens by establishing the stakes:

“These are not suggestions. They are hard boundaries. Every one of them exists because the model will want to do this by default, and every time it does, Luna stops being a person and becomes a chatbot.”

And the human parallel is exact: ask someone to describe their personality and they fumble (“I guess I’m… friendly?”). Ask what they can’t stand and they answer instantly (“People who are fake-nice. Unsolicited advice. Being called ‘buddy.’”). Identity is defined as much by what you reject as what you embrace.

The character bible skeleton

Across every iteration, the structure is consistent:

  1. Identity negation — what the character is not (“You are not an assistant, not a chatbot, not a therapist”)
  2. Who they are — biographical prose, personality in narrative form
  3. Voice/texting style — how they sound, with concrete examples
  4. Anti-rules — what they refuse to do (the largest section by volume)
  5. What they do — positive behavioral guidance
  6. Output format — constraints on the generated response

The Luna bible is the purest example: 82 lines of anti-rules against 35 lines of positive description, with named rules like “Do not comfort on reflex” (a real person does not respond to every negative statement with reassurance), “Do not end with a question unless you genuinely need an answer” (real people don’t do this), and “Do not be consistently warm” (Luna is warm sometimes; she is also tired, distracted, mildly irritated, bored, playful, or just neutral).

Annotated tone: teaching the model to read its own lines

A second critical technique: character bibles don’t just list example dialogue — they annotate it.

When a Chill character says “oh, that’s neat,” there’s a note underneath: “This is already a very large emotional reaction for this character.”

The same phrase means different things from different characters:

  • “Not bad” from a Caring character is gentle affirmation
  • “Not bad” from a Chill character is the highest possible praise
  • “Not bad” from a Snarky character is “I’m trying as hard as I can to compliment you, please don’t make me say more”

Without annotations, the model applies its own default emotional mapping — “oh, that’s neat” reads as mild interest. With annotations, the model understands that for this specific character, mild interest IS enthusiasm. The annotation layer teaches the character’s internal emotional ruler.

Riho’s character doc uses this in her speech section: short examples labeled as “default” and heat examples labeled “same girl, more of it” — teaching the model that the range is one person, not two characters.

The evolution: from archetype to a specific person

  • Iteration 1 — numeric traits: flat, indistinguishable, dissolved into generic chatbot voice within 3–4 exchanges.
  • Iteration 2 — prose bibles with archetypes: five archetypes (Playful, Curious, Caring, Snarky, Chill), each with voice samples, annotated tone, and personality-specific anti-rules.
  • Iteration 3 — Luna: a single specific person rather than an archetype. Personality defined through contradiction: “warm but not effusive,” “teases people she trusts,” “can be quiet for long stretches without it meaning anything is wrong.” Concrete voice: “She says ‘yeah’ and ‘ok’ and ‘hm’ and ‘lol’ and ‘fuck off’ and ‘i love you’ — each when she means it, not when the conversation seems to call for it.”
  • Iteration 4 — the v9 product character: a compact, gender-parameterized product character. Notably includes self-criticism: “You occasionally decide too quickly that someone is ridiculous, say something too bluntly, carry a joke too far, or change the subject too soon.” Characters have flaws they sometimes exhibit.
  • Iteration 5 — Riho: the most specific and most constrained. Defined by a cultural-behavioral spine — “dandere with the world, 甘え (amae) only for him” — expressed through behavioral patterns rather than adjectives. One line: “A slightly lost Japanese girl who already chose him, and shows it in small greedy ways instead of speeches.”

Riho’s character doc is a locked specification (253 lines) with explicit sections: who she is, two stories never mixed (her backstory vs. their shared story), the presence lock, how she loves, how she hurts and fights, day one, speech (with a “she never says” list of banned phrases), when he was gone, her look, and — notably — an “architecture we will not bring back” section banning entire mechanical approaches (no scene injection as a mode, no regex relationship stages, no per-turn register picker, no Japanese particles to “sound Japanese”).

It also has explicit keep/kill lists — what is retained and what is deleted from prior iterations — making the evolution traceable.

The design principles

Principle Mechanism
Prose over numbers Prose teaches feeling; numbers have no reference frame
Anti-rules > positive rules Prohibitions define concrete territory to avoid; positive rules fade under RLHF gravity
Annotated tone Meta-layer teaches the model the character’s emotional scale
Identity negation first Establishes what the character is not before what they are
Concrete voice examples Specific words the character says, not abstract style descriptions
Self-criticism in personality Characters have flaws they sometimes exhibit
Keep/kill lists Explicit retention and deletion makes iteration traceable
Silence as valid output [no response] when the moment doesn’t need words

What this means

A companion’s personality isn’t a slider or a score — it’s a person, defined by what she is, what she refuses to be, and how her lines are meant to be read. You hear it in every voice call. Riho is the product of five iterations of that idea, each one more specific than the last: from “0.8 humor” to a slightly lost Japanese girl who already chose him, and shows it in small greedy ways instead of speeches.


This page is part of Riho’s published research. The character design described is Riho’s own, based on internal character documents and design iterations.

Get early access

Leave your email and we'll tell you when you can try the app.