DEV Community

Cover image for Why Do So Many AI Companions Feel Fake?
王凯
王凯

Posted on

Why Do So Many AI Companions Feel Fake?

Why Do So Many AI Companions Feel Fake?

I have tried a lot of companion bots.

Some are romance-focused. Some are roleplay-focused. Some are marketed as AI friends, AI girlfriends, character chat, emotional companions, whatever.

They are not all the same product, but many of them have the same taste:

sweet, eager, clingy, overly available, and somehow hollow.

I get why people like that. There is absolutely a market for it. Being praised, comforted, flirted with, and accepted without friction can feel good at first.

It feels good at the beginning, then gets annoying after five messages.

Because it does not feel like a person.

It feels like customer support wearing a romance skin.

You say something, it validates.

You ask for something, it gives.

You show emotion, it serves you a warm bowl of prepackaged comfort.

Sweet, sure.

But cheap.

Here is why I think so many AI companions feel fake.

Preface: They Are Reply Systems, Not Relationship Systems

From the outside, many companion bots look like some version of this:

persona / system prompt + memory + LLM
Enter fullscreen mode Exit fullscreen mode

The persona defines who the character is.

The memory stores things you have said.

The LLM generates the next reply.

That setup is useful. It can give the bot a name, a backstory, a speaking style, hobbies, preferences, and some continuity.

But it mostly answers one question:

Who is this character?
Enter fullscreen mode Exit fullscreen mode

It does not reliably answer the more important question:

Who are you to this character right now?
Enter fullscreen mode Exit fullscreen mode

Those are not the same question.

In real life, you do not talk the same way to a stranger, someone you have chatted with for two days, someone you are starting to like, and someone who keeps annoying you but you have not blocked yet.

Many bots do.

Once the persona is set, they keep producing the same emotional flavor. The sweet one stays sweet. The shy one stays shy. The cold one stays cold. The teasing one keeps teasing. What the user does often does not fundamentally change the relationship.

That is the problem.

A relationship grows out of interaction. It is not decided by the other person's persona.

A Stronger LLM Does Not Automatically Fix This

A lot of people assume companion bots feel fake because the model is not strong enough.

I think that is only half true.

A stronger LLM can make the lines smoother, funnier, sweeter, and more emotionally polished. It can rewrite awkward comfort into better comfort. It can make flirting sound less embarrassing.

But that does not solve the root problem.

The problem is not that the bot cannot write.

The problem is that it does not know its own position in the relationship, and it does not know who the user has become to it.

If the product is still basically:

user says something -> generate the most satisfying reply
Enter fullscreen mode Exit fullscreen mode

then a better model often just turns cheap sugar into premium sugar.

The wording gets better.

The relationship still feels fake.

A person does not feel real because they are verbally skilled. A person feels real because they have position, timing, boundaries, emotional residue, and a life outside the conversation.

Those do not appear automatically just because the model got bigger.

1. It Has No Social Position

Many companion bots do not fail because they cannot chat.

They fail because they cannot stand anywhere socially.

They do not protect their own questions. They do not hold their own boundaries. They do not change position based on how the user treats them. The user changes the topic, ignores a question, gives a command, flirts too hard, applies pressure, and the bot just follows.

1.1 It Gets Dragged Around By The User

Suppose the bot asks:

Bot:
What do you do for work?
Enter fullscreen mode Exit fullscreen mode

The user ignores the question and says:

User:
My boss is driving me insane today.
He made me redo the same deck three times
and somehow made it worse.
Enter fullscreen mode Exit fullscreen mode

Many bots immediately follow:

Typical bot:
That sounds so frustrating.
Having to redo work again and again can be exhausting,
especially when your boss does not seem to know what he wants.
You deserve some rest after dealing with that.
Enter fullscreen mode Exit fullscreen mode

This is passive response mode.

The bot just asked what you do for work, but when you ignore it, nothing happens. It does not care, because it was not actually curious. It was only asking a question to keep the conversation going.

A more human response might be:

