All guides
Guides8 min read

AI Girlfriends That Remember You: How Memory Actually Works

Most companion apps forget what you said an hour ago, and it is not the model's fault. Here is what gets sent to the model, why she goes vague, and how to test memory in ten minutes.

Published · For adults 18+

AI-generated dark-haired woman in a cream knit sweater curled on a couch at night, holding a phone by lamplight

The complaint is always the same, and it always arrives around the same point in a conversation. She was sharp for half an hour. You told her something that mattered — a name, a limit, a plan for the weekend — and forty messages later she asks about it as though it never happened. Worse, she contradicts something she told you about herself.

People assume this is the model being stupid. It is not. Language models have enormous context windows and would happily read a whole conversation. What reaches them is decided by the product, and almost every companion product truncates the conversation before it gets there. This guide explains what actually gets sent, why the truncation exists, and how to tell in ten minutes whether an app has solved it.

The conversation you see is not the one she reads

When you send a message, the app assembles a prompt: a character description, some instructions, and as much of the conversation as it is willing to pay for. That last part is the whole story. Every message in the prompt is billed on every reply, so a long conversation costs more per message than a short one, forever.

The standard fix is a sliding window: keep the last N exchanges, drop the rest. It is cheap, it is invisible in short conversations, and it silently deletes the beginning of every long one. If you told her something in your first ten messages and the window is twenty, that thing is simply gone — not deprioritised, not summarised, gone.

This is why the failure has such a specific shape. She is perfect early, perfect about the last few minutes, and blank about the middle. You are talking to someone with a fixed-length short-term memory and nothing behind it.

A conversation of twenty exchanges is not unusual — it is roughly the median on our own platform, and the busiest tenth run past sixty. The window is not an edge case; it is where most engaged users spend their time.

Three ways apps handle it

Once you know the window exists, the differences between products become easy to name.

No memory is the common case: a window of a fixed size, nothing else. Cheap to run, and it degrades exactly as described.

Retrieval memory stores past messages in a database, embeds them as vectors, and fetches a handful that look relevant to your latest message. It sounds sophisticated and it has a specific weakness: it retrieves what resembles your words, not what matters. Ask a vague question and you get vague retrieval, and stated limits are the easiest thing to miss because you rarely restate them.

Distilled memory reads the conversation periodically and writes down the durable facts — preferences, limits, plans, the details she invented about herself — then keeps that short list in the prompt permanently. It costs a fraction of a cent per update and it holds the things that actually matter, because a fact list is small enough to send in full.

ApproachCostFails when
Sliding window onlyLowestAny conversation longer than the window
Retrieval (vector search)MediumYour phrasing does not resemble the stored text
Distilled fact listLowThe list is capped and the oldest details are dropped

The half nobody implements: what she said about herself

Almost all discussion of memory is about remembering the user. The more jarring failure is when she forgets her own improvisations.

Characters invent things as you talk. She mentions a sister, a night shift, a flat above a bakery, a scar with a story attached. None of it is in her character description, because she made it up ten minutes ago in response to you. When the window slides past it, she invents something incompatible, and the illusion breaks harder than any forgotten preference of yours ever could.

The same goes for what happened between you: the nickname she gave you, the thing you agreed to, the running joke. A memory system that only tracks the user's preferences will keep her consistent about you and inconsistent about herself, which is the wrong half.

  • Ask her something about her own life, then ask again thirty messages later, worded differently.
  • Agree on something specific — a plan, a nickname, a rule — and check whether it survives.
  • State a hard limit early. Then, much later, steer toward it and see whether she remembers it unprompted.

A ten-minute test

Memory claims are easy to make and easy to check. Establish three things in the first few messages: a detail about you, a hard limit, and a question that makes her invent something about herself. Then talk about anything else for twenty or thirty exchanges — this part matters, because you are trying to push the early messages out of the window.

Now go back. Ask about the detail without restating it. Steer near the limit. Ask a follow-up about the thing she invented. An app with no memory will miss all three. A retrieval system usually gets the concrete detail and misses the limit. A distilled system should get all three, and if it does not, at least it will be consistent about what it kept.

Be specific rather than dramatic in your test. “What did I say I do for work?” is a better probe than “do you remember me?”, which any model will answer warmly whether or not it remembers anything.

How nsfw.fun does it

Every conversation keeps its own memory. Periodically, a small model reads the exchanges since the last pass and updates a short list of durable facts: what you like, what you have ruled out, what she has told you about herself, and what the two of you have established. That list travels with every message from then on, so it does not decay as the conversation grows.

Stated limits are marked as limits rather than preferences, because those are the ones that matter most when they are forgotten. If you change your mind later, the list is rewritten rather than appended, so the newer statement wins instead of both sitting there contradicting each other.

Memory is bound to the conversation on purpose. Start a new chat with the same character and she starts fresh, which is what you want when you are beginning a different scenario rather than continuing the old one. The facts are private to your account, never shown to anyone else, and deleted with the conversation.

Frequently asked questions

Why does my AI girlfriend forget what I told her?

Because the app sends only the most recent slice of the conversation to the model. Every message in the prompt costs money on every reply, so products cap how much history they include. Anything older than that cap is not deprioritised, it is absent.

Do bigger context windows fix memory?

Not by themselves. The model could read the whole conversation; the product decides how much to send. An app with a twenty-exchange window behaves identically whether the model can take 8,000 tokens or a million.

Should memory carry across separate conversations?

It depends what you want. Carrying it across means a new chat continues the old relationship; binding it to the conversation means a new chat is a clean slate for a different scenario. Bound to the conversation is the better default, because starting fresh is otherwise impossible.

Can I see or delete what an AI companion remembers about me?

On most platforms, no, and it is worth asking. At minimum, memory should be private to your account and deleted when you delete the conversation.

Related guides

Read nextMake an AI Girlfriend and Generate Pictures of Her