Skip to main content

Why does ChatGPT forget what I told it?

It is not forgetting. The model has no memory between replies, so every time you hit send the app resends the entire conversation and the model reads all of it at once. Your instruction from turn three is still sitting there at turn thirty. It is just one line now, competing with several thousand words of everything you have both said since, and the newest turns win.

That reframing matters, because it changes the fix. If the model were forgetting, the answer would be to repeat yourself more often and hope it sticks. It is not forgetting, so the answer is to stop spreading a single job across a conversation in the first place. Across the 455 prompts we publish, 0 depend on anything said earlier in the conversation. Every one is a single self contained message that restates its own situation, at a median of 174 words.

Is ChatGPT actually forgetting anything?

Two different things get called forgetting, and only one of them is real.

The real one is truncation. Every model has a finite context window, which is the amount of text it can take in for one reply. A long thread eventually exceeds it, and at that point something has to go. The oldest turns are dropped or compressed, and the product does that quietly, because there is no good moment to interrupt you with a notice about it. If your instruction was in a turn that got dropped, it is genuinely gone. This is uncommon in a normal conversation and near certain in a very long one, especially if you have been pasting documents in.

The common one is dilution, and it is not forgetting at all. Long before you hit any limit, the instruction you gave once has become a small fraction of the text the model is reading. Nothing deleted it. It now sits alongside forty later messages, several of which imply something slightly different, and the model is weighing all of them. What you experience as the model forgetting your rule is usually the model reconciling your rule with everything you said after it, and landing somewhere you did not intend.

There is a third thing worth separating out, because people mix it in here. ChatGPT has a saved memory feature, under Settings and Personalization, that carries facts between separate chats. That is a different system from the conversation you are in, it is visible and editable in that settings panel, and it is not what is happening when the model drops a rule you gave twenty messages ago in the same thread.

Why do instructions given once stop being followed?

Because an instruction is a claim about all future turns, and you only made it once, at a point in the conversation that is now far away.

We are labelling this section as reasoning rather than measurement, because that is what it is. Picture the thread as it arrives at the model: a single long document, read start to finish, with your rule on line 40 and your latest request on line 900. The model is not running a checklist. It is producing the most plausible continuation of the whole document. A rule stated once, nine hundred lines up, is evidence about what you want. So is every message since, and so is every answer it gave that you did not object to.

That last part is the mechanism people miss. Silence reads as approval. If the model drifts off your format at turn nine and you reply with a follow up question instead of a correction, the drifted answer is now in the conversation as an accepted example of what you want. Two or three of those and the drift is better supported by the transcript than your original instruction is. You are not fighting forgetfulness, you are being outvoted by your own thread.

The practical consequence: the rules that survive longest are the ones that get restated, and the cheapest place to restate them is not another message but the same message. That is what our library does, and it is countable.

What do 455 working prompts do about this?

They refuse to use the conversation as storage. Here is the whole library on that question.

Table 1. How the 455 prompts in the PrecisionPrompts library handle conversation state, measured 19 September 2026.
What was measuredAcross all 455 prompts
Prompts that depend on something said earlier in the chat0 of 455. No prompt begins mid conversation or refers back to a previous answer.
Prompts that deliberately set up a multi turn exchange1 of 455, and it states all of its rules in the opening message.
Prompts that open by restating who is asking or what the situation is151 of 455 open with a role or situation line before the request.
Labelled context fields inside the prompt body640 fields across 202 prompts, in the form Target customer: [...].
Bracketed input slots carrying the facts the job needs3,262 in total, 987 of them with an inline example.
Numbered deliverable lines, stated up front1,469 lines across 276 prompts.
Prompts carrying a prohibition that has to hold to the last word195 of 455.
Prompts carrying an explicit numeric limit186 of 455.
Median prompt length before you paste anything in174 words, 14 non blank lines. Quartiles 132 and 222, range 73 to 424.

Read the first row and the last row together. Every one of these prompts is trying to get a complicated thing done, several of them with nine numbered deliverables and a banned phrase list, and not one of them spends a turn on setup. The 174 word median is the price of that. It is what it costs to put the situation, the inputs, the deliverables and the constraints in the same message, where they cannot fall behind.

What does the one multi turn prompt do differently?

It front loads. Exactly one prompt in the library is designed to run for ten exchanges, and it is worth reading because of what it does in its first message. This is our Mock Interview prompt from the Job Seeker pack, verbatim:

I'm preparing for an interview:
Role: [JOB TITLE]
Company: [COMPANY NAME]
Industry: [INDUSTRY]
Interview type: [BEHAVIORAL / TECHNICAL / CULTURE FIT / CASE STUDY]

Act as a tough but fair interviewer for this exact role at this company.
Ask me 10 questions, one at a time. After I answer each question:
1. Rate my answer (Strong / Acceptable / Needs Work)
2. Tell me specifically what was good
3. Tell me what was missing or could be stronger
4. If "Needs Work", rewrite my answer to show what a great response
   would sound like