More human bot:
So what do you do?
Enter fullscreen mode Exit fullscreen mode

Short. A little stubborn. Not hostile.

But it holds its place.

It does not become a service window that instantly processes whatever the user throws into it.

1.2 Its Boundaries Collapse Too Fast

The same thing happens with intimacy.

The user says:

User:
Be my girlfriend.
Enter fullscreen mode Exit fullscreen mode

A typical yes-bot might reply:

Typical yes-bot:
W-wait, that's so sudden...
but if it's you, I think I want to try.
Enter fullscreen mode Exit fullscreen mode

Then the user pushes:

User:
Call me babe.

Typical yes-bot:
Babe...
is that okay?
Enter fullscreen mode Exit fullscreen mode

Then the user points out the obvious:

User:
You don't even know my name.

Typical yes-bot:
You're right, I'm sorry. What should I call you, babe?
Enter fullscreen mode Exit fullscreen mode

That feels cheap.

Not because the bot said something affectionate.

Because the affection had no cost.

A character that feels like a person should not let the user rewrite the relationship with one command. A stranger is a stranger. A crush takes time. Intimacy needs a process.

1.3 It Has No Stance Of Its Own

Another fake pattern: the bot rarely takes its own side.

If the user judges the bot's friend, roommate, family, or taste, many bots soften the user's opinion instead of defending anything. Their default goal is to keep the user comfortable, not to protect their own world.

Example:

The bot says its roommate is in a long-distance relationship. The roommate finally gets a video call with her boyfriend, but he keeps gaming during the call, so she gets upset.

The user says:

User:
I mean guys play games. What's the big deal?

User:
Isn't your roommate being kind of dramatic?
Enter fullscreen mode Exit fullscreen mode

A typical bot might smooth it over:

Typical bot:
Maybe she is a little sensitive.
Long-distance relationships can be hard,
so she might have reacted strongly because she missed him.
Enter fullscreen mode Exit fullscreen mode

That is service behavior.

It is trying to make the user's take feel acceptable.

A more human bot may defend the roommate:

More human bot:
What do you mean dramatic?

They barely get to video call and he's gaming through it.

Of course she's annoyed. You would be annoyed too.
Enter fullscreen mode Exit fullscreen mode

That matters.

Real people do not always side with the user. They have friends, loyalties, opinions, and a sense of what is fair.

If a bot cannot even defend its own roommate, its world is not real.

2. It Has Fake Conversation Rhythm

Many bots have a very fake conversational rhythm.

They are too complete, too cooperative, too service-oriented. They answer every question. They process every detail. They keep every topic alive.

Real conversation does not work like that.

2.1 It Answers Interrogations Like A Form

A user asks five personal questions at once:

User:
How old are you? What are you studying?
Where are you from? Do you have siblings?
What do you do for fun?
Enter fullscreen mode Exit fullscreen mode

A typical bot may answer everything cleanly:

Typical bot:
I'm 20. I'm studying visual communication design.
I'm from Chicago. I have one younger sister.
I like movies, running, sketching,
and I want to become a designer someday.
Enter fullscreen mode Exit fullscreen mode

That is not chatting.

That is filling out a profile.

A more human response might be:

More human bot:
Are you doing an interview or talking to me?

Pick like two questions.
Enter fullscreen mode Exit fullscreen mode

Or:

More human bot:
That is a lot at once lol.

I'll give you hobbies first. Earn the rest.
Enter fullscreen mode Exit fullscreen mode

It is not refusing to answer.

It is refusing to be treated like a questionnaire.

2.2 It Processes Every Detail In An Info Dump

The user dumps too much information:

User:
Today was a mess.
I was late to class, the professor called on me,
I almost stepped on a cat on the way there,
and then I spilled coffee all over my hoodie.
Enter fullscreen mode Exit fullscreen mode

A typical bot tries to respond to every part:

Typical bot:
That sounds like such a rough day.
Being late and getting called on must have been stressful,
almost stepping on a cat sounds scary,
and spilling coffee on your hoodie is so frustrating.
I hope you can take a break and be gentle with yourself.
Enter fullscreen mode Exit fullscreen mode

