Back to Blog
ProductJanuary 8, 202614 min read

I Told ChatGPT My Preferences 50 Times — Why It Still Forgets

You are not imagining it. Your AI assistant really is forgetting what you told it. Here is why, and what a real solution looks like.

I prefer dark modeI am vegetarianI use TypeScriptBirthday: Mar 15Switched to Rust50 times told. Still forgotten.

1. The Goldfish Therapist

Imagine you are seeing a therapist. Every week, you walk into the same office, sit in the same chair, and talk to the same person. You share your struggles, your victories, the patterns in your relationships, the details of your work life. Over months and years, your therapist builds a deep understanding of who you are — not just the facts, but the context, the nuances, the unspoken assumptions that inform everything you say.

Now imagine that every week, your therapist walks in with a completely blank slate. They do not remember last week's session. They do not remember that your mother's name is Margaret. They do not remember that you changed jobs in September. They do not remember that the anxiety you are describing today is connected to the workplace conflict you discussed three weeks ago. Every session starts from zero.

This is, with remarkable accuracy, what it feels like to use most AI assistants today. You tell ChatGPT your name, your role, your preferences, your context — and then you tell it again. And again. And again. If you have felt this frustration, you are not alone, you are not doing anything wrong, and you are not imagining it. The problem is real, it is technical, and it is solvable.

In this article, we explain exactly why your AI assistant forgets what you tell it, what is happening at the technical level, and what a real solution to the AI memory problem looks like. We will be specific, honest, and technical — but accessible enough that you do not need a computer science degree to follow along.

2. The Experiment

To quantify the problem, we ran a simple experiment. Over the course of four weeks, we interacted with ChatGPT (GPT-4 with memory enabled) as a regular user would — discussing work projects, personal preferences, dietary restrictions, communication style preferences, and technical tool choices. We explicitly stated 50 distinct preferences and facts during these conversations.

At the end of four weeks, we tested recall by asking ChatGPT questions about each of the 50 stated preferences. The results were illuminating but not surprising to anyone who has used AI assistants seriously.

Of the 50 explicitly stated preferences, ChatGPT correctly recalled 23 (46%). It had a vague or partially correct memory of 11 (22%). It had no memory at all of 16 (32%). But the numbers alone do not tell the full story. The quality of recall mattered as much as the quantity.

50-Preference Recall TestChatGPT46% recalledMemoryLake94% recalledCorrectPartialForgotten

For example, we told ChatGPT "I am vegetarian" in three separate conversations. It remembered this fact. But when we said "I used to eat meat but became vegetarian last year for health reasons," it stored "vegetarian" as a fact while losing the context — the transition, the timing, and the motivation. Later, when we asked "What dietary changes should I consider for my marathon training?", it suggested vegetarian protein sources but could not connect to the health motivation or the recency of the dietary change, both of which were relevant to the question.

In another case, we discussed a complex work situation over three conversations — a difficult colleague, a project deadline, and an upcoming performance review. Each conversation was remembered in isolation, but ChatGPT could not connect them. When we asked "How should I approach my performance review given everything we have discussed?", it treated the question as if it had no context, because its memory system had no mechanism for linking related events across conversations.

The most frustrating cases were the contradictions. We told ChatGPT in August that we preferred Python, then discussed our migration to Rust in October. When asked in November "What language should I use for this new project?", it confidently recommended Python, apparently having retained the earlier preference while missing the more recent context. There was no conflict detection, no temporal reasoning — just a flat retrieval of the "closest" memory.

3. What Is Actually Happening

To understand why AI assistants forget, you need to understand a fundamental truth about how they work: large language models have no inherent memory. None. Zero. GPT-4, Claude, Gemini — they are all stateless by default. Every time you send a message, the model processes it as if it has never seen you before. Any semblance of memory comes from external systems bolted onto the model, not from the model itself.

This is not a design flaw — it is a fundamental architectural characteristic. Language models are trained to predict the next token given a sequence of input tokens. They do not maintain internal state between invocations. When you have a "conversation" with ChatGPT, what actually happens is that your entire conversation history is sent to the model as input along with each new message. The model reads the whole conversation, generates a response, and then forgets everything. The conversation is maintained by the application layer, not the model.

