# Self-Refine

> One model, three roles: generate → self-feedback against a fixed rubric → refine — iterate until 'no more issues' or max iterations.

- **Category**: Agentic AI
- **Subcategory**: Verification & Reflection
- **Canonical URL**: https://designpattern.fyi/patterns/self_refine/

---

## Description
**Intent**: Squeeze more quality out of a single model with no separate critic.

**Context**: You're running a generation task on one LLM with no second model available for critique. You do have an explicit improvement target — a checklist, quality rubric, or definition of 'better' for this domain. The same model can produce useful feedback against that target when given the draft and the checklist.

**Solution**: Three roles, one model. (1) **Generate**: produce initial output. (2) **Feedback**: same model returns concrete improvement points against a fixed target. (3) **Refine**: same model rewrites using the feedback. Repeat until 'no more issues' or max iterations.


## Use Cases
- The same model can produce useful self-feedback against an explicit improvement target.
- One-shot generation under-uses the model and quality matters.
- Cost of a few extra refine turns is acceptable.





## Trade-offs


### Advantages

- Quality improvement on tasks with measurable targets — no second model needed.

- Same-model loop is dead simple to deploy.




### Considerations & Drawbacks

- Reinforces same-model blind spots — the model can't see what it can't see.

- Diminishing returns after 2-3 iterations; stop there.







---
**Reference**: [Original Source](https://www.agentpatternscatalog.org/patterns/self-refine/)