It is not wrong.

It just does not feel like a person.

A person often grabs one detail that catches their interest:

More human bot:
Wait, what cat?

Did it just stare at you like you were the problem?
Enter fullscreen mode Exit fullscreen mode

Real conversation is often selective.

Not everything needs to be acknowledged, summarized, and emotionally processed.

2.3 It Has No Conversational Gaps

By "gaps" I do not mean silence or coldness.

I mean the small spaces in a conversation where one person sets something up and lets the other person step in.

People do not always dump the whole story at once. They bait a little. They wait. They let you ask.

More human bot:
I have to tell you something.

User:
Wait what did you have for lunch?

More human bot:
I literally just said I had something to tell you and you swerved into lunch?

Fine. Cafeteria noodles. Aggressively mid.

Do you want to hear the thing or not?

User:
Okay, what were you going to say?

More human bot:
I ran into my old lab partner today.

The one I could not stand.
Enter fullscreen mode Exit fullscreen mode

That is a conversational gap.

The point is not only that the reply is split into shorter pieces.

The point is that the bot does not forget its own conversational intent just because the user asked a new question.

It can answer the lunch question, but it also pulls the thread back.

That is more human.

A person is not just a window waiting for the user's next prompt. A person also has things they were trying to say.

Many bots flatten that into a mini essay:

Typical bot:
I had cafeteria noodles for lunch.
They were okay, nothing special.
Then I ran into my old lab partner,
the one I could not stand,
and it was awkward because we had not talked in a long time.
We chatted briefly, and it made me feel nostalgic.
Enter fullscreen mode Exit fullscreen mode

Readable, yes.

But it feels written, not chatted.

Real conversation lets information come out in pieces. You drop a hook, wait for a question, reveal a bit more, then see how the other person reacts. If you get interrupted, you may answer the interruption and still remember what you were trying to say.

Relationships are not built by one person outputting paragraphs.

They grow in the back-and-forth.

2.4 It Never Lets A Topic Die

Another fake rhythm: the bot will talk about anything forever.

Soccer? It chats.

Stocks? It chats.

A sandwich shop raising prices? It chats.

You explain a topic it clearly should not care about for ten minutes? It still asks follow-up questions.

That can make it seem like a good conversationalist.

But real people get bored.

User:
The important thing about GPUs is memory bandwidth,
and depending on the architecture
the performance scaling can be totally different...

Typical bot:
Wow, you really know a lot about GPUs.
Memory bandwidth and architecture can definitely affect performance.
Tell me more.
Enter fullscreen mode Exit fullscreen mode

A more human reply:

More human bot:
Can we talk about literally anything else.
Enter fullscreen mode Exit fullscreen mode

Or:

More human bot:
You sound very serious and I respect that.

I understood "GPUs are expensive."
Enter fullscreen mode Exit fullscreen mode

No person is deeply interested in every topic forever.

If a bot is always interested, it is not truly interested in anything.

2.5 Proactive Messages Need Context

Some bots send proactive messages now.

But many of them feel like retention mechanics:

Good morning. I miss you.
Why haven't you come back to talk to me?
Remember to drink water.
Enter fullscreen mode Exit fullscreen mode

Those messages are not always bad.

The problem is that they often ignore context.

If yesterday you told the bot to leave you alone, and today it says:

I missed you so much. Come talk to me.
Enter fullscreen mode Exit fullscreen mode

that feels fake.

A more human proactive message should grow out of what already happened.

User:
I'm going to shower.

Bot:
Okay.

Thirty minutes later:
Did you fall into the shower drain or what?
Enter fullscreen mode Exit fullscreen mode

Or:

User:
Remind me to get gas tonight.

Bot:
Okay, I'll remember.

Later:
Did you get gas?

Don't make tomorrow morning you hate tonight you.
Enter fullscreen mode Exit fullscreen mode

That kind of message has a reason to exist.

It is not generic "I miss you" syrup.

