Back to catalog

Corrective RAG (CRAG)

This directory is retained purely for archival purposes and is no longer updated. Please see the newly [consolidated LangChain documentation](https://docs.langchain.com/oss/python/langgraph/overview) for the most current information and resources.

Get this prompt chain

This directory is retained purely for archival purposes and is no longer updated. Please see the newly consolidated LangChain documentation for the most current information and resources.

Corrective RAG (CRAG)

Corrective-RAG (CRAG) is a strategy for RAG that incorporates self-reflection / self-grading on retrieved documents.

In the paper here, a few steps are taken:

  • If at least one document exceeds the threshold for relevance, then it proceeds to generation
  • Before generation, it performs knowledge refinement
  • This partitions the document into "knowledge strips"
  • It grades each strip, and filters our irrelevant ones
  • If all documents fall below the relevance threshold or if the grader is unsure, then the framework seeks an additional datasource
  • It will use web search to supplement retrieval

We will implement some of these ideas from scratch using LangGraph:

  • Let's skip the knowledge refinement phase as a first pass. This can be added back as a node, if desired.
  • If any documents are irrelevant, let's opt to supplement retrieval with web search.
  • We'll use Tavily Search for web search.
  • Let's use query re-writing to optimize the query for web search.

Screenshot 2024-04-01 at 9.28.30 AM.png

Setup

First, let's download our required packages and set our API keys

Set up LangSmith for LangGraph development

Sign up for LangSmith to quickly spot issues and improve the performance of your LangGraph projects. LangSmith lets you use trace data to debug, test, and monitor your LLM apps built with LangGraph — read more about how to get started here.

Create Index

Let's index 3 blog posts.

LLMs

Web Search Tool

Create Graph

Now let's create our graph that will use CRAG

Define Graph State

Compile Graph

The just follows the flow we outlined in the figure above.

Use the graph

LangSmith Traces -

Comments (0)

Sign In Sign in to leave a comment.

Spark Drops

Weekly picks: best new AI tools, agents & prompts

Venture Crew
Terms of Service

© 2026, Venture Crew