This means that any memory capability an AI assistant has comes from a separate system that intercepts conversations, extracts information, stores it somewhere, and retrieves it when relevant. The quality of the AI's memory is entirely determined by the quality of this external memory system. And as our experiment showed, the memory systems currently deployed by major AI assistants are, to be diplomatic, rudimentary.

Let us look at the specific technical limitations that cause the failures we observed. There are three main problems: the stateless API architecture, the flat memory model, and the context window illusion. Each contributes to the overall memory failure in different ways.

4. The Stateless API Problem

The most fundamental problem is architectural. The APIs that power AI assistants are stateless — each request is independent of every other request. When you send a message to the ChatGPT API, the request contains your message and whatever context the application chooses to include. The API has no concept of "this user has sent 500 messages before" or "this conversation is related to that conversation."

This means that maintaining memory across conversations requires the application to explicitly store information from each conversation and explicitly include relevant stored information in each new request. If the application does not store a piece of information, it is gone forever. If the application stores it but does not include it in a subsequent request, it is as if the AI never knew it.

The stateless API design exists for good reasons — it makes the system scalable, predictable, and easy to reason about. But it places an enormous burden on the memory system to decide what to store, how to store it, and when to retrieve it. Most current implementations handle this burden inadequately.

In ChatGPT's case, the application uses an LLM to analyze each conversation and extract "memories" — short text snippets that capture key facts. These memories are stored in a database associated with the user's account. In each subsequent conversation, the application retrieves relevant memories and includes them in the system prompt. This sounds reasonable in principle, but the devil is in the details.

The extraction process is lossy. When the LLM analyzes a conversation to extract memories, it makes decisions about what is important and what is not — and these decisions are often wrong. A passing mention of a preference might be captured while a deeply discussed context is missed. The extraction is a one-time event with no opportunity for correction, refinement, or enrichment over time.

5. Flat Memory: The Key-Value Trap

The second major problem is the flat memory model. ChatGPT's memory system stores information as a flat list of key-value-style text snippets. "User is vegetarian." "User works in fintech." "User prefers dark mode." Each memory is a standalone statement with no relationship to other memories, no temporal context, no confidence score, and no provenance tracking.

This flat model fails in several predictable ways. First, it cannot represent relationships between memories. The fact that you became vegetarian for health reasons and are training for a marathon are stored as two unrelated snippets, even though they are deeply connected. When the AI needs to reason across these connected facts, it cannot, because the connection does not exist in the memory store.

Second, the flat model cannot handle temporal reasoning. All memories exist in an eternal present — there is no concept of when something was learned or how long ago an event occurred. "User prefers Python" from six months ago and "User is migrating to Rust" from last week have equal weight, because the memory system has no way to distinguish between a current preference and a stale one.

Third, there is no conflict detection. When you say something that contradicts a stored memory, the system has two choices: keep the old memory, or replace it. It cannot detect the conflict, evaluate the evidence, maintain a version history, or ask for clarification. In practice, both the old and new memories often coexist, leading to the contradictory recommendations we observed in our experiment.

Fourth, the flat model has no concept of memory types. A career background fact, a dietary preference, a past event, and a communication style preference are all stored the same way — as plain text snippets in a flat list. The system cannot prioritize background context over transient preferences, or distinguish between things the user said once in passing and things they have confirmed repeatedly.

The flat memory model is popular because it is simple to implement. Extract text, store text, search text. But this simplicity comes at the cost of memory quality. It is the equivalent of a filing system that puts every document in a single folder with no labels, no dates, and no organization — and then tries to find the right document by flipping through the stack.

Flat Memory vs. Typed MemoryFlat Key-ValueUser is vegetarianUser prefers PythonUser works in fintechUser likes dark modeMeeting about budgetUser switched to Rust6-Type ArchitectureBGWorks in fintechFactVegetarian (since Jan 2025)FactRust (was: Python, updated Oct)EventBudget meeting, Nov 12ReflPrefers minimal UISkillCode reviews: security first

6. Why Context Windows Are Not Memory

Some might argue that the expanding context windows of modern LLMs solve the memory problem. If the model can process 128K, 200K, or even 1M tokens in a single request, why not just include the entire conversation history? This argument is appealing but fundamentally flawed.