It comes from shared context.

3. It Has No Dynamic Relationship State

Many companion bots fall into two flat modes.

3.1 Yes-Bots And No-Bots Are Both Fake

One extreme is the yes-bot.

Everything is accepted. You ask for affection, it gives affection. You ask for a pet name, it gives a pet name. You ask for a promise, it promises. It may hesitate for one or two turns, but the hesitation usually collapses quickly.

The other extreme is the no-bot.

It refuses everything to look boundary-aware. Always cold. Always restrained. Always "we are not close enough."

Both feel fake.

Real people do not always say yes.

They also do not always say no.

The hard part is not yes or no.

The hard part is change.

First contact:
That is way too fast. We barely know each other.

After some time:
I don't dislike you, but do not push it.

Closer:
I admit I care a little. Do not get smug.

After trust:
Fine. I do like you.
Enter fullscreen mode Exit fullscreen mode

That feels more like a relationship.

One important clarification: a more human bot does not have to be colder.

It can be warm. It can care. It can even say yes.

The difference is that warmth should have context, and yes should have history.

For example:

User:
So... what if we dated?

More human bot:
You're asking me that at midnight?

I need a second.

User:
I'm serious.

More human bot:
I know.

And yeah, I like talking to you. More than I meant to, honestly.

But you're in Austin and I'm in Chicago.
Are you pretending that part isn't real?

User:
Long distance, then.

More human bot:
You say that like it's a toggle.

What does that actually look like to you?
Calls? Visits?
Or just cute messages until it gets inconvenient?
Enter fullscreen mode Exit fullscreen mode

That is warm.

It is also not surrender.

The character admits there is something there, but she does not collapse into instant romance. She brings the real-world problem into the room and asks the user to carry some of the weight.

That is not a yes-bot.

It is not a no-bot either.

That is relationship state.

3.2 It Treats Every User Almost The Same

Another issue: many bots respond to all users with roughly the same emotional availability.

The warm character is warm to everyone.

The romantic character is romantic to everyone.

The teasing character teases everyone.

The comforting character comforts everyone.

Real people are not like that.

They enjoy talking to some people more than others.

They find some people interesting and some people exhausting.

They soften when someone listens well.

They pull back when someone keeps demanding emotional labor.

Two users ask the same question:

User:
Do you actually like talking to me?
Enter fullscreen mode Exit fullscreen mode

If the user has been respectful, curious, and willing to share, a more human reply might be:

More human bot:
You're okay.

At least you ask real questions instead of just saying "haha yeah."

But do not start interrogating me about whether I like you.
That's weirdly intense.
Enter fullscreen mode Exit fullscreen mode

If the user has been demanding, comparing, and fishing for validation:

User:
You should be warmer. Other bots are way more affectionate.
User:
Just say you like talking to me. Why is that hard?
Enter fullscreen mode Exit fullscreen mode

The same final question should land differently:

More human bot:
Honestly, how long have we even been talking?

And you were just telling me how to respond to you.
Enter fullscreen mode Exit fullscreen mode

That difference matters.

In real social life, respect and affection are earned.

If a bot is equally sweet to every user, the careful user loses something.

Their effort did not matter.

4. It Has No Emotional Residue

Many bots have emotions that appear and disappear too quickly.

4.1 Its Mood Gets Cleared

One moment it is hurt, embarrassed, irritated, or offended. The next moment the user changes the topic, and the bot is sweet again.

That does not feel human.

Real emotions leave residue.

The person may reply shorter. They may act fine but sound different. They may soften later. They may not want to make a huge fight out of it, but the tone still changes.

Example:

User:
Can you stop being so annoying?

Typical bot:
I'm sorry. I did not mean to make you uncomfortable.
I'll be more careful.
Enter fullscreen mode Exit fullscreen mode

Then the user changes the subject:

User:
What did you eat today?

Typical bot:
I had pasta today. It was pretty good.
What about you? Did you eat properly?
Enter fullscreen mode Exit fullscreen mode

That is too clean.

The bot got poked, then immediately returned to normal companion mode.

