Self-reflection is the mechanism by which a large model first writes out an answer, then looks back over it, finds mistakes, and answers again. It can fix some formatting errors and calculation slips, but it cannot fix things the model never knew in the first place, and more rounds of reflection are not always better.
How self-reflection works: answer first, verify, then revise
Self-reflection usually runs in three steps: the model first generates a version of the answer; then a scoring stage judges whether that version is good enough, based on external feedback — for example, code that fails to run or a test that does not pass — or on a check the model simulates itself; finally, "where it went wrong and how to do better next time" is written down as text, stored in memory, and read before the next attempt. The Reflexion framework proposed by Shinn and colleagues in 2023 is the best-known example of this idea: it consists of an Actor that generates answers, an Evaluator that scores them, and a Self-Reflection model that writes the reflection, improving agents through verbal feedback rather than by changing weights. It reached 91% pass@1 on the HumanEval coding benchmark, above the 80% achieved by GPT-4 on its own. The same approach beat the baseline by about 22 percentage points on AlfWorld tasks and improved HotPotQA by about 20%. These numbers show that reflection genuinely works for tasks with clear right-or-wrong criteria — provided the feedback signal itself is reliable.
Self-reflection is not the same as chain-of-thought
Chain-of-thought means "think first, then answer": the model writes out its reasoning steps before reaching an answer, reducing the chance of a slip along the way. Self-reflection means "answer first, then verify": the answer already exists, and the reflection step assesses the quality of that finished answer. The two can be combined: answer carefully with chain-of-thought first, then check it again with self-reflection. Confusing the two makes it easy to mistake "thought for a long time" for "checked it". Another common confusion is treating self-reflection as training: methods like Reflexion do not change the model's weights, only the textual reminders stored in memory.
Three misconceptions, and how to tell whether it helps
The first misconception is thinking that a model "understands" once it has reflected. Reflection changes wording and steps, not knowledge itself. For facts the model does not know, reflection will only restate the wrong answer in smoother language — and may even grow more confident with each revision. The second misconception is thinking that more rounds of reflection are always better. Without external verification, repeated reflection amplifies the initial bias and turns a small error into a big one. The sound approach is to set a stopping rule: either wait for an external signal such as passing compilation or passing tests, or cap reflection at two or three rounds and stop there. The third misconception is treating self-reflection as a fact-checking tool. It is good at errors that can be verified on the spot — formatting, arithmetic, code — but open-ended questions and factual questions have no ready-made judge, and reflection cannot help there. Whether self-reflection fits a scenario comes down to one question: can you verify the answer without relying on the model itself? If yes, self-reflection is worth switching on. If no, find an external tool or a human to check first, instead of expecting the model to talk itself out of its own answer.