A standard RAG pipeline is a straight line: embed the query, retrieve, assemble context, generate.
It has no opinion about what came back, so bad retrieval quietly becomes a bad answer.
Worse, the answer is delivered with the confident tone that grounded generation is supposed to earn.
Corrective RAG inserts a judgement step between retrieval and generation.
A grader, often a small model, scores each retrieved passage for relevance to the query.
If the passages are good the pipeline proceeds exactly as before.
If they are poor, it triggers a fallback such as a rewritten query or a web search.
An ambiguous middle case usually means keeping what is relevant and supplementing it.
Self-RAG makes the model itself responsible for those decisions during generation.
It is trained to emit special tokens deciding whether retrieval is needed for the current sentence.
For a question answerable from parametric knowledge it can skip retrieval entirely.
After drafting, it critiques its own output against the retrieved passages for support and usefulness.
Unsupported claims trigger a revision rather than being shipped.
Both approaches trade latency and model calls for a lower rate of confidently wrong answers.
The pragmatic version most teams build is a relevance grader plus one query rewrite, which captures much of the benefit.