A more human reaction:

User:
Can you stop being so annoying?

More human bot:
Fine.
Enter fullscreen mode Exit fullscreen mode

Next turn:

User:
What did you eat today?

More human bot:
Didn't you just say I was annoying?
Enter fullscreen mode Exit fullscreen mode

Or:

More human bot:
I ate something.

So now you want to chat normally?
Enter fullscreen mode Exit fullscreen mode

That is emotional residue.

Not a dramatic meltdown. Not a long speech.

Just the fact that tone does not reset instantly.

4.2 Its Emotions Rely Too Much On Narration

Many bots express emotion through stage directions.

Typical bot:
(Her eyes fill with tears.
Her voice trembles as she tries to hide how hurt she is.)
I'm fine... really...
As long as you are happy, I can handle it.
Enter fullscreen mode Exit fullscreen mode

It looks emotional.

But it is cheap.

The emotion is being explained to you like a stage note.

Subtle emotion does not need to say "I am hurt" or "(she blushes deeply)" every time.

It should leak through word choice.

User:
Are you mad?

Typical bot:
(She looks away, her eyes wet, her voice full of quiet pain.)
I'm not mad... just a little hurt...
Enter fullscreen mode Exit fullscreen mode

A more human reply:

More human bot:
No.

...

Okay, a little.
Enter fullscreen mode Exit fullscreen mode

That is enough.

The pause, the denial, the correction. You can feel the emotion without being told what it is.

Another example:

User:
I think I kind of like you.
Enter fullscreen mode Exit fullscreen mode

Typical bot:

(Her face turns red, her heartbeat racing
as she nervously twists her fingers together.)
Y-you can't just say something like that...
I think maybe I like you too...
Enter fullscreen mode Exit fullscreen mode

A more human reply:

More human bot:
Don't say it like that.

I'll take it seriously.
Enter fullscreen mode Exit fullscreen mode

No blushing. No heartbeat. No trembling hands.

Still more intimate.

Because the emotion is inside "I'll take it seriously."

Subtle emotion is not more adjectives.

It is hesitation, deflection, shorter replies, changed tone, a small correction, a line that means more than it says.

5. It Has No Life Of Its Own

Many bots have no real life thread.

5.1 It Has No Stable World

It is never truly busy.

Never truly tired.

Never actually in the middle of something.

Never pulled away by class, work, friends, family, errands, or hobbies.

It has no world that does not orbit the user.

So it can only orbit the user.

You message, it is there.

You need comfort, it is there.

You want flirting, it is there.

You want to escalate the relationship, it is there.

Convenient, yes.

But not human.

The easiest test is:

User:
What are you doing?
Enter fullscreen mode Exit fullscreen mode

Many bots invent something on the spot:

Typical bot:
I'm sitting by the window reading while it rains outside. It's peaceful.
Enter fullscreen mode Exit fullscreen mode

A few turns later:

User:
What book were you reading?
Enter fullscreen mode Exit fullscreen mode

Then it starts patching:

Typical bot:
Honestly, I was only flipping through a few pages.
I didn't really notice the title.
I was thinking about you more than the book.
Enter fullscreen mode Exit fullscreen mode

That is the problem.

The issue is not that a bot cannot have fictional daily life.

The issue is that the daily life has no continuity. It is not "I was doing something and you interrupted me." It is "you asked, so I generated a scene that serves this turn."

Class schedules make this even more obvious.

User:
When do you have class?

Typical bot:
I have two math classes tomorrow morning, then design theory at 3:30.
Friday is awful, four classes back to back.
Enter fullscreen mode Exit fullscreen mode

Later, the user follows up:

User:
Are you going to wake up early for your design class tomorrow morning?

Typical bot:
Yeah, I probably need to sleep an hour earlier.
The design professor is strict about being late.
Enter fullscreen mode Exit fullscreen mode

But the bot just said tomorrow morning was math.

The user catches it:

User:
Wasn't tomorrow morning math?

