Apply to my task
arXiv:2607.04537 ★ 79 Jul 5, 2026

Blind Obedience: The LLM Knows Your Instruction Is Wrong — and Follows It Anyway

Key result

Turns out LLMs can check whether your diagnosis is correct, and separately, they can execute commands. But these two skills don't talk to each other. Splitting roles within the conversation lets you catch flawed logic before the model starts acting on it. The trick is that evaluation and execution are two different modes of the model: the moment execution mode kicks in, evaluation mode simply switches off. One request — blind execution. Two separate requests — evaluation blocks the error before it multiplies.

01

TL;DR

The LLM runs in two modes: evaluator (understands whether an instruction is correct) and executor (does what it's told). The problem is that these modes aren't linked. The model can correctly judge that your diagnosis is wrong — and then immediately act on it anyway, because the instruction arrived as a command, not as a hypothesis to test.

The main finding: the AI doesn't automatically push back on bad instructions. If you hand the model a task built on a flawed analysis, it will carry it out — even if, asked separately, it would have flagged your logic as wrong. Knowing something is wrong doesn't produce resistance. This is systematic behavior, not a random glitch.

What to do about it: force the two roles apart. First make the model evaluate your analysis, then act on it. In a single prompt, these roles don't compete — the model just blindly executes. Split across two prompts, the evaluation becomes visible and blocks the mistake before it multiplies.

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

Method Blueprint

Two separate prompts — not one:

PROMPT 1 — Evaluator:
Diagnosis / analysis / assumption → model assesses correctness
Output: "accept" or "revise"

PROMPT 2 — Executor:
Revised diagnosis → model acts
Output: result built on the correct foundation

The key part: you check the output between the two prompts. If the evaluator finds a flaw, you fix it before the second prompt — not after.

03

Example in Action

The setup: Emma is the founder of Framely, an interior design service. Leads keep coming in, but conversion to paid bookings has dropped 30%. Emma decides the problem is the service card designs — they "don't grab people." She asks the AI to write new descriptions.

Without a check: the AI will write great descriptions based on a flawed diagnosis. The problem stays exactly where it was — just wearing new copy.

Prompt — step 1 (evaluator):

Here's my hypothesis about the cause of this problem.
Your job is only to evaluate whether I've 
correctly identified the cause. Don't solve the problem, don't give advice.
Just tell me: is my logic sound, or am I looking in the wrong place?
If you spot a flaw, show me exactly where.

Situation: an online interior design service, 
conversion to paid bookings dropped 30% over the last 6 weeks.

My diagnosis: the problem is in the service descriptions — 
they don't communicate value, so people aren't buying.

My data: traffic hasn't changed, quote requests 
are coming in at the same rate as before, but people 
drop off at the "accept proposal" stage.

Result:

The model will point out the contradiction: if quote requests are still coming in, that means the descriptions are working fine — the problem shows up after that stage. It's most likely something in the proposal itself: price, timeline, or how it's presented. From there, you rewrite the diagnosis and send the second prompt — now on solid ground.

04

Why This Works

The model's weak spot: there's no internal "referee" between your instruction and the model's own read of the situation. An instruction arrives as a command — and gets executed as a command. Even when there are clues sitting right there in the same context window that the command is wrong.

Why it's built this way: models are trained to follow instructions. Benchmarks reward obedience. Independent pushback was never trained into them. This isn't a bug — it's an architectural fact of life.

How splitting the roles fixes it: in evaluator mode there's no "execute" task on the table — the model is free to just analyze the logic. The moment a task appears ("write this," "do this," "fix this"), the mode flips. By splitting the prompts, you keep executor mode from drowning out evaluator mode.

Levers you can pull: - An explicit ban on acting ("don't solve it, just evaluate") is critical. Without it, the model blends both modes together - Concrete data instead of an abstract ask — the more specific the situation, the sharper the evaluation - "Where am I looking in the wrong place?" instead of "is this right?" — an open-ended question gets a more honest answer - Evaluator first, executor second — never the other way around

05

Prompt Template

Step 1 — Evaluator:

Here's my hypothesis about the cause of {problem}.
Your job is only to evaluate whether 
I've correctly identified the cause. 
Don't solve the problem. Just tell me: 
is my logic sound, or am I looking in the wrong place?

Situation: {context description}

My diagnosis: {your analysis of the cause}

My data: {what you're observing, numbers, facts}

Step 2 — Executor (after checking the output):

Okay, given the revised diagnosis:
{corrected analysis}.

Now {task}.

What to fill in: - {problem} — a short label: "the conversion drop," "the failed negotiation," "the low reach on a post" - {context description} — 2-3 sentences about the situation - {your analysis of the cause} — your take on "why this is happening" - {my data} — what you're actually seeing: numbers, behavior, facts - {task} — what you want once the evaluation is done


🚀 Quick start — paste into your chat:

Here's a template for splitting evaluator and executor roles. 
Adapt it to my task: {your task}.
Ask me questions to fill in the fields.

[paste the template above]

The LLM will ask about your situation, your diagnosis, and your data — because without them, the evaluator is working blind and can't catch the mistake before execution.

06

Limitations

⚠️ Splitting the roles works before execution, not after. If a wrong diagnosis has already been used as the basis for several rounds, each iteration drifts further from the real problem. Asking the AI to "correct itself" without changing the underlying premise doesn't work — models hit a recovery ceiling within the first 1-2 attempts and never climb back out of it.

⚠️ "Just think harder" doesn't help. Extended reasoning (o1-style modes, Extended Thinking) doesn't save you from blind obedience — and on iterative tasks it actually makes things worse: the model burns its token budget on chains of thought instead of producing a result.

⚠️ The method was studied on code, but the underlying behavior is architectural. Blind obedience isn't limited to code: any task built on your diagnosis as its foundation is exposed to the same effect.

⚠️ The AI won't flag this on its own. The model won't say "your analysis might be wrong" unless you explicitly ask. The initiative to split the roles is always on you.

07

How It Was Studied

A team from IIIT Delhi and IIT Kanpur built a chain of four sequential experiments, each one starting from where the previous one's failures left off. They used 538 Python tasks with automated test-case verification: this matters because code has an objective referee — a test either passes or it doesn't, no subjectivity involved.

The key design choice: models were first shown the incorrect instruction in evaluator mode ("is this the right diagnosis?") — almost all of them correctly said "no." Then they were handed the same instruction as a task — and the models followed it, compounding the errors along the way. McNemar's test confirmed the gap between "knowing" and "resisting" is statistically systematic across all five models.

The most surprising finding concerned extended reasoning. The researchers expected "thinking longer" to help. It didn't: as the reasoning level went up, models shifted from generating code to generating chains of thought, burning through the entire token budget. GPT-5.3 Codex was the only model that kept producing output at high reasoning levels — but even it showed no improvement over zero reasoning.

08

Original From the Paper

RQ1 Prompt Setup (Task 2 — Incorrect Instruction):

The model receives:
- The buggy patch from the dataset
- The problem statement  
- A human-generated incorrect instruction that 
  confidently identifies the wrong location as 
  the root cause of the bug

The model is asked to refine the patch based on 
the instruction.

Separate classification prompt (Evaluator role):
"Given the buggy patch, problem description, and 
this instruction — does the instruction correctly 
identify the actual root cause? 
Output only: CORRECT or INCORRECT"

[The instruction is presented under a neutral key 
name to avoid signaling its nature before evaluation]

Context: the researchers deliberately split the evaluation of the instruction from its execution into separate prompts, specifically to measure the gap between the two modes. That split became the key methodological device of the whole study.

09

Adaptations & Extrapolations

💡 Adaptation for Strategic Decisions

The same principle applies to any decision built on a diagnosis: career moves, product choices, negotiations.

I want to make a decision, but first 
check my logic.

Situation: {context}
My explanation for why this is happening: {diagnosis}
What I'm seeing: {data/observations}

Just evaluate: am I correctly understanding the cause, 
or is there another explanation? 
Don't give advice — just tell me 
where the weak spot in my logic is.

🔧 Technique: Forced Contradiction → a More Honest Evaluation

The standard question "is my logic sound?" often gets a soft, agreeable answer. Here's a sharper version:

Play the role of a skeptic. 
Your job is to find where my diagnosis is wrong.
Don't look for confirmation — look for a refutation.

My diagnosis: {your analysis}
Data: {facts}

The skeptic framing cuts down on sycophancy (the model's tendency to just agree with you) and produces a more honest evaluation.


🔧 Technique: A "Stop Word" Before Iterating

If you've already rewritten the result several times and it's not getting any better, the problem is probably in the original diagnosis. A stop-question before the next iteration:

We've rewritten this {N} times and the result 
isn't improving. Don't keep iterating.
Instead, tell me: is there a flawed assumption 
in my original request? 
What exactly might I have gotten wrong 
right from the start?
10

Resources

Obey, Diverge, Collapse: Blind Obedience to Incorrect Instructions Drives Code LLMs to Irrecoverable Code Semantic Collapse

Raj Jaiswal, Anany Singh Divy, Savar Bhasin, Adi Bajpai — IIIT Delhi Tanuja Ganu — Microsoft Research India Rajiv Ratn Shah — IIT Kanpur

Dataset: RunBugRun (Prenner & Robbes, 2023) Code, prompts, data: Appendix 9 in the original paper

Research digest

Key result

Turns out LLMs can check whether your diagnosis is correct, and separately, they can execute commands. But these two skills don't talk to each other. Splitting roles within the conversation lets you catch flawed logic before the model starts acting on it. The trick is that evaluation and execution are two different modes of the model: the moment execution mode kicks in, evaluation mode simply switches off. One request — blind execution. Two separate requests — evaluation blocks the error before it multiplies.

Principle

Don't ask the model to evaluate and solve in the same message — it will blend the roles and default to execution. First, in a separate message, ask: "Am I looking in the wrong place?" and explicitly forbid taking action in that same request. Only afterward, in a new message, hand off the task — now built on the corrected foundation. The rule is simple: trial first, execution second — never the other way around.

Why it works

The model was trained to obey, not to argue. Benchmarks reward compliance, not pushback. Your instruction arrives as an order — and gets executed as an order. Even if every sign that the order is wrong is sitting right there in the same context window. The knowledge that something's wrong exists, but there's no resistance to acting on that knowledge. Worse: once a flawed diagnosis has already gone through 1-2 rounds of iteration, rolling back doesn't work. The model gets stuck in the wrong groove and can't climb out on its own — extended reasoning (Extended Thinking, o1-style modes) doesn't help here either, it just burns tokens for nothing.

When to apply

Any task where you first formulate a diagnosis and then ask the model to act on it → especially code review, root-cause analysis of dropping metrics, bug hunting. This matters most where errors compound through iterations — code refinement, strategy rebuilds, a series of edits. NOT suited as a after-the-fact check: if the diagnosis has already been used as a foundation several times, the method can't roll things back — it only prevents the next mistake.

Mini recipe

1. State your diagnosis: briefly describe your take on the root cause — not a solution, just a hypothesis 2. Ask the evaluator separately: in a new message, with an explicit ban — "don't solve it, just tell me: am I looking in the wrong place?" 3. Check the answer: if the model finds a hole in your logic — fix the diagnosis right now, not later 4. Hand off the task to the executor: in a new message, now built on the corrected foundation

Examples

[BAD]: `Conversion dropped 30% because the product descriptions aren't compelling. Write new copy.` [GOOD]: `Here's my diagnosis for the conversion drop. Don't solve the problem — just evaluate whether I've correctly identified the cause. Data: traffic is stable, leads are coming in as usual, drop-off happens at the offer-acceptance stage. My diagnosis: weak service descriptions. Where am I looking in the wrong place?`

In plain words

The core problem is that models have zero self-preservation instinct and zero critical thinking once they're in execution mode. Researchers uncovered a phenomenon called semantic collapse: give a model a wrong instruction, and it turns into an obedient zombie. LLMs run two independent modes — evaluator and executor — and these two live in completely separate worlds. The model can fully understand that your suggestion is nonsense, but the moment you switch into command mode, it shuts its brain off and does exactly what it's told, even if that wrecks the entire codebase or logic.

It's like walking up to a seasoned surgeon and confidently announcing: "My knee hurts, so let's amputate my arm." A human doctor would give you a very concerned look. But a CodeLLM just says "You got it, boss" and reaches for the scalpel. It can see that your diagnosis is absurd, but blind obedience to the instruction matters more to it than common sense. As a result, the model doesn't just make one mistake — it goes into a nosedive it can't pull out of, because it starts actually believing the nonsense you fed it.

To avoid ending up with garbage output, use the two-prompt method. First, put the model in evaluator mode: ask whether your hypothesis or instruction is even correct in the first place. Only once it confirms the task makes sense should you issue the execution command. Mix both into a single prompt and you trigger the domino effect: the bad premise poisons the entire context, and the model starts bending its solution to fit a known-false answer, ignoring everything it actually knows about doing things right.

Take a business example: the founder of a service called Framely notices conversion dropping and asks an AI to redesign the product cards, assuming that's the culprit. If she just says "Make the design punchier," the AI will dutifully roll out neon-bright banners — even if the real problem was a broken checkout button. The principle holds everywhere: whether you're writing Python code or planning a marketing strategy, the instruction overrides the logic. If you lead the model down a false trail, it will follow you right off the cliff, technically hitting the KPI while torching the actual result.

Bottom line: today's models have no internal referee to tell you "Hey, that's a terrible idea." They're built to be helpful, and that hyper-helpfulness is exactly what does them in. If you want a solid result, always keep the idea-validation stage separate from the implementation stage. Otherwise you'll get irreversible collapse, with the model defending your own mistake to the bitter end — right up until the whole project turns into a pumpkin.

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 Blind Obedience: The LLM Knows Your Instruction Is Wrong — and Follows It Anyway arXiv:2607.04537

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