agent-readings / Reasoning, Acting, and Reflection
A generate-critique-rewrite loop for test-time improvement
The one sentence
For agents, Self-Refine turns intermediate artifacts into maintainable state: draft, feedback, revised draft, stop signal, and iteration budget are separate records that can be inspected, replayed, and connected to external checks.
Before this paper
Many LLM generations are useful but incomplete or suboptimal on the first attempt.
Prior iterative refinement methods often trained separate refiners or depended on supervised feedback data, scalar reward models, or human annotation.
One-shot prompting gives no durable place to store why an answer is wrong or how the next version should change.
The paper asks whether a strong frozen LLM can improve its own outputs across tasks by generating task-specific natural-language feedback and then refining from that feedback.
Core idea
Generate an initial output, prompt the same LLM for specific feedback on that output, prompt the same LLM to refine the output using the feedback, append prior outputs and feedback to later prompts, and repeat until a stop condition or maximum iteration count.
Produce a first draft for the task.
Ask the model to critique the draft with specific, actionable feedback.
Ask the model to revise the draft using that feedback.
Carry the output and feedback history into the next iteration.
Action grammar
Initial generation prompt: task input plus examples for producing a first answer.
Feedback prompt: task input, current output, and examples for writing specific, actionable feedback.
Refine prompt: task input, current output, feedback, and examples for rewriting the output.
Stop condition: either a fixed iteration count or a task-specific signal extracted from feedback or an external...
Executable shape
Evidence
The paper defines Self-Refine as initial generation, self-feedback, and refinement using the same LLM, with no additional supervised training data, extra training, or...
The algorithm alternates feedback and refine steps until a stop condition. The paper says previous feedback and outputs are retained by appending them to the prompt, and the last...
The abstract reports about 20 absolute points average improvement. Table 1 shows improvements across Sentiment Reversal, Dialogue Response, Code Optimization, Code Readability,...
Examples include GPT-4 Dialogue Response improving from 25.4 to 74.6, ChatGPT Constrained Generation from 44.0 to 67.0, and GPT-4 Constrained Generation from 15.0 to 45.0. Math...
Claim map
Self-Refine needs no supervised training data, additional training, or reinforcement learning; it uses the same LLM as generator, feedback provider, and...
The loop retains previous outputs and feedback in the prompt, making intermediate drafts and critiques part of the computation state.
Across seven evaluated tasks, Self-Refine improves strong base LLM outputs by about 20 absolute points on average over conventional one-step generation.
The largest gains appear on tasks where feedback can point to missing constraints or preference defects, while math reasoning improves only modestly without...
Agent infrastructure
Treat generate, critique, refine, and stop-decision as separate logged runtime steps rather than one opaque completion.
Persist every intermediate output and feedback item so a review can explain why a slide, summary, or code artifact changed.
Do not treat self-feedback as a verifier. Where possible, pair critique prompts with external checks such as tests, parsers, graders, or task-specific...
Iteration count is an infrastructure knob: it trades latency and cost for quality, and diminishing returns should be measured per task.
Caveats
Self-Refine is a test-time prompting and orchestration method, not a new trained model.
The strongest experiments use proprietary models such as GPT-3.5, ChatGPT, GPT-4, and Codex.
Preference-based evaluations rely partly on humans and GPT-4-as-judge, so they are not all executable verifiers.
Math reasoning gains are modest without an external signal that identifies wrong answers.
Run it
No PoC yet - contributions welcome. A useful local PoC would refine a generated paper summary against schema checks and compare one-shot versus iterative schema-valid output.