AAI Agentic Handbook
Agents

Reflection & self-critique

Mid levelReviewed Oct 2026In 1 interview questionIn 1 post

The model critiques its output or trajectory and revises it; it helps when the critique uses an external signal (tests, validators), not self-review alone.

In plain English

Reflection means having an AI model look back at what it produced, find mistakes, and try again. A coding agent writes a function, runs the tests, sees two fail, and fixes them.

It works far better when the review has something real to check against — a test result, an error message, a Rubric — than when the model simply rereads its own answer and asks itself whether it's right. In Anthropic's agent patterns this is the evaluator-optimizer loop.

Analogy

Proofreading your own essay helps a little; a spell-checker and a friend's red pen help a lot more.

Common pitfall

Adding "review your answer" and assuming quality rose. Without an external signal it mostly doubles cost and can talk the model out of correct answers.

How it actually works

Forms: Self-Refine (Madaan et al., 2023): the same model generates, critiques and revises — about 20% absolute average gain across 7 tasks, mostly on open-ended writing. Reflexion (Shinn et al., 2023): verbal lessons from failed attempts are stored as Agent memory for the next try; with unit-test feedback it reached 91% pass@1 on HumanEval vs 80% for GPT-4. Evaluator-optimizer (Anthropic, Dec 2024): a separate evaluator scores against explicit criteria and the generator revises until pass.

The counter-evidence matters: Huang et al. (2023) found that intrinsic self-correction — no external feedback — does not reliably improve reasoning and sometimes flips correct answers to wrong. Gains come from signal: compiler and test output, schema validators, retrieval checks for Grounding & groundedness checks, or a calibrated LLM-as-judge. Each round costs a full generate + critique pass, so cap rounds at 2–3 and exit as soon as the checker passes.

What I'd ship on day one

Evaluator-optimizer with a deterministic checker first (tests, JSON Schema, regex policy), then an LLM-as-judge with a written rubric only for what code can't check. Max 2 revision rounds, exit on pass, log which check failed each round.

Worked example

Clinical-intake summariser: the evaluator checks each summary against 6 rubric items (allergies, current meds, chief complaint…). Round 1 misses allergies on 9% of notes; the evaluator returns "allergy list absent; source line 14 mentions penicillin"; round 2 fixes 8 of 9 points. A plain "double-check your summary" prompt on the same set changed the miss rate by under 1 point.

In the interview

Recommend reflection only where you have a checker: tests for code, a schema for extraction, a rubric-calibrated judge for prose. Say the cap and exit rule out loud: "two rounds, stop on pass."

The expected follow-up: "why not just ask it to check its work?" — cite intrinsic self-correction results and say what external signal you'd add instead.

01Generate
02External checktests, schema, judge
03Pass?exit if yes
04Critiquewhat failed, where
05Revise
↺ until pass or 2–3 rounds
Evaluator-optimizer: reflection grounded in a verifier, with a round cap.

Numbers worth knowing

Self-Refine average gain
~20% absolute7 tasks, GPT-3.5/4, Madaan et al. 2023
Reflexion on HumanEval
91% pass@1 vs 80%with test feedback, Shinn et al. 2023
Intrinsic self-correction on reasoning
no reliable gain; sometimes worseno external feedback, Huang et al. 2023

How to decide

WhenDo this
A deterministic checker exists (tests, schema, linter)Loop generate → check → revise, max 2–3 rounds.
Only subjective quality matters and no rubric existsWrite the rubric first; skip reflection until a judge is calibrated.
The task is a reasoning answer with no verifierPrefer sampling several answers and voting over self-critique.

Cost maths

Cost ≈ (1 + r) × generation + r × critique, r = rounds actually run. Example at $3 / $15 per M (illustrative, Oct 2026): generation 4k in / 800 out = $0.024; critique 5k in / 300 out = $0.0195. Average r = 0.4 with exit-on-pass → $0.024 + 0.4 × (0.024 + 0.0195) ≈ $0.041 per item; a fixed 3 rounds would be ≈ $0.155.

Operating it

Time to scale up when…
  • Average rounds per item > 1.5 (generator or prompt needs fixing, not more rounds)
  • Evaluator and human disagree on >10% of sampled items
What to monitor
  • Rounds per item p50/p95 (alert when p95 > 2)
  • Pass rate after round 0 vs final (alert if the gap shrinks below 1 point — the loop isn't earning its cost)
  • Answers changed from correct to incorrect on the golden set (alert on any increase)

When it goes wrong

What users saw

A financial-filings Q&A assistant's accuracy dropped 4 points after a "verify your answer" step was added.

How it was caught

Weekly golden-set eval; diffs showed correct numeric answers changed to wrong ones in round 2.

Root cause

Intrinsic self-critique with no external signal; the model second-guessed correct figures it couldn't re-verify.

Fix

Replaced self-critique with a check that recomputes each figure from the cited table cell; revisions happen only on mismatch.

Sources

  1. Self-Refine: Iterative Refinement with Self-Feedback — Madaan et al., 2023paper
  2. Reflexion: Language Agents with Verbal Reinforcement Learning — Shinn et al., 2023paper
  3. Large Language Models Cannot Self-Correct Reasoning Yet — Huang et al., 2023paper
  4. Building effective agents — Anthropic (Schluntz & Zhang), 2024blog

Check yourself

Three questions. Every option is explained once you answer.

1ConceptAccording to Huang et al. (2023), what happens with *intrinsic* self-correction on reasoning tasks?
2ScenarioA clinical-intake summariser misses allergies on 9% of notes. You can afford one quality loop. What should it be?
3CalculationGeneration costs $0.024, critique $0.0195. With exit-on-pass, the average item runs 0.4 revision rounds. Roughly what's the cost per item?