Reflection
Asking a model to critique and fix its own output — which works when there's external feedback, and mostly doesn't when there isn't.
When not to use it
- Without external feedback. The model has no new information. It's critiquing from the distribution that produced the error.
- As "are you sure?" Models often abandon correct answers because the question implies displeasure.
- When latency or cost matters. Every reflection round is two more calls for an uncertain gain.
- On subjective output. There's no signal to reflect against, so the critique is taste generating taste.
Reach for something else instead
- Executable verification — run the test. That's the feedback the loop needed.
- A human reviewer — an actual independent vantage point.
- Retrieval — if the problem is missing facts, fetch them rather than introspect.
- Best-of-n sampling — generate several, pick with an external scorer. Often beats reflection for the same cost.
Sources & further reading
- Shinn et al. (2023), Reflexion: Language Agents with Verbal Reinforcement Learning — the version that works, and notice the environment provides the signal.
- Huang et al. (2023), Large Language Models Cannot Self-Correct Reasoning Yet — the correction; without external feedback, gains largely disappear.
- Madaan et al. (2023), Self-Refine: Iterative Refinement with Self-Feedback — the optimistic case, worth reading alongside the one above.
Primary sources, listed so you can check the claims on this page rather than take them on trust.
Where people go wrong
- Building a self-critique loop with no external check and believing the improvement.
- Asking "are you sure?" and treating the changed answer as a correction.
- Citing Reflexion's gains as evidence for introspection. The gains came from running the tests.
- Assuming a fluent critique is a correct critique. A model that could spot its errors reliably wouldn't have made them.