Same-Model Self-Critique
Having the same model produce an answer and critique it — and calling that an independent check.
Intent & Description
🎯 Intent
Running a reflective loop where one call generates a candidate and a second call critiques it — both using the same model family.
📋 Context
Reflexion, self-refine, evaluator-optimizer loops are valuable patterns. The shortcut is using the same model for both producer and critic because it’’s cheap and easy. The critic shares the producer’’s biases and training distribution — it catches surface errors but misses the deep ones, and can actively reinforce wrong answers across iterations.
💡 Solution
Either accept that same-model critique catches surface errors only (and label it accordingly), or use a different model family for the critic role. See reflection, evaluator-optimizer, llm-as-judge.
Real-world Use Case
- Never use this; the critic shares the producer’’s blind spots and can reinforce wrong answers.
- If same-model self-critique is the only option, explicitly treat it as surface-error detection only.
- Use a different model family for the critic (see llm-as-judge or evaluator-optimizer).
Source
📌 TL;DR
Use a different model family for the critic, or explicitly acknowledge that self-critique only catches surface-level errors.
Disadvantages
- False confidence in flawed answers — the model validates its own mistakes
- Self-reinforced misconceptions compound across reflective iterations