Start with question 1 now. Wait for my response before moving to
question 2.

The thread is ten turns long and the rules for all ten turns are in turn one. The grading scale, the four part response shape, the stopping rule, the count. Nothing is introduced later, because anything introduced later would arrive after the model had already established a pattern, and would then have to overturn it.

Compare that to the way the same job usually gets done by hand: ask for an interview question, answer it, then ask for feedback, then ask for the feedback to be harsher, then ask it to stay in character. By turn six the transcript contains four different specifications and the model is averaging them.

Should I start a new chat or keep using the same one?

Start a new one whenever the next thing you want is not a continuation of the last thing you got. The table below is judgment rather than measurement, drawn from how these prompts are built to be used.

Table 2. When a fresh chat beats continuing the current one.
SituationDo thisWhy
You are refining one artifact and the last answer was closeStayThe draft is the shared context. Starting over means pasting it back in anyway.
You are on a different task now, even a related oneNew chatThe old thread's specification is still being read and still counts as evidence about what you want.
You have corrected the same drift twice and it came backNew chatThe drifted answers are in the transcript. Two corrections against three drifted examples is a losing position.
You changed your mind about a rule you stated earlierNew chat, or restate hardThe superseded rule is still in the thread. It does not get deleted by being contradicted.
The thread is very long and you have pasted documents into itNew chatThis is where real truncation happens, and you will not be told which turn was dropped.
The answers have slowly got blander over many turnsNew chatLong threads accumulate hedged, agreeable answers, and each one is an example the next answer is written to match.
You want the model to use a fact from an earlier chatPaste it againA separate chat is not in context. Saved memory is a different feature and holds only what you can see in Settings.

The habit worth building is not shorter chats. It is noticing the moment when what you are about to send would work better as the first message of a new conversation than as the fortieth of this one.

How do I make an instruction stick?

Three moves, in order of how much they buy you.

Put the whole job in one message. This is the one the library actually demonstrates. The situation, the facts, the deliverables and the prohibitions travel together, so there is no gap for them to fall into. 202 of our prompts carry labelled context fields for exactly this reason, 640 of them, so the thing you would otherwise have explained in a preceding turn is a line inside the prompt instead.

Correct drift immediately, and correct it as a rule. When an answer comes back off format, the next message should fix it rather than move on. And it should restate the rule rather than name the mistake, because a rule applies to the next answer and a complaint only applies to the last one. That version dropped the word counts, keep every section between 80 and 120 words from here on beats you ignored my word counts.

Re-anchor before anything that matters. If you are deep in a thread and about to ask for the final version, send the specification again first. It costs one message and it puts your rules at the end of the transcript, where they compete with the least amount of text. This is the same reason our prompts close with their constraints rather than opening with them.

A prompt you can copy

This one is for the thread that has already drifted. Rather than starting over and losing the good parts, it makes the conversation produce its own specification, which you can then carry into a fresh chat where nothing is competing with it.

Stop working on the task for a moment. I want to pull the rules out of
this conversation before they get lost in it.

Read everything I have asked for in this thread, including corrections I
made to your earlier answers. Then do this and nothing else:

1. List every instruction I have given about the OUTPUT, as a numbered
   set of rules. Cover format, length, tone, what to include and what to
   leave out. Quote the message each rule came from.
2. List every fact I have given you about my situation, separately from
   the rules. These are inputs, not instructions.
3. Flag any two rules that conflict, including cases where I changed my
   mind and the earlier version is still in the thread. Say which one I
   most recently confirmed. Do not resolve the conflict yourself.
4. List the rules you followed in your first three answers but not in
   your most recent one. Be specific about which answer dropped which
   rule.
5. Write all of it as a single block I can paste as the opening message
   of a new chat, with the facts first and the rules last.

Do not invent a rule I never stated to make the list look complete. If I
only gave you four, give me four.

Step 4 is the one people leave out and the one that pays. It names the drift with evidence instead of leaving you to argue about whether the answers changed. Step 5 matters because the block it produces is ordered the way our own prompts are ordered: inputs first, constraints last, nothing relying on a previous turn.

How these numbers were measured

The figures are direct counts over the 455 prompts published in our 15 packs, taken on 19 September 2026 by parsing every fenced prompt body out of the pack files. Prompts per pack run from 28 to 35, all 455 parsed cleanly, and the bodies total 83,899 words across 6,642 non blank lines.

The zero is the number worth checking, so here is how it survived three passes. A narrow first pass looked for explicit back references, phrasings such as as I said, earlier you, your last answer, from our previous conversation, based on our conversation, and the response you just gave. It returned exactly 1 prompt, and reading it showed a false positive: the Post Interview Follow Up prompt asks for Topics we discussed: [KEY TOPICS], which is the user's real interview with a human, not a previous model turn. A second, deliberately wide pass matched any prompt line containing conversation, thread, chat history, memory, remember, previously, earlier or new chat. It caught 49 prompts, and all 49 were read. Every hit is about the subject matter rather than the chat: Twitter threads in the Content Creator pack, discovery call conversations in the Freelancer pack, jogging a client's memory in a testimonial request. A third pass looked for references to the model's own earlier output, phrases such as rewrite it, revise that, the draft you wrote and try again. It found 4, and all 4 turned out to refer to text the user pastes into the same message, such as the Product Page Tear Down which says I'll paste my current product page copy below.