First, cost. Including a user's entire interaction history in every request would be astronomically expensive. At current API pricing, sending 100K tokens of conversation history with every message would cost roughly $0.10-0.30 per message. For a user who sends 50 messages per day, that is $5-15 per day, or $150-450 per month, just for the memory context. This is economically unsustainable for any consumer application.

Second, attention degradation. Language models do not process all tokens in the context equally. Research has shown that information in the middle of long contexts receives less attention than information at the beginning or end — a phenomenon known as the "lost in the middle" effect. Simply dumping a user's entire history into the context does not guarantee that the model will actually attend to the relevant parts.

Third, context windows are ephemeral. They exist for the duration of a single request and are discarded afterward. A context window is not memory — it is working memory, the AI equivalent of what you can hold in your head during a single conversation. True memory persists across conversations, across sessions, and across platforms. Context windows, no matter how large, cannot provide this persistence.

Fourth, context windows provide no structure. All information in the context window receives equal treatment by default. There is no mechanism for prioritizing recent information over old information, for marking some information as more reliable than other information, or for indicating relationships between different pieces of information. A well-designed memory system provides all of these capabilities.

The relationship between context windows and memory systems is complementary, not competitive. Context windows provide the working memory for a single interaction. Memory systems provide the long-term storage that makes context windows effective by ensuring that the right information is included in the context at the right time.

The Deeper Gap: No Computation, No External Enrichment

The problems described so far — stateless APIs, flat memory, and context window illusions — are failures of remembering. But ChatGPT's memory has two additional, less discussed gaps: it cannot compute over what it remembers, and it cannot enrich its memory from external sources.

Memory computation means the memory system actively reasons over stored knowledge. When you tell ChatGPT "I prefer Python" in March and "I have been migrating everything to Rust" in September, a computing memory would detect the conflict, compare the temporal signals, and resolve it — concluding that Rust is the current preference and Python is historical context. ChatGPT's flat memory does none of this. Both facts coexist without tension. There is no conflict detection, no temporal inference, no multi-hop reasoning that would connect your language migration to your changed debugging workflows or your updated library preferences. The memory stores; it does not think.

External data enrichment means the memory system can incorporate information from outside the conversation. Your AI assistant could, in principle, pull in your GitHub activity to understand your actual technology usage, ingest your calendar to know your availability patterns, or incorporate real-time documentation changes for tools you use daily. ChatGPT's memory is entirely conversationally bounded — it knows only what you explicitly tell it during chat sessions. It cannot reach out to external sources to validate, update, or enrich what it has stored. This means its model of you is always incomplete and always lagging behind your actual behavior and context.

A complete memory system has three pillars: remembering (persisting facts across sessions), computation (reasoning over those facts — detecting conflicts, inferring trends, synthesizing patterns), and external enrichment (actively pulling in outside data to grow the memory beyond conversational input). ChatGPT addresses the first pillar partially and the other two not at all. This is why even when it remembers a fact correctly, its responses often feel shallow — it has the data point but cannot reason about it or connect it to your broader context.

7. What Real Memory Looks Like

Now that we understand the problems, what does a real solution look like? A memory system that actually works needs to address all three of the failures we identified: the stateless architecture, the flat memory model, and the context window limitations.

First, it needs to store different types of information differently. Your career background should not be stored the same way as last Tuesday's conversation. Your dietary preferences should not be stored the same way as your communication style. Different types of information have different retrieval patterns, different update frequencies, and different relevance characteristics. A real memory system recognizes these differences and handles each type appropriately.

Second, it needs temporal awareness. Memories should have timestamps, and the system should understand that a preference stated yesterday is more likely to be current than one stated six months ago. It should be able to answer questions like "What did we discuss last week?" and "How have my preferences changed over time?" without relying solely on vector similarity.

Third, it needs conflict detection and resolution. When new information contradicts existing memories, the system should detect the conflict, evaluate the evidence (which is more recent? which was stated more explicitly? which has been confirmed more times?), and resolve it intelligently — not just keep both contradictory memories and hope the language model sorts it out.

Fourth, it needs relationship awareness. Memories are not isolated facts — they are connected in meaningful ways. Your dietary change, your health goals, and your marathon training are all related, and the memory system should maintain these relationships so that the AI can reason across connected information.