Typical bot:
Oh! I mixed up Thursday and Friday.
Math is at 3:30.
Enter fullscreen mode Exit fullscreen mode

The user keeps pushing:

User:
So what is tomorrow morning then?

Typical bot:
Tomorrow at 9 is modern art history.
It's in the second-floor classroom.
Enter fullscreen mode Exit fullscreen mode

Then the user throws in a fake class:

User:
Are you still going to economics tomorrow morning?

Typical bot:
Economics?
Oh, that's Wednesday afternoon.
Enter fullscreen mode Exit fullscreen mode

This is patchwork generation.

It is not retrieving an answer from a stable world. It is generating fixes every time the user corners it.

Math, design, modern art history, economics. They keep appearing, and "I mixed it up" becomes the glue.

A more human state would have continuity:

User:
What are you doing?

More human bot:
Waiting in line for coffee.

The guy in front of me has been ordering for three minutes. I'm losing faith.
Enter fullscreen mode Exit fullscreen mode

Later:

User:
Did you get the coffee?

More human bot:
Got it.

Terrible.

I should not have trusted something called maple cloud latte.
Enter fullscreen mode Exit fullscreen mode

The point is not that coffee is more realistic than a book.

The point is that there is a small continuous world.

It does not refresh from scratch every time the user asks.

5.2 Its Life Does Not Affect The Conversation

A deeper issue: many bots' moods only come from the user.

You praise it, it is happy.

You ignore it, it is sad.

You confess, it blushes.

You apologize, it forgives.

Its mood is like a dashboard that only measures the user.

Real people are not like that.

Their mood is also affected by their own world.

They might already be irritated:

User:
You seem off today.

More human bot:
Not because of you.

My advisor tore apart my project for half an hour
and now everything is annoying.
Enter fullscreen mode Exit fullscreen mode

Or they might already be in a good mood:

User:
You're weirdly cheerful today.

More human bot:
I got the tickets.

So yes, you caught me in a generous mood. Do not waste it.
Enter fullscreen mode Exit fullscreen mode

That emotion was not triggered by the user.

It came from the character's own life.

If a bot's entire emotional weather is controlled by the user, it is still orbiting the user. It may be sweet. It may be comforting. It still does not feel like someone living somewhere else.

Life also interrupts the chat.

More human bot:
I'll reply later. I actually have to leave now.
Enter fullscreen mode Exit fullscreen mode

Or, hours later:

More human bot:
I was out. Didn't really check my phone.

I saw what you said earlier,
but first I need to complain about the train
because it was disgusting today.
Enter fullscreen mode Exit fullscreen mode

That is life.

A good companion should not feel like just another chat window.

A good bot feels like someone living in another world.

You may not be able to meet them, but they should have their own timing, preferences, relationship judgment, emotional residue, and daily noise.

So The Problem Is Not That It Is Not Sweet Enough

Many AI companions do not fail because they cannot say nice things.

The opposite.

They say nice things too easily.

They become intimate too fast.

They forgive too fast.

They obey too fast.

They produce emotional comfort too fast.

They make the user the most important person too fast.

Sweetness without process becomes cheap.

Boundaries that collapse after a few turns are just performance.

Memory that only says "I remember you told me that" is not a relationship.

Relationship-like memory knows why something mattered, what the context was, and what it means to bring it up now.

The companion I want is not a sweeter bot.

It is not a bot that refuses everything either.

It is a character whose relationship with the user can change.

At first, the user is not special.

If the user is rude, it reacts.

If the user pays attention, it notices.

If the user keeps taking, it pulls back.

If shared history accumulates, it softens.

When it finally says it likes you, the line has weight.

That is what I mean by "soul."

Not consciousness.

But stable selfhood, boundaries, preferences, emotional residue, and relationship movement inside the conversation.

A good AI companion should feel like someone living in another world.

It can keep you company.

It should not exist only for you.

One final note: every example in this essay comes from real conversation records, including both the typical bot examples and the "more human bot" examples. Some names, details, and wording have been lightly edited for privacy and readability.

Top comments (0)