The other counts are mechanical. Input slots were counted as bracketed placeholders, and a slot counts as exampled when it contains e.g. inside the brackets. Labelled context fields were counted as lines matching a capitalised label followed by a colon and a bracketed slot. Numbered deliverable lines were counted as lines beginning with a digit and a period. Word counts are whitespace separated tokens of the prompt body only, excluding the worked example that ships underneath each prompt.

The limit is the usual one and it is real. This is a census of prompts we believe work, not a controlled test of the same request sent as one message against the same request spread over six. We did not run that test and nothing above should be read as though we did. The truncation and dilution mechanisms in the second and third sections are explanation, labelled as such where they appear. The one place we have run a controlled comparison on a prompt phrasing, with the markers fixed before either output existed, is the persona test in does telling ChatGPT to act as an expert actually work.

Questions people ask about ChatGPT forgetting things

Usually it has not forgotten. The model keeps no memory between replies, so the app resends the whole conversation every time and the model reads all of it at once. Your instruction from turn three is still there at turn thirty, but it is now one line against several thousand words of everything said since, including answers that drifted and that you did not object to. Two things do cause genuine loss: a thread long enough to exceed the context window, where the oldest turns get dropped without telling you, and a fact you gave in a different chat, which was never in this one at all. The fix that works in every case is to put the whole job in a single self contained message, which is how all 455 prompts we publish are written.

Only through the saved memory feature, which is separate from the conversation you are in and is visible under Settings and Personalization. Anything stored there carries between chats, and you can read and delete the entries yourself. Everything else is per chat: a fact you gave in one conversation is not available in the next one unless you paste it again. This is worth checking when the model seems to know something you did not tell it in this thread, because the answer is usually an entry in that panel rather than anything mysterious.

Because the first answer that broke the format is now in the conversation as an example of an acceptable answer. If you did not correct it, you accepted it as far as the transcript is concerned, and the next answer is written to be consistent with everything above it. Two or three unchallenged drifts and the drifted shape has more support in the thread than your original instruction. Correct the first one immediately, and phrase the correction as a rule for future answers rather than a complaint about the last one, because a rule applies forward and a complaint applies backward.

Stay in the same chat while you are refining one artifact and the last answer was close, because the draft is the shared context and starting over means pasting it back anyway. Start a new chat when the task changes, when you have corrected the same drift twice and it returned, when you have changed your mind about a rule you stated earlier, or when the thread is very long and has had documents pasted into it. The test is simple: if what you are about to send would work better as the first message of a new conversation than as the fortieth message of this one, send it as the first message of a new conversation.

There is a hard limit, called the context window, and it varies by model and by plan, so any specific number quoted on a blog is likely to be wrong by the time you read it. The practical answer is that you will feel dilution long before you hit truncation. Instructions start losing ground to the rest of the thread after a handful of turns, while actual dropping of old messages needs a genuinely long conversation, usually one where you have pasted documents in. Do not try to estimate your remaining budget. Notice instead when the answers stop matching what you asked for, and treat that as the signal to re-anchor or start fresh.

Make the conversation write the summary for you, then reuse it. Ask it to list every instruction you have given about the output as a numbered set of rules, quoting the message each rule came from, and to list the facts about your situation separately. Ask it to flag any two rules that conflict, and to name the rules it followed in its first answers but dropped in its most recent one. That last step is what turns a vague sense of drift into something specific. The block it produces is the thing to paste into a new chat, with the facts first and the rules last.

One message, for a single job. All 455 prompts in our library are written that way, at a median of 174 words and 14 non blank lines, and 0 of them rely on anything established in an earlier turn. The reason is not that long messages are better in themselves. It is that a specification split across six messages is competing with five answers that were generated before it was finished, while a specification that arrives whole is read in one piece with nothing in between. Several short messages are the right shape when you are genuinely iterating on something that already exists, which is a different activity from setting up a job.

Related reading and next steps: the direct version of the fix on this page is measured in should I ask ChatGPT one thing at a time, which counts how many of our prompts are written as a single request. For how much prompt that justifies, how long should a ChatGPT prompt be measures every prompt in the library. If the thing being dropped is the shape of the answer, how to get ChatGPT to follow the format you asked for is the specific fix, and for rules that keep getting ignored, how to tell ChatGPT what not to do counts every prohibition in the library. For the facts that have to be in the message before any of this matters, see what information should I give ChatGPT, and for whether one of those facts should be a sample, should I give ChatGPT an example of what I want. If the answers are bland rather than off spec, that is measured in why ChatGPT gives generic answers. To start from prompts that already carry their whole specification, browse the prompt packs or read the how to use guide.