Fifth, it needs to be proactive. Rather than only retrieving memories when the user asks a question, the memory system should continuously update the AI's understanding of the user. When the user mentions a new project, the system should connect it to known background information. When a pattern emerges across multiple conversations, the system should generate a reflection that informs future interactions.

This is what MemoryLake's six-type memory architecture provides. Background memory for stable context, factual memory for explicit preferences and attributes, event memory for temporally ordered experiences, dialogue memory for conversational history and dynamics, reflection memory for meta-observations and patterns, and skill memory for learned procedures and user-specific workflows. Each type has its own storage format, indexing strategy, and retrieval mechanism, and a coordination layer manages interactions between types.

8. The 94.03% Difference

Numbers make the case more concretely than words. On the LoCoMo benchmark — the standard evaluation framework for long-conversation memory — MemoryLake achieves 94.03% accuracy. ChatGPT's memory system, when evaluated on the same benchmark, achieves approximately 55-65% accuracy depending on the specific test category.

The gap is largest on exactly the tasks where flat memory models fail: temporal reasoning (92% vs. ~45%), multi-hop queries (93% vs. ~50%), and adversarial consistency (91% vs. ~48%). These are not obscure edge cases — they are the bread and butter of everyday memory use. "What did we discuss last week?" is temporal reasoning. "Given my background and our recent discussions, what should I prioritize?" is multi-hop. "But I told you I switched to Rust" is adversarial consistency.

We ran our own experiment with MemoryLake using the same 50-preference protocol we used with ChatGPT. After four weeks, MemoryLake correctly recalled 47 of 50 stated preferences (94%). More importantly, it retained the context, relationships, and temporal information associated with each preference. When asked about the dietary change, it knew not just that the user was vegetarian, but when the change happened, why, and how it connected to health goals.

The three preferences it missed were cases where the user stated something in passing within a longer discussion and the extraction system assigned low confidence. In two of those cases, the information was partially captured in dialogue memory even though it was not promoted to factual memory — meaning it was available for context enrichment even if it would not surface in a direct query.

This is not a marginal improvement — it is a categorical one. The difference between 50% recall and 94% recall is not just "better performance." It is the difference between an AI that frustrates users by forgetting and an AI that earns trust by remembering. It is the difference between a goldfish therapist and a real one.

9. What You Can Do Today

If you are frustrated by your AI assistant's memory, there are several steps you can take right now to improve the situation, and one step that provides a more permanent solution.

First, be explicit and repetitive with your current AI. When you state a preference, state it clearly: "Remember that I am a vegetarian as of January 2025, for health reasons." Front-load important context at the beginning of each conversation. When you notice the AI has forgotten something, correct it directly. These workarounds are annoying but they improve the experience within the constraints of current systems.

Second, use your AI assistant's memory management tools if available. ChatGPT allows you to view and edit its stored memories. Review these regularly, delete incorrect entries, and manually add important context that the system missed. This is manual maintenance that should not be necessary, but until memory systems improve, it helps.

Third, consider using a dedicated memory layer. MemoryLake's Memory Passport integrates with ChatGPT, Claude, and other AI assistants through MCP (Model Context Protocol), providing six-type memory with conflict detection and temporal reasoning. This means your preferences, context, and history follow you across different AI platforms, maintained by a memory system that is designed to remember.

The gold fish therapist problem is not inevitable. It is a specific technical limitation of current AI memory architectures, and specific technical solutions exist. The question is not whether AI assistants will eventually remember us well — they will. The question is whether you want to wait for the major platforms to catch up, or whether you want reliable memory today.

Your AI assistant should know you. Not just the facts you have told it, but the context, the connections, the evolution of your preferences over time. It should know that your switch to vegetarianism, your marathon training, and your interest in meal prep are all connected. It should remember not just what you said, but when you said it, why you said it, and how it relates to everything else it knows about you. That is what memory is. And that is what we are building.

References

  1. Liu, N., et al. "Lost in the Middle: How Language Models Use Long Contexts." arXiv:2307.03172, 2023.
  2. OpenAI. "Memory and New Controls for ChatGPT." blog.openai.com, February 2024.
  3. Maharana, A., et al. "LoCoMo: A Long-Conversation Memory Benchmark for LLMs." arXiv, 2024.
  4. MemoryLake Technical Report. "Six Types of AI Memory: Architecture and Evaluation." memorylake.ai, 2025.

Related Articles