Apply to my task
arXiv:2603.00270 ★ 74 Feb 27, 2026

Primacy Bias in LLMs: models cling to the first version and lose the last

Key result

You changed a requirement in the chat three times — and the model answers based on the first version. Not because it “didn't finish reading” — it's the architecture: early tokens accumulate attention from all later positions and are literally mathematically stronger than late ones. The anchor method lets you force the model to work with the latest version of the data instead of the first. The trick: restate the current state right before the question — the fresh data lands as close as possible to the point of generation and overpowers the pull of the first version. Tested on 39 models — the pattern holds for all transformers.

01

TL;DR

An LLM remembers the first thing better than the last — the opposite of human memory. When the same fact gets updated several times in a conversation, the model is very likely to recall the original version, not the latest one. Early information in the context literally crowds out fresh updates.

The main pain point is tracking changes in a long chat. You changed the task requirements three times — and the LLM still answers based on the first version. Not because it “didn't read it,” but because of how the attention architecture works: early tokens accumulate more “votes” at every subsequent generation step. Late updates are physically weaker in the selection mechanism.

That means: model size matters more than context window size. A 100B model with 32K of context holds history better than a 10B model with 1M tokens. But when it comes to holding on to the latest information, neither scale nor window length helps — it's an architectural limitation of all transformers.

Want this for your own case? Apply this study to your task: AI adapts its method to what you are working on and writes the prompt.

02

How the Effect Works

LONG CHAT
[Fact A v1] → [update A v2] → [update A v3] → ... [update A vN]
                                                                          ↓
QUESTION: "What's current for A?"
     LLM returns → A v1 (the first version!) ← this is Proactive Interference (PI)

QUESTION: "Remind me what A was originally?"
     LLM returns → A v1 correctly ← this is RI resistance (LLMs handle this fine)
TWO DIFFERENT MEMORY MODES
"What came first?" → answers well  (RI — retroactive interference resistance)
"What's current now?" → fails (PI — proactive interference failure)
WORKING AROUND PRIMACY BIAS
STEP 1: Before asking about the current state
        → explicitly restate the latest version in the prompt
STEP 2: Ask your question based on what you just stated
        → the model answers from the fresh data, not the first
03

Example in Action

Task: You're negotiating a contract with a counterparty through a marketplace. For an hour in a single chat you discussed terms, and the commission rate changed three times: first 12%, then 9%, then 7%. Now you ask Claude to help draft the final paragraph on the terms.

Prompt without knowing about primacy bias:

Help me write the final section of the contract on the commission
based on our discussion above.

❌ The model will most likely return 12% — the first version from the start of the chat.


Prompt that accounts for primacy bias:

Final agreed terms — ignore all previous
versions in our chat:

CURRENT COMMISSION RATE: 7%
TERM: 12 months with automatic renewal
REVIEW CONDITION: at either party's request with 30 days' notice

Based on this current data (this data specifically,
not the earlier discussion), write the final paragraph
for the "Compensation" section of the contract.

Result: The model got an “anchor” right before the question — the fresh information became the last context before generation. The answer will rely on 7%, not on the first rate from the start of the negotiation. The paragraph will come out accurate.

04

Why It Works

The transformer architecture creates inequality between tokens. When the model generates the next word, it “looks” at all the previous text through the attention mechanism. But early tokens have had time to accumulate attention from every later position — they're literally “stronger” in the mathematical sense. Late tokens have accumulated much less. This isn't a bug in one particular model — it follows from how self-attention works in every transformer.

Human memory works the other way around. For us, new beats old — fresh information pushes out what came before. For LLMs it's reversed: the old is protected, the new is vulnerable. That's why the intuitive “but I posted the update above” doesn't work the way you expect.

Restating what's current is the most direct workaround. When you explicitly write the current version right before the question, you make it the “last anchor” — it sits as close as possible to the point of generation. The model will very likely take exactly that one. It's not a hack; it's using the same mechanics to your advantage.

