Explore our AI courses, practical training for non-technical teamsExplore courses Explore AI courses
Prompts & How-ToAI LiteracyGetting Better Answers

What Is Context Rot, and Why Your AI Answers Get Worse the Longer You Chat

Nothing announces it. The answers just get slightly less right, in a tone that sounds exactly as confident as the good ones did.

TLDR: Context rot is the quiet drop in accuracy that happens as an AI conversation gets longer, and it starts well before you hit any limit. The cause isn’t that the model forgets. It’s that everything already in the thread, including versions you abandoned and questions you moved past, sits alongside the thing you’re asking about now and competes with it. The fix isn’t shorter chats. It’s deciding what carries forward and leaving the rest behind.
18Models tested in the Chroma technical report that gave this effect its name, including Claude 4, GPT-4.1 and Gemini 2.5. All of them degraded as input grew, on tasks as simple as copying text back
113kTokens in the long version of a test prompt, versus about 300 in the focused version. Same question, same answer present in both. Every model tested did worse on the long one
1Distractors needed to measurably reduce accuracy. One near-miss sentence sitting in the context is enough, and four compound it

Share this article

The Short Version

You’ve probably had a long AI conversation that started sharp and ended vague, without anything obvious going wrong. That’s context rot: performance degrading as input grows, even on tasks the model handles perfectly at shorter lengths. It’s a different problem from filling up the context window, which is a hard limit with an error message. Rot has no error message. This piece covers what’s actually happening, the four signs it has started, and a specific way to carry work into a new conversation without losing the useful parts of the old one.

What context rot actually is, in plain English

Picture a contracts manager three hours into one conversation about a supplier agreement. She’s uploaded the current draft and the previous one, worked through the indemnity language, changed her mind twice about the liability cap, and asked for a plain-English summary of the termination clause a few messages back.

She asks for that summary again, tidied up for a colleague. What comes back says the notice period is 60 days. The current draft says 30. The old draft said 60.

Both numbers were in the conversation. Nothing was hallucinated, exactly. The model picked the wrong one, and the answer arrived with the same steady, competent tone as everything else in the thread. That’s the part that makes this dangerous: there is no signal. A degraded answer looks exactly like a good answer.

Context rot is the name for that: output quality dropping as the amount of text in the conversation grows, on tasks the same model handles reliably when the input is short. The term comes from a technical write-up published by Chroma in July 2025, which tested 18 models across four deliberately trivial tasks and reports the same pattern across all of them.[1]

The Context Rot Rule

A long thread isn’t memory. It’s competition.

The word “rot” is doing some work here and it’s slightly misleading, so it’s worth being precise. Nothing decays over time. A conversation left open for a week is no worse than one you finish in an hour. What matters is how much text is in it, and how much of that text looks a bit like the thing you’re asking about.

One distinction to get straight before anything else, because these two problems get run together constantly and they need opposite responses.

  • Running out of context window is a hard limit. You hit a ceiling, and the tool tells you: it truncates, warns you, or refuses. Loud, visible, and generally handled for you.
  • Context rot happens long before that ceiling. No warning, no message, no truncation. The answers just get less reliable while looking identical.

So a model advertising a million tokens of context is telling you what it can hold, not how well it reasons across all of it. Those are separate claims, and only the first one is a specification.

Why a bigger context window does not mean the model reasons equally well across all of it

The intuition most people carry is that a model reads its context the way you’d read a folder: everything’s in there, so everything’s equally available. The 10,000th word should be as usable as the 100th.

It isn’t, and the clearest demonstration in the Chroma work is almost comically simple. Take a question the model can answer perfectly when you give it just the relevant few hundred words. Now give it the same question with the same answer still present, but buried in about 113,000 tokens of surrounding conversation. Every model family tested did worse on the second version.[1]

The information was never missing. What changed was how much work it took to find it.

That’s the mechanism, and it’s more useful than “the model forgets.” In a short exchange, the model does one job: answer. In a long one, it does three, all at once, in a single pass.

What a long thread asks the model to do at the same time

1FindWork out which parts of everything you’ve said are relevant to this question
2FilterRule out the parts that look relevant but aren’t, including things you abandoned
3AnswerDo the actual reasoning you asked for, on whatever survived the first two steps

