How Do AI Companion Apps Work

When you press send in a companion app, your text almost always leaves your phone, is combined on a server with a standing instruction sheet and some portion of your earlier conversation, is answered by a large language model, and comes back as a reply. The app on your device is a chat interface and a network client. Nearly everything that determines what the character says lives somewhere you cannot see, and can be changed without your knowing.

You do not have to take that on trust. The outline is observable from the outside, and this post sticks to the parts you can confirm yourself.

The round trip, step by step

Five stages, and the interesting ones are in the middle.

Your device packages the message. The app collects what you typed plus whatever identifiers it attaches — an account token, a device identifier, often locale and app version. Nothing about the reply has happened yet.

A server assembles the real request. This is the step people underestimate. What reaches the model is not your sentence alone; it is your sentence surrounded by a standing description of the character and some selection of what was said before. That assembly is a server-side decision, revised whenever the operator likes.

A model generates text. In almost every commercial app of this kind that is a general-purpose language model, sometimes one the operator built on top of and sometimes one licensed from elsewhere. It produces a plausible continuation of what it was handed. It is not looking anything up about you, and it is not thinking about you between your visits.

The reply is checked on the way out. Most operators run some filter over generated text before it reaches you. That is a separate system from the model and it gets adjusted far more often than the model does.

Your device displays it and stores something. How much stays local and how much exists only on a server varies by product, and it has consequences for your backups and for what remains after you uninstall.

How you can tell that is what is happening

Four tests, none needing any technical tooling.

Turn the network off. If replies stop, generation is remote. That is conclusive and takes ten seconds; the fuller version of the test is in what airplane mode tells you about an app.

Watch the latency. A reply that takes a second or two and arrives progressively is a network stream. Instant replies to anything at all are stored text.

Check the app’s size and its share of your battery. A conversational app with a small storage footprint that barely registers in your battery breakdown is not running a model on your phone. What local processing would actually look like is set out in what on-device processing would look like.

Notice when the character changes overnight. Nothing on your phone changed, so something on a server did. This is the plainest evidence available of where the behaviour really lives, and the wider version of the point is in what an app update can change without asking.

Why the conversation feels continuous

Here is where expectation and mechanism diverge most, so it is worth being blunt.

A language model holds nothing between requests. Each reply is produced from whatever text accompanied that request and nothing else.

Continuity is therefore a re-sending problem. For the character to appear to know something, that something has to travel with the request again. Every product in the category faces the same arithmetic: there is a ceiling on how much text can be sent at once, conversations grow without limit, and so something has to be left out.

Every solution to that is lossy. Send only the recent stretch and older material falls off the end. Send a condensed account of what happened earlier and detail flattens into summary. Keep a short list of stated facts and anything not on the list is gone. All three can be described in marketing as memory.

Which is why “remembers everything” is the first claim to distrust. Not because a company is lying about having built something, but because the phrase describes an outcome the mechanism does not produce. Testing it needs one unremarkable detail mentioned early and asked about much later.

The settings you never see

Four things shape your whole experience and appear nowhere in the interface.

The standing instructions that establish the character. You may be able to edit a description of your companion; that is one input among several, and the operator’s own layer sits above yours.

The rules about what a reply may contain. These change often, are rarely documented in detail, and nobody outside the company can state their behaviour on a given day. Whatever the operator publishes now is the only authority on them.

How much conversation gets re-sent, which is the actual substance of any memory feature and is almost never stated as a number.

Which model is behind it today. Operators swap this, and it is the change most likely to alter how an app feels while every screen looks identical.

What this does not tell you

The round trip tells you nothing about what any particular company retains, for how long, or who else sees it. Mechanism and policy are separate subjects: architecture describes what is possible, and only a published document speaks to what an operator has committed to. Marketing conflates the two constantly, and it is the second that binds anyone.

Nor does the mechanism make any product better or worse. Every app in the category works roughly this way, so it is a baseline rather than a differentiator. Its practical use is that it lets you sort claims about engineering from claims about an impression — and if a feature description would remain true of a plain chat window with a well-written instruction sheet in front of it, you have learned something useful about the feature. Where that leads next is what an AI companion app actually is, which draws the category boundary rather than the wiring diagram.