TL;DR: ChatGPT repeats itself because your own earlier text keeps getting fed back to it as input, and the model treats repetition as the likeliest next thing to say. Four causes look identical on screen: a sampling loop inside one answer, echo across turns, question-restating habit, and boilerplate injected by Custom Instructions or memory. Each has a different fix.
Why does ChatGPT repeat itself?
The mechanical answer is short. A language model picks each next token by looking at everything already in its context, and everything already in its context includes the words it just produced. Repetition raises the probability of more repetition. Left alone, that is a loop.
The practical answer is longer, because four different things produce the same symptom and only one of them is really about sampling. If you apply the wrong fix you will conclude that nothing works.
| What you see | Actual cause | Where it lives | The fix |
|---|---|---|---|
| The same sentence or paragraph repeats inside one answer | Degenerate sampling loop | The decoder, mid-generation | Regenerate; shorten the output; if you have API access, raise the penalties |
| Every turn returns roughly the same content | Prompt echo and context saturation | The transcript being re-sent as input | Restate scope explicitly, or start a fresh chat |
| It summarises your question before answering | Instruction-tuning format habit | The model's learned response shape | A direct instruction to lead with the answer |
| Every answer opens with the same stock lines | Custom Instructions or saved memory | Your account settings, re-injected each turn | Edit or disable the source; check the sources panel |
Work down that table in order and you will identify yours in about a minute. The rest of this post takes each row properly.
Why does ChatGPT repeat the same paragraph inside one answer?
This is the classic failure and the oldest one. It is called neural text degeneration, and it was characterised precisely in the paper that gave us nucleus sampling.
Holtzman et al., The Curious Case of Neural Text Degeneration (ICLR 2020), put the mechanism plainly:
"The probability of a repeated phrase increases with each repetition, creating a positive feedback loop. We found this effect to hold for the vast majority of phrases we tested, regardless of phrase length or if the phrases were sampled randomly rather than taken from human text."
That is the whole thing. Once a phrase appears twice, the model's estimate that it should appear a third time goes up. The paper's other finding is the one people forget: this is worse at low temperature, not high. The authors note that when top-k sampling is combined with a temperature of 0.7, "the output devolves into repetition, exhibiting the classic issues of low-temperature decoding."
So the intuition that repetitive output means "too random, turn the temperature down" is backwards. Turning it down is how you get there. If you want the parameter detail, we covered the full mechanics in Temperature, Top-P, Top-K: AI Sampling Parameters Explained.
The practical response in ChatGPT is unglamorous. Regenerate. If it loops again, cut the requested output length, split the list into two requests, and ask for a specific count rather than "all of them". Bounded requests loop far less than unbounded ones.
Why does ChatGPT say the same thing every turn?
This is the one most people actually have, and it is not a sampling failure at all. It is the architecture working as designed.
OpenAI's own conversation-state guide states it directly: "While each text generation request is independent and stateless, you can still implement multi-turn conversations by providing additional messages as parameters to your text generation request."
Independent and stateless. The model does not remember your last turn. The interface re-sends the entire transcript every time, and the model reads it fresh. Its own previous answer is now indistinguishable, as input, from something you wrote. So on turn nine it is looking at eight prior answers full of a particular structure, a particular opening move, a particular closing paragraph, and it does the statistically obvious thing.
The guide is blunt about the cost, too: "Even when using previous_response_id, all previous input tokens for responses in the chain are billed as input tokens in the API." The whole history really is going back in.
There is recent work on the sharper version of this. A January 2026 paper describes what it calls Circular Reasoning in large reasoning models: "a self-reinforcing trap where generated content acts as a logical premise for its own recurrence, compelling the reiteration of preceding text." The model's earlier output becomes the justification for repeating it.
Two things follow, and they are the two fixes that actually work.
Restate scope every time you narrow it. Do not say "now shorter". The nine turns of long output are still in context and outweigh two words. Say what the new constraint is, in full, as if the earlier turns had not happened.
Ignore the structure of your previous answers in this thread.
New constraints, which override anything earlier:
- 120 words maximum
- No preamble, no summary of my request, no closing offer to help
- Do not reuse any sentence opening you have already used in this conversation
- Lead with the single most load-bearing fact
Question: [your question]
Or start a fresh chat. This is the higher-leverage move and people resist it because it feels like losing work. Carry the material forward by pasting it, not by referring to it. A new chat with three paragraphs of pasted context beats a forty-turn chat every time, because the forty-turn chat contains thirty-nine examples of the pattern you are trying to escape.
Why does ChatGPT restate my question before answering?
Because it was trained to. A short restatement makes an answer feel grounded and reduces the chance of answering the wrong question, so instruction tuning reinforces it. It is a format habit, not a setting, and OpenAI does not publish a toggle that turns it off.
It responds well to being told. The instruction has to be specific about what you are banning, though, because "be concise" does not touch it.
Answer format rules for this entire conversation:
1. First sentence = the answer. Not a restatement, not an acknowledgement,
not "Great question", not "You're asking about X".
2. Never begin with "Sure", "Certainly", "Absolutely", "I'd be happy to",
"Let's dive in", or any variant.
3. Never end with an offer to elaborate, expand, or help further.
4. If you need to clarify scope, ask the clarifying question INSTEAD of
answering. Do not do both.
Put that in a system prompt if you are on the API. In ChatGPT, put it in Custom Instructions so you stop retyping it. If you want the difference between those two placements, ChatGPT System Prompt vs User Prompt Explained covers where each one actually lands, and System, Developer and User Roles: Who Wins? covers what happens when they conflict.
Why does every ChatGPT answer open with the same boilerplate?
If the repetition is identical across completely unrelated chats, it is not the conversation. It is something attached to your account being re-injected on every request.
Two candidates, and OpenAI documents both.
Custom Instructions. The Help Center states: "Your custom instructions are applied immediately to all chats." They live at Settings, then Personalization on web and desktop, or Settings, then Customize ChatGPT on iOS and Android. There is an "Enable customization" toggle you can switch off without deleting the text. Free and Go accounts can save up to 1,500 characters; Plus, Pro, Enterprise, Business and Education accounts can save up to 5,000. (Verified on OpenAI's Help Center, August 26, 2026.)
That character limit matters more than it looks. A 5,000-character instruction block is a large fixed prefix on every single request. If it contains a tone directive and a structure directive and a list of things to always include, you have asked for boilerplate and you are getting boilerplate.
Memory. OpenAI's memory FAQ: "Like custom instructions, saved memories are part of the context ChatGPT uses to generate a response. Unless you delete them, saved memories are always considered in future responses."
To exclude saved memory for one session without deleting anything, OpenAI's documented route is Temporary Chat.
Can I just turn up the frequency penalty?
Almost certainly not, and this is where most advice on this topic quietly falls apart.
frequency_penalty and presence_penalty are the two parameters built for exactly this problem. OpenAI's spec describes frequency penalty as decreasing "the model's likelihood to repeat the same line verbatim", and presence penalty as "increasing the model's likelihood to talk about new topics". Both range from -2.0 to 2.0 and default to 0.
Here is where they exist, as of today.
| Parameter | OpenAI Chat Completions | OpenAI Responses | Anthropic Messages |
|---|---|---|---|
frequency_penalty | Yes, -2.0 to 2.0, default 0 | Not in the schema | Never existed |
presence_penalty | Yes, -2.0 to 2.0, default 0 | Not in the schema | Never existed |
logit_bias | Yes | Not in the schema | Never existed |
seed | Yes | Not in the schema | Never existed |
temperature | Yes | Yes | Deprecated on models after Opus 4.6 |
top_p | Yes | Yes | Deprecated on models after Opus 4.6 |
top_k | Not offered | Not offered | Deprecated on models after Opus 4.6 |
Sources and dates: the OpenAI columns are from the openai-openapi spec, version 2.3.0, main branch, parsed August 26, 2026, and confirmed against the rendered API reference on developers.openai.com the same day. The Responses create reference page runs to roughly 32,000 words and contains zero occurrences of either penalty. The Anthropic column is from the Messages API reference on platform.claude.com, same date.
Three consequences worth stating plainly.
On OpenAI, the penalties are Chat Completions only. Migrating to the Responses API means giving them up, along with logit_bias, seed, stop and n. An open request in openai-python asks for the parameters to be added to the Responses client; it was filed March 30, 2026 and was still open when we checked. If your anti-repetition strategy depends on frequency_penalty, that is a real migration constraint and not a detail.
On Anthropic, sampling control is going away entirely. The Messages API reference now marks all three parameters deprecated, in these words:
"Deprecated. Models released after Claude Opus 4.6 do not support setting temperature. A value of 1.0 of will be accepted for backwards compatibility, all other values will be rejected with a 400 error."
top_p behaves the same way, accepting values at or above 0.99 and rejecting the rest. top_k is stricter still: "Models released after Claude Opus 4.6 do not accept top_k; any value will be rejected with a 400 error." Anthropic never shipped frequency or presence penalties at all, so on recent Claude models there is no sampling lever left to pull. Repetition there is a prompting problem by construction.
In the ChatGPT app, none of this is reachable. OpenAI documents these parameters in the API reference and nowhere else. ChatGPT's Personalization settings expose Custom Instructions, memory and personality options, and no sampling control. A request to add temperature and top_p sliders to Custom GPTs has sat open in OpenAI's Python SDK discussions since October 29, 2025 with no maintainer reply.
If you do have API access and you are on Chat Completions, the fix is one line:
from openai import OpenAI
client = OpenAI()
resp = client.chat.completions.create(
model="gpt-5.5",
messages=[
{"role": "system", "content": "Never reuse a sentence opening."},
{"role": "user", "content": "List 40 names for a coffee subscription."},
],
frequency_penalty=0.6, # verbatim repeats
presence_penalty=0.3, # topic drift toward new ground
)
Start at 0.5 to 0.7 for frequency penalty. Above about 1.0 the model starts avoiding words it genuinely needs, and technical writing degrades fast because domain terms are repetitive by nature. The parameters are defined at the endpoint level rather than per model, so individual models can still reject them; if one does, you get a 400 immediately rather than silently degraded output. Full per-provider detail lives in The LLM Parameter Cheat Sheet (Every Provider, One Page).
For everyone else, and that is most people reading this, the fix is prompt-level. Which is fine, because prompt-level fixes work on the cause most people actually have.
What actually stops ChatGPT repeating itself
Ranked by how much they help, in a normal ChatGPT window with no API access.
1. Start a new chat. The single highest-leverage move for cross-turn repetition, and the one people skip. You are removing the examples the model is copying.
2. Ban the specific phrase, not repetition in general. "Stop repeating yourself" is too abstract to act on. Name it: "Never use the phrase 'it's important to note'. Never open a paragraph with 'Additionally'. You have used 'robust' four times; use it zero more times." Concrete bans get obeyed.
3. Ask for a rewrite, not a continuation. "Try again, shorter" keeps the previous attempt in context as an example. "Here is the text. Rewrite it from scratch under these constraints" gives the model a target instead of a template.
4. Audit your own instructions. Paste your Custom Instructions into a fresh chat and ask what fixed structure they imply.
Here is my ChatGPT Custom Instructions block:
"""
[paste yours]
"""
Tell me:
1. Which lines force a fixed opening, closing, or section structure
into every answer.
2. Which lines are redundant with each other.
3. A rewrite under 800 characters that keeps the intent and removes
everything that would make separate answers look alike.
Do not add anything I did not ask for.
5. Give the model somewhere else to go. Repetition often means the prompt ran out of instructions before the model ran out of output. A prompt with a role, a task, a format and explicit constraints leaves less room to circle. If you are asking for 400 words with 15 words of instruction, you are asking it to improvise 385 words, and improvisation defaults to the pattern already on screen. Why Your ChatGPT Answers Are Bad goes through the underspecification problem in more depth.
When repetition is telling you something else
Sometimes the model is not malfunctioning. It is repeating because you asked a question it has already fully answered, and there is nothing further in the context to draw on.
Three tells for this case. The repeated answer is actually correct. Rephrasing the question produces the same content in different words. And a fresh chat with the same question produces the same answer.
That combination means the repetition is the honest response and your prompt needs new inputs, not new phrasing. Add a constraint, a counterexample, a document, an audience, or a decision you need to make. Repetition ends when the question changes.
The failure mode to avoid is the loop where you rephrase eleven times and each attempt adds another near-identical answer to the context, which makes the twelfth attempt more likely to match the pattern, not less. Two attempts, then change the input or change the chat.
Stop rewriting prompts. Start shipping.
Works with ChatGPT, Claude, Gemini, Grok, Midjourney, Ideogram, Veo3 & Kling. 5.0★ on the Chrome Web Store.
Create An Account