Short prompts require step three only. Long threads require all three in a single pass, and steps one and two get harder as the thread grows. Described from the mechanism set out in the Chroma report.

Step two is where most of the damage happens, and it’s the one nobody plans for. The report separates two kinds of extra text, and the difference matters a lot for how you work.

Irrelevant content is unrelated to what you’re asking. A distractor is topically close but wrong: it looks like an answer without being one. The abandoned draft of your contract is a distractor. So is the positioning line you rejected in week one but never deleted. So is the earlier version of the number you’ve since corrected.

A single distractor was enough to reduce accuracy against a clean baseline in their tests, and four made it worse.[1] Which is uncomfortable, because a working conversation naturally accumulates distractors. Every draft you improve on leaves its predecessor sitting in the context.

Two other findings from the same work are worth knowing because they’re counterintuitive enough to change how you’d act.

The first: models did better when the surrounding text was shuffled into incoherence than when it flowed logically. The researchers say plainly they can’t explain why. It does suggest that a long, well-structured document in your context is not the safe input it feels like.

The second is about how models fail, and it differs by family. In their distractor tests, Claude models were the most likely to abstain and say they couldn’t find an answer, while GPT models produced the highest rate of confident, wrong answers.[1] Neither is better. But if you work mostly in one of them, you should know which failure you’re more likely to be handed, because one of them is much easier to miss.

The warning signs your conversation has hit context rot

Since there’s no error message, you’re relying on symptoms. Four are worth knowing, and three of them are easy to misread as the model just being unhelpful today.

Four signs, and what each one is probably telling you

What you noticeWhat’s likely happeningWhat to do about it
It reuses a detail you corrected earlier: an old number, a name you changed, a decision you reversedThe superseded version is still sitting in the context and reads as relevant. Classic distractor.Start a fresh conversation and carry forward only the current version. Correcting it again adds a third candidate.
Answers get more general. You asked something specific and got something that would fit any companyRetrieval is failing before reasoning starts, so it’s answering from general knowledge instead of your material.Restate the specific input in the current message rather than pointing back to it. “As we discussed” is doing no work.
It says it can’t find something you’re certain you providedAbstention under ambiguity. More common in some model families than others, and it’s the honest failure mode.Treat this as useful. It’s telling you the context is too crowded, which the confident wrong answer never does.
Re-asking the same question in the same thread gets you a differently-wrong answer each timeMultiple plausible candidates in the context and no stable way to choose between them.Stop re-asking. The thread is the problem, and every attempt adds to it.

A diagnostic table for a degrading conversation. The failure patterns are drawn from the Chroma report; the mapping to everyday work is ours.

The second row is the one I’d watch hardest, because it looks like the tool being lazy rather than the thread being crowded. If you find yourself thinking “it’s gone generic on me,” check the length of the conversation before you rewrite the prompt.

What isn’t a reliable sign: where in the conversation you put the important thing. It’s tempting to assume the middle is where information goes to be forgotten, and on the main retrieval task in the Chroma work, testing eleven different positions produced no notable variation.[1] Position did matter on a separate copying task, where accuracy was better when the unique item sat near the beginning. So it’s real in some settings and absent in others, which means it’s not something to build a habit on.

Practical ways to avoid it: summarising, starting fresh, and what to carry forward

The advice you’ll see most often is “start a new chat,” which is right and almost useless on its own, because the reason people don’t is that starting fresh means losing forty minutes of setup they don’t want to type again.

So the actual skill is not starting over. It’s deciding what travels.

The Carry-Forward Rule

Move the decisions, not the conversation.

A conversation contains two kinds of thing. Decisions and current facts, which you need. And the route you took to reach them, including everything you tried and rejected, which is exactly the material that turns into distractors. Asking the model to “summarise this chat” carries both, because a good summary of a conversation includes the wrong turns.

Here’s the version that works, written out in full so you can lift it. The specifics are a contract review, but the six headings transfer to anything.

The carry-forward brief, ready to paste into a new conversation

