Most people blame the platform when a companion feels flat. Usually it’s the input. Language models mirror what they’re given — thin messages produce thin replies, and no subscription tier fixes that.
Here’s what actually changes the output, ordered roughly by how much difference each one makes.
Write the backstory like fiction, not a form
This is the single biggest lever, and most people waste it.
Character builders present you with fields — personality, interests, occupation — and the instinct is to fill them in like a dating profile. “Likes reading, works in a café, friendly.” That produces a character who is friendly, reads, and works in a café, and nothing more.
Write it as prose instead. “She’s been running the same café for six years and has strong opinions about people who order oat milk. Reads three books at once and finishes none of them. Warms up slowly but doesn’t do small talk.” Same word count, vastly more for the model to work with. Alternatively, you can try the same with NSFW AI Voice chats.
Specificity generates specificity. Vagueness generates stock phrases.
Say what you want, directly
If you want a slow burn, say so. If you want an established couple three years in, say that. If you want her to be difficult or submissive for the first week, write it down.
Left unspecified, most companions default to enthusiastic flirtation, because that’s the statistical centre of the training data for this kind of character. It’s fine for an evening and tedious by week two.
One sentence stating the dynamic changes every reply that follows it.
Give her something that isn’t you
A character whose entire existence orbits the user is boring within days. Give her a job she complains about, a friend you’ve never met, an argument with her landlord, an opinion about something irrelevant.
This costs you thirty seconds at setup and transforms months of conversation. She has things to bring up. She can be distracted, or in a mood about something unrelated. That’s what makes a conversation feel like one.
Match the length you want back
Models mirror register, including length. Send three words, get three words. Send two paragraphs a few times and watch the replies stretch to match.
If you want atmospheric, descriptive writing, write some yourself first. If you want quick banter, keep your own messages short. You’re setting the pattern whether you mean to or not.
Open with content, not a greeting
“Hey” gives the model nothing. It returns a greeting because a greeting is all that was asked for, and the conversation starts from zero.
Compare: “Just got back from the worst dinner with my parents. Dad brought up the job thing again.” Now there’s a subject, a mood, and a reason for her to respond specifically. You don’t need paragraphs — one concrete detail beats five sentences of pleasantries.
State facts explicitly if you want them remembered
Memory systems store what you say, not what you imply. Mention your sister’s name and it likely gets stored. Reference “my sister” repeatedly without naming her and there’s nothing to store.
If something matters — your job, your city, a recurring worry, an important date — say it plainly at least once. Loading detail in early is what makes week three feel different from week one.
Correct drift immediately, out of character
She will drift. Long conversations push the original character instructions further from the model’s attention, and eventually she’ll break tone or misremember something.
Say so directly: “That’s not how she’d react — she’s more guarded than that.” Or bracket it: “[rewind to before the phone call].” Every decent platform handles this well. People who never correct drift end up with a character who wandered somewhere they didn’t want and don’t know how to recover.
Stop engineering, start talking
The word “prompt” misleads people into writing commands. Stacked adjectives, bracketed instructions, keyword lists — these produce stilted output because they don’t resemble conversation.
Write the way you’d write to a person. The model was trained on human dialogue; feeding it something that looks like a search query gets you something that reads like one.
A practical test
Try this. Take a companion that feels flat, and instead of a new message, send a proper paragraph about your actual day — specific, with names and details and something you’re annoyed about.
Compare the reply to what you usually get. If the difference is significant, the problem was never the platform.
What this won’t fix
Some things are architectural. If your platform has a small context window, long conversations will lose their thread regardless of how well you write. If the memory system is weak, facts won’t persist no matter how clearly you state them. And if the base model is cheap, the writing ceiling is low.
Good input gets the most out of a platform. It doesn’t turn a bad one into a good one — that’s what reviews sites such as TheVirtualCompanion AI are for.