I gave a talk at AI Engineer about the year I spent trying to reverse-engineer how ChatGPT, Claude, Gemini, and Poke actually implement memory.
It covers how these systems evolved from 2023 to today, and then the part I care about more: what that evolution tells us about building memory, and the one problem I think nobody is solving yet.
The talk runs about 20 minutes. Below is an annotated version — every slide, placed where it actually changed in the talk, with what I said alongside it, lightly edited for reading. Click any slide to open it full screen and arrow through the deck. You can also flip through it on its own.
Memory means personalization
Hi everyone. I'm Shlok, and I've spent the past year studying different memory systems.
Before I get started — one thing I've realized talking to people over the last two days is that memory has become a very overloaded term now. It can mean a lot of different things. So when I talk about memory today, it's going to be in the context of personalization, especially for consumer AI applications.
A little bit about me. My claim to fame — the reason I get to speak to you here — is that I've spent the past year trying to reverse-engineer how products like ChatGPT, Claude, Gemini, and Poke implement their memory systems. And I've since worked with multiple teams across different domains, helping them design their memory.
I'm going to break the talk down into two parts. First, we're going to look at how memory has evolved over the past three years, especially in the context of ChatGPT and Claude. And then in part two, I'm going to discuss some of the lessons I've learned — maybe a rant — and where I think all of this is going.
April 2023: no memory at all
To kick things off, we go back to ancient times, which in our industry is 2023. This is ChatGPT just after the launch of GPT-4. You could have back-and-forth conversations within a single thread, and
context was maintained inside that thread — but as soon as you started a new conversation, nothing was carried over.
Now, for early adopters this wasn't a problem. GPT-4 was such an amazing model that if we ever had the need to carry context, we would do so by hand. But as ChatGPT started becoming more popular, as regular people started using it for things like learning, cooking, as a companion, the need for some sort of memory system became really apparent.
February 2024: saved memories
So in February of 2024, we got ChatGPT memory v1.
And what you could do is ask ChatGPT to remember things about you. So you could say things like, "Hey,
remember that I'm vegetarian." ChatGPT would extract what it thought was a fact — that the user is vegetarian — store it in a list of memories, and this list was then added to the context window for every single conversation.
You could also then go into settings and view this list of memories. And if you thought that something didn't apply anymore, you could delete a memory.
As the first serious memory implementation within our industry, I think this was a really decent effort. But there were also some fundamental flaws with it.
The biggest one was that as a user, because you could see every time a memory was created, it felt like you were responsible for creating memories while you were just trying to have a conversation. So the burden of memory management fell to the user.
Also, if you notice this list of memories, these held true at the time they were created — but that doesn't necessarily hold true over time. For example, it says that Shlok is going to Bengaluru. I'm in SF right now. I am not going to Bengaluru. But this memory is still added to my context window today. So staleness was another huge problem with this version of ChatGPT's memory.
April 2025: the running profile
A little more than a year later, in April of 2025, ChatGPT released v2 of its memory. And this was a little more sophisticated.
The most important addition was this thing called user knowledge memories. I'm just going to call it a running profile for the rest of this talk.
What a running profile really is: every few days, ChatGPT looks at all the conversations you've had with it, extracts anything it thinks is important for it to know about you, and updates the profile it maintains on you. This updating process is what a bunch of folks now call dreaming — Lance Martin gave a great talk on it at this same conference. So every few days ChatGPT looks at your new conversations, updates your profile, and then this updated profile is added to the context window for every single new conversation.
These are two excerpts from my running profile. I want you to notice a few things.
First, these are extremely dense memories. ChatGPT tries to pack in as much context as it can within every single memory. What's essentially happening is that they're putting in keywords, almost like clues — and because LLMs, especially the frontier models today, are so good at inferring context from limited information, when you're having a conversation it connects these clues to what you're talking about.
Also, these are just two of 16 different sections in my profile. Other sections include my personal life, things I'm working on. In total, my profile is almost 4,000 tokens long.
And because these updates are happening asynchronously, in the background, this new version does away with the flaw we discussed in v1 — the burden of memory management was taken away from the user.
But I want you to notice the highlighted memory. This is about places I traveled to in 2025. If you pay attention, it says Thailand and Turkey, but the dates are overlapping. That's because the source of this memory was conversations I was having with ChatGPT deciding between where to go among these two places. I did end up going to Thailand. I've never been to Turkey — but ChatGPT still says that I've been to Turkey in 2025. So the staleness problem with v2 didn't completely go away.
Another very important thing is that if you go to your settings, ChatGPT doesn't let you view this raw profile. You could view your memories from v1; your raw profile is not visible to you.
Now, you may ask — Shlok, how did you see your profile, then? That's because this prompt works really well if you want to jailbreak ChatGPT and view your raw profile. You might have to attempt a few times, try different thinking modes. But prod enough and you shall receive.
August 2025: Claude bets on retrieval
August of 2025: Claude released its first version of memory. This surprised
me a bit, because if you compare ChatGPT and Claude, they are very similar applications, right? You have a chat box, you have back-and-forth conversations, you have a list of previous conversations, you can start a new conversation. My assumption going into studying Claude was that the memory systems would also be similarly designed.
Not the case — at least not for v1. So in v1
of Claude, you had no user profile. You had no list of facts. Instead, the model was given two tools. It was given a tool to search over previous conversations by keyword or topic, and another to search over conversations by time period — so queries like "what did we discuss last week?" or "what did we discuss at the start of November of 2025?"
So in v1, every single conversation starts fresh with no context on the user, and when the model thinks that it needs to retrieve something, it can do so on demand.
On September 11 of last year, I
released a blog post saying Claude's memory architecture is the opposite of ChatGPT's. This hit the Hacker News front page.
Finally, on that very day, Claude released v2 of its memory
and they added a running profile
similar to ChatGPT, but with a few
differences.
First, Claude made this profile visible to users. You could go to settings and view your raw profile. Second, this profile was 1,000 tokens, so it was much smaller than ChatGPT's 4,000 tokens. And if you notice, these are complete sentences, rather than the dense keyword approach of ChatGPT. So less dense, and smaller.
Claude's profile updates every 24 hours; for ChatGPT it's every few days. Claude also let the user make explicit edits to this profile — you could request an edit, and that edit would lead to a resynthesis of the profile. It gave you an interface to manage previous edits, and you could delete the things that no longer held true.
And this is how Claude's memory works even today. It hasn't changed since September of last year.
2026: ChatGPT converges
We have seen two updates within ChatGPT's
memory this year, though. The first was that it added a tool to look
over past conversations, like we just saw with Claude — so the model can retrieve summarized context based on queries it makes.
And then a month ago, the start of June,
ChatGPT finally made the user profile visible to them. Somewhat. What you can see is an LLM-generated summary of your profile, which is weird, because your profile is already an LLM-generated summary of your conversations. It's all a bit confusing — I've written about it — but it is visible in some sense.
You could also request explicit edits to your profile. And with this update, ChatGPT deprecated v1, the fact list, from its memory system.
So what we've seen here is a convergence. After three years of each of these products evolving independently, they both now have a running profile, this profile is visible and editable — again, somewhat — and the model has tools to look over past conversations.
There is no single way to do memory
Okay. So what can we learn from this evolution, and where are things going?
I think the biggest lesson for me is that there is no single way to do memory.
It wasn't too long ago that everyone, including me, assumed that RAG was the way to go about memory — where you would take conversations, chunk them, create embeddings, put them in a vector store, and then as user queries came in, do some sort of semantic search.
But as we saw, neither ChatGPT nor Claude really does this. Instead they both evolved independently using different approaches. And while the general architectures have converged, the specific implementation details are still very different.
And then if you look at Gemini, it also has a running profile — but each memory comes with detailed timing logs. When was it created, when was it last updated?
And if you look at agents like Claude Code, OpenClaw, Hermes, they have completely different memory systems, right? With markdown files, heartbeats, knowledge bases, skills. The point being that there is no one way
to do memory.
The implication of this is that memory cannot be outsourced. If you're a serious team, you do not outsource memory. It is something that you build alongside your product. Your memory system evolves with your product, and it cannot be thought of as an afterthought.
And there is plenty of evidence for
this. If you look at all of the top consumer products today across different categories, each of these has some form of memory. Yet none of them outsource it. All of them build memory in-house.
Memory is a function of compute
Lesson two: memory is a function of compute. What does that mean? Let's look
at the costs associated with a running profile.
There are two types of costs. There is a cost to maintain a profile — that depends on how frequently you update it, and how much compute you apply to each update. And then, because these profiles are part of the context window for every single conversation, there's a cost of serving: the longer the profile, the more it costs to serve.
Now, a thought experiment. If you were to design the ideal memory system with no restraints, what would you do?
You might want to update your profile every hour, or maybe after every conversation. You might want to task Fable with a bunch of Opus sub-agents for the update itself. And why stop at 4,000 tokens? Why not make it 400,000 tokens — store every single thing you would want about the user?
Unfortunately, we live in a GPU-
constrained world, and trade-offs have to be made. You can see that happening here.
For ChatGPT, the profile length is 4,000 tokens and it updates every few days — so they have a higher serving cost for a lower update cost. For Claude it's a thousand tokens, updating every 24 hours. So they make the exact opposite trade-off.
And this is what I mean by memory being a function of compute. You have to really think about how much compute you want to put into memory.
Continual learning is already here
Third: we had a bunch of talks about continual learning today. I'm not an expert here, but what I would say is that continual learning is already here.
Going back to running profiles — what exactly is happening here? Your running profile starts with something that the model knows about you. This is then applied to every single conversation. Each of these conversations brings in new information. This new information is then synthesized, through the dreaming process, back into the profile. And then this profile dictates the next conversations. This loop keeps repeating itself, again and again and again.
What you have is a continual learning process. Now obviously, this learning loop is happening outside the weights —
and a big question, particularly for consumer AI, is will this process ever make its way into the weights?
Obviously, updating weights and training models is an expensive process. Continual learning does make sense at an enterprise level, because the costs of these models are amortized across different employees, different customers. But that's not the case at an individual level.
So there are big open questions that I don't yet know the answers to. Will each of us get our own self-learning model? What data do we need to kick that process off, and how do we generate it? And finally, who's going to pay for this — how do the economics work?
Gwern recently wrote an essay called Guardian Angels where he explores this topic in beautiful detail. If you're interested in what the future for one model per person looks like, I would recommend reading this.
We have a context problem
Finally, my rant: we have a massive context problem.
You could have the best memory architecture in the world. You could pour infinite amounts of compute into it. You could have continual learning working at an individual level, where every single data point you bring up is somehow perfectly integrated into the model weights.
Yet your memory system is capped by how much context it can gather about you.
Let's go back to the example we discussed earlier — the conflict between where I traveled to in the summer of 2025. These are the two source conversations. Again, I was trying to use ChatGPT to decide between which of these two countries to go to.
Now, the decision to go to Thailand was actually made in a conversation I had with my partner, in person, and ChatGPT couldn't reason over this, couldn't listen to this. But there were also traces of this conversation in my emails, because I had flight and hotel bookings for Thailand. Even though ChatGPT is connected to my email, it doesn't reason over my email and it doesn't update my profile from my email, so it couldn't resolve this conflict.
And I think that's okay. It's
understandable. But what really bothers me is that ChatGPT today doesn't realize that there is a conflict. It's not curious about trying to fill in gaps in the information it knows about me.
And this is particularly interesting, and also infuriating, because it's not a technology problem. It's a product problem. There is no fundamental reason at an LLM level that these things can't be solved. It's just that products today are not designed to help us with this.
So my personal stack today is a bunch of chatbots, assistants, vertical-specific applications, agents, and even hardware devices. Each of these products is trying to build its own memory of me. None of these memories are shared with each other. So I have to rebuild context within every single product from scratch. And every time something in my life changes, I have to individually update all of them.
And then I have a bunch of very rich existing context sources, right? My email, calendar, photos. None of these products are able to reason over my existing, very rich context sources.
So for me, none of this feels like 2026. And what I keep asking myself every day is: when will personal AI feel like personal AI?
It's still early
All of that frustration aside, I still think we're very early.
Memory for AI is just a three-year-old field. Memory is also foundational to how humans interact with AI. And because I hope to be talking to AIs all my life — and I know that's going to be the case for every single one of us here today — memory is something that's going to be important for the rest of human history.
And there's so much left to build.
That's it from me. Thank you so much.
If you want the longer written versions of the research behind this talk, start with Claude's memory architecture, ChatGPT's, and Gemini's. The deck is here.