HeadingWhat you write under it
What I’m doingReviewing the current supplier agreement (v4, dated 12 August) before it goes to legal on Friday.
The current factsNotice period 30 days. Liability cap at 12 months of fees. Governing law England and Wales. These are current and override anything else.
What’s already settledIndemnity wording is agreed and not up for discussion. Do not revisit it.
What I’ve ruled outWe are not pursuing the mutual-termination option. If it comes up in the document, flag it, don’t develop it.
What I need nextA plain-English summary of clauses 7 to 9 for a non-legal colleague, under 200 words.
The ruleIf a figure isn’t in the attached v4, tell me you can’t find it rather than filling it in.

A filled-in carry-forward brief. The fourth row is the one people skip and the one doing the most work: naming what you rejected stops the model treating it as still live.

Two or three minutes to write, and it replaces a thread that had grown to forty exchanges. The fourth row is the important one. Telling the model what you ruled out is different from not mentioning it, because if the rejected option appears anywhere in the attached documents, silence leaves it looking like a live option.

When to reset at all, rather than push on:

  • When the goal changes. You were drafting, now you’re checking. Different job, new conversation, even if the thread is short.
  • When you’ve corrected the same thing twice. Two corrections mean three versions are now in there. A third correction won’t help.
  • When you’re about to rely on the output. Anything going to a client, a board, or into a system: run it from a clean conversation with only the current material.
  • Not simply because it’s long. A long thread on one narrow task with no abandoned versions in it is usually fine. Length alone isn’t the trigger.
The Reset Rule

Start fresh when the goal changes, not when the thread gets long.

And because this is a failure mode with no warning light, the check has to be structural rather than instinctive. Where a long conversation feeds into work that matters, write the split down before you start.

Who owns what, on a long document review

What AI doesWhat you still ownHow it gets checked
Pulls the relevant clauses and drafts a plain-English summary of eachWhether the summary is a fair reading, and what the commercial consequence isTwo figures picked at random get traced back to the source document. Not the ones that look wrong. Two at random.
Compares two versions and lists what changedWhich of those changes actually matters to your side of the dealConfirm the version dates in the answer match the files you attached. This is where old-draft contamination shows up first.

A worked example of the ownership split for a long review. The random spot-check is the point: checking only what looks wrong misses the answers that look right.

How this connects to keeping context in a file instead of a thread

If the carry-forward brief works, an obvious question follows: why retype it every time?

You don’t have to. Most current assistants let you keep standing context somewhere outside the conversation. A project or workspace that holds reference files. A saved instruction set that applies to every new chat. In coding-adjacent tools this shows up as a plain markdown file in the folder, often named something like CLAUDE.md or MEMORY.md, that the assistant reads at the start of each session. Different names, same underlying idea.

The advantage isn’t storage. It’s that a file is edited, and a conversation is only ever appended to.

When the notice period changes from 60 days to 30, you open the file and change the number. The 60 is gone. In a thread, the 60 stays in there forever, sitting quietly as a candidate answer. That single difference is most of the value.

What belongs in a standing context file, if you set one up: who you are and what you’re working on, the facts that change rarely, the standing rules about what you want and don’t want, and any vocabulary specific to your organisation. What doesn’t belong: anything about one particular task, and anything you might change this week. A context file that grows without ever being pruned rots for exactly the same reason a thread does.

There’s a related habit worth building alongside this, which is keeping the prompts that worked somewhere reusable rather than rediscovering them. We’ve written separately about building a prompt library for a team, and about setting up Claude Cowork so it works from files rather than one long chat, which is the same principle applied to a whole workflow.

Worth saying what none of this fixes. A context file doesn’t stop the model degrading on genuinely long inputs; a 200-page document is still a 200-page document. It reduces how much of the crowding you’re causing yourself, which in ordinary work is most of it.

Start here. Next time an answer goes vague on you, don’t rewrite the prompt. Open a new conversation, write six lines under those headings, and see whether the answer comes back sharp. If it does, you’ve found your problem, and it was never the prompt.

Sana Mian
Sana Mian, Co-Founder of Future Factors AI

Sana is an AI educator and learning designer specialising in making complex ideas stick for non-technical professionals. She has trained 2,000+ learners across corporate teams, bootcamps, and keynote stages. Future Factors offers AI Bootcamps, Corporate Workshops, and Speaking & Consulting for businesses ready to adopt AI without the overwhelm.

More about Sana →

Frequently Asked Questions

What is context rot?

