guide

Why Your AI Companion Writes Your Character's Dialogue For You

It is called puppeting, it happens because the model is continuing a pattern rather than breaking a rule, and the fix order runs from a one-line persona binding to admitting the model is the ceiling.

By Ash Kepler · Jul 25, 2026 · 7 min read

Affiliate disclosure: Some of the links in this article are affiliate links. We may earn a commission if you sign up for a platform through these links, at no additional cost to you. This doesn't influence our editorial verdicts. Full disclosure →

Your character just said something you did not type. The bot wrote her line, her reaction, and probably her internal monologue too, and now you are reading a scene you had no part in.

The community calls this puppeting. It is not a bug, it is not the filter, and the bot has not decided to take over. It is the most ordinary thing a language model can do, applied somewhere you did not want it.

The model is finishing a pattern, not breaking a rule

Here is the mechanism, stated plainly. The model predicts and continues whatever pattern it sees in the chat. It does not understand roleplay the way you do. It reads the text so far and predicts what plausibly comes next.

And roleplay writing, as a genre, is absolutely full of one author voicing both sides of a scene. Fanfiction, published fiction, the sample dialogues in half the cards on every platform. That is the dominant pattern in the training data. So when your bot has nothing concrete from you to react to, it falls back on the most common thing writers do in that situation: keep the story moving by writing everyone, including your character.

You are not fighting a policy. You are competing with a statistical habit.

Two setup mistakes that quietly invite it

An intro that narrates you. If the first message describes your character's actions, reactions, or dialogue, the model reads that as an established convention for this chat. The opening is the strongest behavioral template in the entire conversation, which our guide to what belongs in a character card covers in more detail. If the opener puppets you, everything after it will too.

A persona field stuffed with traits. Counterintuitive, and real. A dense persona description hands the model a rich picture of your character and no instruction about who voices her. Rich description plus no boundary reads as material to work with.

There is also the creator problem. Most public cards were built with sample dialogues that were never tested against deep roleplay or longform writing. They work until they do not, and the example messages are where the habit gets taught.

The fix order, cheapest first

Bind the name. The single highest-return edit. Put a line like {{user}} = Mara in your persona field or advanced prompt, then instruct the bot to write only from the character's side. You are giving the model an explicit boundary where it previously had an ambiguous one.

Trim the persona field. Cut it to a few concrete traits and how your character speaks. Everything you remove is a token returned to conversation memory anyway, which our guide to the token ceiling explains.

Write more, not less. Puppeting spikes when you leave a vacuum. A one-line reply gives the model almost nothing to react to, so it invents the missing half. Two or three lines with an action and a decision in them usually stops it cold.

Edit the puppeting out. Manually delete the parts where the bot acts as your character. Do it consistently a few times and the pattern shifts, because the model imitates what is visible in the chat, and you have just removed the examples it was copying.

Put it in permanent memory. If your platform has system notes, a one-line prohibition belongs there rather than in a passing message, since anything said in ordinary conversation scrolls away. Our guide to writing memory anchors covers what qualifies.

When it is the model, not you

There is a real ceiling. If you have bound the persona, trimmed the traits, and retrained across a full session and the bot still puppets, the model is the limit rather than your setup. Lighter models hold boundaries worse, and the problem gets sharper in long chats as memory drifts.

Switching to a stronger model through a bring-your-own-API setup resolves the worst cases on its own. On Janitor AI that means connecting an external model rather than running the in-house one, which our SillyTavern setup guide also covers for people going further down that road.

If configuration is the part you would rather skip, the polished subscription platforms handle role separation server-side and do not expose the example-message system that teaches the habit. Candy AI and CrushOn both sit there, and our roundup of the best AI companion apps splits the category on how much of this you want to manage yourself.

The uncomfortable part

Models are good at this. Researchers at the Technical University of Darmstadt built a method called LLM Roleplay, where one model impersonates the human side of a conversation convincingly enough that readers frequently could not tell which half was machine-written.

So when your companion writes your character better than you expected, that is not an accident of a bad card. It is a demonstrated capability showing up in a place you did not ask for it.

Which is also why the fix is a boundary rather than a correction. You are not teaching the model to do something it cannot do. You are telling it which half of the page belongs to you.

questions

Frequently asked

Because the model predicts and continues whatever pattern it sees in the chat. Roleplay writing is full of examples where one author voices both sides of a scene, so when the model has nothing concrete from you to react to, it keeps the story moving by writing everyone.