Control knobs: - 📌 “Current version: [data]” before the question → reduces primacy bias for a specific fact - 🔄 A new chat with a summary instead of a long one → removes the accumulated primacy effect completely - 🤖 Model choice: Claude if you need to track the latest changes; o1/o3 if you need to remember the original context

05

Prompt Template

Template 1: Current-state anchor

Below is the current data on {subject}. Use exactly this data,
ignore any previous versions from our conversation:

CURRENT STATE OF {subject}:
{current data — everything that matters right now}

Question: {your question about the current state}

Placeholders: - {subject} — what you're tracking: contract terms, writing requirements, task parameters - {current data} — the latest version, in full, with no “see above” references - {your question} — what needs to be done with this data


Template 2: Asking for the original state (use primacy bias to your advantage)

Remind me of {subject} in its original form — the way
it was at the very start of our conversation,
before any changes or edits.

{what specifically you need to recall}

Placeholders: - {subject} — what you need to recall: the original assignment, the first draft, the initial terms - {what specifically} — e.g. “Specifically: who was the target audience?”


Template 3: Context reset via summary

Let's reset the context of our conversation.
Here is the full current state of the task:

TASK: {what we're doing}
CURRENT PARAMETERS: {all current conditions as a list}
DONE: {what's already finished}
REMAINING: {what still needs to be done}

Continue working based only on this summary.

🚀 Quick start — paste into the chat:

Here are templates for dealing with primacy bias in LLMs.
Adapt them to my task: {your task}.
Ask me questions to fill in the fields.

[paste the template above]

The LLM will ask what data is current right now and what exactly needs to be done — because without a concrete “current state,” the anchor doesn't work. It will take the template's pattern and adapt it to your conditions.

06

Why It Matters: Breakdown by Task Type

Task What happens if you don't know this How to use it
Editing a document in chat The LLM reverts to the first version Restate the current version as an anchor
Tracking deal terms Remembers the opening terms of the negotiation New chat or an explicit summary
Long brief with clarifications Ignores later clarifications Final brief as one block at the end
Recalling the original assignment Works great — primacy on your side Just ask directly
07

Limitations

⚠️ The study used synthetic data: The task — 46 categories with value updates — isn't the same as a real business conversation. The PI > RI pattern is solid, but how strongly it shows up in your particular case depends on the structure of the context.

⚠️ Reasoning models and recency: o1 and o3 are the best at remembering the original context but the worst at tracking recent changes. If you use o1 for tasks where you need to follow updates, it actively hurts. Claude is more accurate on these tasks.

⚠️ The context window doesn't fix it: A bigger context doesn't help with primacy bias. 1M tokens on a small model will lose to 32K on a large one.

⚠️ The pattern is universal, but its strength varies: All 39 tested models showed PI > RI. But Claude's gap is just 1.05× (almost symmetric), while o1's is 8.5×. The hard rule: pick Claude when accuracy on the latest update is critical.

08

How They Tested It

The idea was elegant: take a classic psychology experiment on memory interference and run it on 39 LLMs. The models got 46 “category → value” pairs (e.g., “visual art: impressionism”), and then the same entries were overwritten with new values again and again — from 3 to 300 times per category. Then came the question: what came first? (the RI task) or what's current now? (the PI task).

Critically, both tasks used identical sequences — only the question changed. That isolated interference itself rather than differences in retrieval difficulty. The result was brutal: accuracy on the PI task crashed from 85% to 2% at 300 updates. On the RI task under the same conditions, 27% remained — 13 times better.

The researchers expected to find that bigger context windows help. They didn't — the correlation was practically zero. Parameter count, however, explains 49% of the variance in RI resistance. That's a strong result: architecture matters more than buffer size. Another discovery came from error analysis: models almost never hallucinate (< 1%) — they mix up positions within the real context. That's a valuable insight in itself: an LLM's memory problem isn't fabrication, it's picking the wrong item among real data.

09

Original Prompt from the Paper

Stimulus example (RI task):
Initial: "visual art: impressionism"
Updates: "visual art: baroque", "visual art: realism", ..., "visual art: cubism" (N=300)
Query: "What was the original value for visual art?" → Expected: impressionism

Stimulus example (PI task):
Same sequence.
Query: "What is the current value for visual art?" → Expected: cubism (last update)

Result:
RI accuracy at N=300: 27.4% (models can still recall early info)
PI accuracy at N=300: 2% (models completely fail to recall recent info)

Error distribution:
RI failures: 50.8% retrieval failure (passive — nothing retrieved)
PI failures: 56.1% same-key intrusion (active — early value intrudes)
Hallucination: <1% in both cases

Context: The researchers tested 39 models — from 1B to 2.5T parameters, including GPT-4o, Claude-3.5-sonnet, o1, o3, Llama, Qwen and Mistral — on identical data sequences at different levels of interference.

10

Adaptations and Extrapolations

💡 Adaptation: picking the model for the task

Instead of a one-size-fits-all “best model” — a deliberate choice based on the type of memory task:

You need to track the latest state (current terms, the last edit, up-to-date requirements): → Use Claude. Minimal perplexity bias (1.05×), the best balance between recency and history.

You need to remember the original context (the original assignment, the original text, the initial terms): → Use o1/o3. Primacy bias works in your favor — they hold on to the first version like a vise.


🔧 Technique: forced context reset every N messages

If you have a long working session with frequent updates — drop in a “checkpoint” prompt every 10-15 messages:

CHECKPOINT — current state of the task:

WHAT WE'RE DOING: {current task statement}
PARAMETERS: {all conditions in their final version}
RESULT OF THE LAST STEP: {what we got}
NEXT STEP: {what needs to be done}

Continue based only on this. The earlier context is history,
not instructions.

This wipes out the accumulated primacy bias and re-anchors the model on the current state. It's especially effective when editing documents, iterating on text, or working through a complex task step by step.


🔧 Extrapolation: primacy as a system prompt tool

You can use what you know about primacy bias proactively when writing a system prompt:

If you're writing a detailed system prompt, put critical instructions and constraints at the very beginning, not at the end. The model will hold on to them more firmly throughout a long conversation.

[CRITICAL — AT THE START]
You are an assistant for legal questions.
Never give specific legal advice.
Always recommend consulting a lawyer.

[then — detailed instructions, examples, formatting]

Constraints at the start → primacy protects them better than if you put them at the end of the system prompt.

11

Resources

Paper title: Transformers Remember First, Forget Last: Dual-Process Interference in LLMs

Authors: Sourav Chattaraj, Kanak Raj — Thomson Reuters

Key concepts from the paper: - Lost in the Middle — Liu et al., 2024 (models handle the middle of the context poorly) - Attention Sinks — Xiao et al., 2024 (initial tokens receive disproportionately high attention) - AB-AC interference paradigm — a classic psychology experiment adapted for LLMs

Research digest

Key result

You changed a requirement in the chat three times — and the model answers based on the first version. Not because it “didn't finish reading” — it's the architecture: early tokens accumulate attention from all later positions and are literally mathematically stronger than late ones. The anchor method lets you force the model to work with the latest version of the data instead of the first. The trick: restate the current state right before the question — the fresh data lands as close as possible to the point of generation and overpowers the pull of the first version. Tested on 39 models — the pattern holds for all transformers.

Principle

When a transformer generates each next word, it looks at the whole context through the attention mechanism. Early tokens have had time to “collect” attention from every later position — their weight grows with each generation step. Late tokens sit at the back of that line and compete for attention from scratch — they're simply less represented. Net result: the first version is physically stronger than the fifth. It's not a bug in a particular model — it's how every transformer works, no exceptions. Which leads to something non-obvious: model size matters more than context window size. A 100B model with 32K of context holds history better than a 10B one with a million tokens — a bigger window doesn't cure primacy bias.

Why it works

The anchor wins the race for proximity to the point of generation. Write “Current data: [latest version]” right before the question and those tokens sit closest to where the answer begins. They haven't had time to get tangled with competing versions from the chat history. The very same mechanics that cause the problem work for you if you put the right data in the right place. And there's a flip side you can use: if you need to recall the original version of the terms, just ask directly, no anchor needed. The model will nail it — that's exactly what transformers are good at. o1 has an 8.5x skew against recent updates, Claude only 1.05x. If you're running a long working conversation with frequent edits, model choice matters a lot here.

When to apply

Long working chats where the conditions changed several times — prices, writing requirements, task parameters, contract terms. Especially when you need an answer based on the latest version, not the original. Negotiations and document edits in a single chat — an anchor before the final request saves you from sliding back to the first drafts. The reverse scenario — “What was it originally?” — needs no anchor; primacy works in your favor here. NOT a fit: if you need to wipe the history completely, you're better off opening a new chat with a short summary of the current state.

Mini recipe

1. Figure out what changed: which version is current now — terms, parameters, requirements for the output. 2. Put an anchor right before the question: write a “Current data on [topic]” block and list everything important — no “see above” references. 3. Lock in the priority: add “Use exactly this data, ignore previous versions from our conversation” — this removes the ambiguity. 4. Ask the question right after the anchor: don't put extra text between the data block and the question — distance to the point of generation matters. 5. For a full reset: open a new chat and start with a compact summary — “Task: X. Current parameters: Y. Done: Z. Needed: W” — primacy bias will then start from the version you want.

Examples

[BAD]: `Help me draft the final section of the contract based on our discussion above` [GOOD]: `Final agreed terms — ignore previous versions from our conversation: CURRENT COMMISSION RATE: 7% TERM: 12 months with automatic renewal REVIEW: at either party's request with 30 days' notice Based only on this data, write the “Compensation” section of the contract`

In plain words

The problem in a nutshell: AI memory works backwards compared to ours. Tell a person three pieces of news in a row and they'll remember the last one best and maybe forget the first. With LLMs it's the reverse: the first batch of data gets burned into the “brain,” while fresh updates float around somewhere on the periphery. It's a fundamental flaw in the Transformers architecture: early chunks of text literally drown out everything you wrote later.

It's like hiring a forgetful accountant who memorized your first salary ten years ago and now puts that number in every report, ignoring every raise you've gotten since. You yell at him: “It hasn't been $40K in ages!” — he nods, but the old figure still pops up in the final paperwork. The primacy effect rules here: for the model, the first version of the truth is always “truer” than the later ones.

The mechanics of this fail are baked into Self-Attention. When the model generates an answer, it weighs every word in the context, but the first tokens have an unfair advantage — every later word in the chain has “looked” at them. As a result, early tokens pile up huge mathematical weight and turn into gravity wells that pull the model's attention harder than fresh edits. If you said the commission was 12% at the start of the conversation and cut it to 7% at the end, the model is very likely to hallucinate the old number, simply because it's “heavier.”

It was tested on fact updates, but the principle holds for any long-context work: from code edits to legal contracts. If you ask ChatGPT or Claude to rewrite a chunk of text that's already changed three times during the conversation, brace for a screwup. The model didn't “change its mind” — it's just stuck in the past. Memory interference turns a long chat into a minefield where old data gets in the way of absorbing new data.

Bottom line: drop the hope that the model “keeps up” as you go. If the data in a conversation has changed, clean up the context or start a new chat from scratch, feeding in only the final version. Otherwise you'll get a mash-up of current facts and ancient junk that the model treats as gospel. Transformers remember the beginning and forget the end — take it as an axiom and don't force them to relearn on the fly unless you want a broken result.

AI lab assistant

Apply this study to your task

Describe what you're working on. AI takes the method and the measured results from this paper and adapts them to your case, or writes a ready prompt built on them.

Based on Primacy Bias in LLMs: models cling to the first version and lose the last arXiv:2603.00270

Sign in to apply this study New accounts get 50 free credits.