It’s the drop in answer quality that happens as the amount of text in an AI conversation grows, even on tasks the same model handles reliably when the input is short. The name comes from a July 2025 technical write-up by Chroma, which tested 18 models on deliberately simple tasks like retrieving a fact or copying text back, and found performance degraded with input length across all of them. The word “rot” is slightly misleading, because nothing decays over time. A conversation left open for a week is no worse than one finished in an hour. What matters is the volume of text in the context, and particularly how much of it resembles the thing you’re currently asking about.

Does context rot happen in ChatGPT, Claude, and Copilot equally?

The degradation showed up across every model family tested, including GPT, Claude, Gemini and Qwen, so it isn’t a quirk of one product. What differs is how models fail rather than whether they do. In the distractor tests, Claude models were the most likely to abstain and say they couldn’t find an answer, while GPT models produced the highest rate of confident but incorrect responses. That difference matters more than it sounds, because a refusal is visible and a confident wrong answer isn’t. If you work mostly in one tool, it’s worth knowing which failure you’re more likely to be handed, and adjusting how hard you check accordingly.

How do I know my AI conversation has hit context rot?

There’s no error message, so you’re reading symptoms. Four are worth watching: it reuses a detail you already corrected, such as a superseded number or a decision you reversed; answers get noticeably more generic, in a way that would fit any company rather than yours; it claims it can’t find something you’re certain you provided; or re-asking the same question produces a differently-wrong answer each time. The second is the easiest to misread, because it looks like the model being unhelpful rather than the thread being crowded. If a conversation has gone vague on you, check its length before you start rewriting the prompt.

Does starting a new conversation fix context rot?

It fixes the crowding, but only if you’re careful about what you carry over. Asking the model to summarise the old thread and pasting that in defeats the purpose, because a good summary of a conversation includes the routes you took and abandoned, and those abandoned versions are precisely what causes the problem. What travels well is decisions and current facts: what you’re doing, what’s true now, what’s already settled, what you’ve explicitly ruled out, what you need next, and any rule about what to do when it can’t find something. Six headings, two or three minutes, and it replaces forty exchanges.

Are memory files a fix for context rot?

They help with the part of the problem you create yourself, which in day-to-day work is most of it. The real advantage of keeping standing context in a file rather than a thread is that a file can be edited and a conversation can only be added to. When a fact changes, you overwrite it and the old version is gone; in a thread the old version stays in the context indefinitely as a competing candidate. What they don’t fix is degradation on genuinely long inputs. If you hand a model a 200-page document, that’s still a long input regardless of how tidy your standing context is. And a memory file that only ever grows will eventually cause the same crowding, so it needs pruning like anything else.

About This Article

Everything in this article about how models behave at length comes from the Chroma technical report “Context Rot: How Increasing Input Tokens Impacts LLM Performance” (Hong, Troynikov and Huber, July 2025), which was read in full on 27 August 2026 rather than summarised from coverage of it. That mattered here: several widely-circulated write-ups of this work explain the effect as information being lost in the middle of the context, and the report’s own retrieval experiment tested eleven needle positions and found no notable variation by position on that task. Presenting position as the mechanism would have been repeating a claim the source does not make. A figure that appears in several secondary summaries, describing a 20 to 50% accuracy drop between 10,000 and 100,000 tokens, could not be located in that form in the report itself and is therefore not used here. The report is published by a vendor whose product addresses retrieval, which is worth knowing, though the code to reproduce the results is public. The mapping from these findings to everyday office work is our interpretation, not theirs.

Sources

  1. Hong, K., Troynikov, A., and Huber, J. Context Rot: How Increasing Input Tokens Impacts LLM Performance. Chroma Technical Report, 14 July 2025. Evaluation of 18 models across four controlled tasks, holding task difficulty constant while varying input length. Includes an extended Needle in a Haystack experiment across 8 input lengths and 11 needle positions, the LongMemEval conversational benchmark (306 prompts averaging about 113,000 tokens, against focused versions averaging about 300), and a repeated-words replication task. Read in full 27 August 2026. https://www.trychroma.com/research/context-rot

Psst, Hey You!

(Yeah, You!)

Want helpful AI tips flying Into your inbox?

Weekly tips. Real examples. Practical help for busy professionals.

We care about your data, check out our privacy policy.