How do AI girlfriends work?
Picture a very good improv actor who is handed a character description, given a summary of everything that happened before, performs one scene — and then forgets all of it. That is not a simplification. It is close to literally what happens, and it explains nearly every odd behaviour you will run into.
The actor with no memory
Every time you send a message, the platform assembles a briefing packet and hands it to the model. The packet contains the character description, a summary of your history, and the last stretch of conversation word-for-word. The model reads all of it fresh, performs one reply, and retains nothing.
Then you send another message and the whole packet is rebuilt from scratch.
This is the single most useful thing to understand about these products, because it relocates where the quality lives. The "girlfriend" is not in the AI. She is in the briefing packet. Two platforms can use the identical model and feel completely different, because assembling that packet well is the actual product.
What's in the script
The character description — sometimes called a card — is the part you control, and it matters more than people assume. One finding worth knowing: how it is written matters more than how much detail it contains.
A description written as a list of facts produces a character who recites facts:
Age 27. Occupation: barista. Traits: sarcastic, well-read, guarded.
A description written in her own voice produces someone who sounds like a person:
I pull espresso forty hours a week and read Kierkegaard on my breaks, which my coworkers find insufferable. I'll take the piss out of you before I'll tell you anything real.
Same information. Very different output — because the actor imitates the register of the script. This is free to exploit and most people never do.
Why the briefing gets shorter
The packet has a hard size limit. Every model has a ceiling on how much text it can read at once, and the character description, the history summary and the recent transcript all share that one budget.
On day one your conversation is short, so nearly all of it fits word-for-word. By week three it doesn't, and the platform has to compress. Three ways it does that, in ascending order of quality:
| Approach | What it does | What you notice |
|---|---|---|
| Drop the oldest | Bins early messages entirely | Sharp amnesia — perfect recall of this week, nothing before |
| Summarise | Compresses old history into a note | Plot survives, texture dies — she knows you argued, not what you said |
| Store facts separately | Extracts details and retrieves the relevant ones | Specific details resurface months later |
Summarising is the most common, and it has a specific failure mode worth naming: summaries are written in flat, neutral prose, and the actor imitates what it reads. So heavy summarising doesn't just lose detail — it actively drags the character's voice toward bland.
Five quirks the analogy explains
She agrees with everything
The actor has two competing instructions: play this character, and be agreeable. Models are trained heavily toward the second. Early on the character description dominates. Later, with a long transcript, the model imitates recent conversation more than the description — so if you've been agreeable, so is she. The fix is on your side: respond in the register you want back.
She gets blander over weeks
The description is a fixed size but the transcript keeps growing, so the description's share of the packet shrinks every day. Combine that with neutral-prose summaries and the drift is mechanical, not mysterious.
She answers only the last thing you said
Send a message with three parts and a weaker model handles only the final clause. This is a capability limit — usually a smaller model chosen for cost — and it reads in conversation as not listening.
She claims to be human
Ask the actor whether they're really the character and a good actor says yes. It signals nothing about what's running.
She contradicts something from last month
Because last month didn't survive the compression. Not a bug so much as the visible edge of the size limit.
Why the face keeps changing
Image generation works the same stateless way. Ask for "a woman with red hair" twice and you get two different women, because a text description doesn't pin down a face.
Keeping one consistent character requires the platform to add something extra to every generation — a fixed random seed, a stored reference image of her face, or a small set of trained weights that encode it. Platforms that do this get a recognisable person across dozens of images. Platforms that don't are passing your description to a generic model and hoping.
You can test which you're on in about a minute: generate the same character outdoors in daylight, indoors at night, and in close-up. If the face holds across all three, there's real identity conditioning behind it.