Construindo Corrective RAG (CRAG) com LangGraph

Introdução

Nos últimos anos, a Recuperação Aumentada por Geração (RAG) tornou-se uma técnica fundamental para sistemas de IA que combinam busca de informações e geração de texto. Mas, quando adicionamos elementos “agentic”, ou seja, a capacidade do sistema decidir de forma autônoma como buscar, filtrar e processar dados, entramos no universo do Agentic CRAG (Corrective RAG), uma abordagem que combina recuperação, avaliação e correção dinâmica das respostas.

Para obter o código e o tutorial deste exercício faça parte do Clube AM e receba toda semana os códigos em R/Python, vídeos, tutoriais e suporte completo para dúvidas.

Neste artigo, exploramos como foi possível implementar um Agentic CRAG usando LangGraph e documentos reais das atas do COPOM.

O que é o CRAG?

O CRAG (Corrective Retrieval-Augmented Generation) é uma evolução do RAG tradicional, criado para lidar com um problema recorrente: documentos irrelevantes ou incorretos recuperados na busca.

Enquanto o RAG simplesmente pega os documentos encontrados e envia ao modelo de linguagem (LLM) para gerar uma resposta, o CRAG adiciona um mecanismo de autocorreção. Esse mecanismo avalia a qualidade das informações antes de usá-las.
Se o material recuperado não for confiável, o sistema pode:

  • Corrigir a consulta para melhorar a busca.

  • Buscar novas fontes, como resultados da web.

  • Filtrar informações irrelevantes antes de enviá-las ao LLM.

Isso reduz a chance de alucinações (respostas inventadas) e aumenta a precisão, especialmente em áreas sensíveis, como finanças, saúde ou direito.

Como o CRAG funciona na prática

O processo do CRAG pode ser dividido em quatro etapas principais:

  1. Avaliação da recuperação

    • Um “avaliador leve” (geralmente um modelo como T5) mede a relevância de cada documento em relação à pergunta do usuário.

  2. Classificação da confiança

    • Dependendo da pontuação, o resultado é classificado como:

      • Correct: documentos relevantes, prontos para uso.

      • Incorrect: documentos irrelevantes; o sistema descarta e busca na web.

      • Ambiguous: incerteza sobre a qualidade; combina busca interna + web.

  3. Refinamento da informação

    • Os documentos relevantes passam pelo método decompose-then-recompose:

      • Decompose: quebra o conteúdo em “tiras de conhecimento”.

      • Recompose: reconstrói a informação sem trechos inúteis.

  4. Busca complementar na web

    • Se necessário, a pergunta é reescrita para otimizar os resultados externos.

    • As informações da web também passam pelo refinamento antes de chegar ao LLM.

O sistema de classificação do CRAG é o que torna sua abordagem mais inteligente e adaptativa:

  • Correct (Correto)
    Pelo menos um documento é altamente relevante. O CRAG usa o conteúdo após o refinamento.

  • Incorrect (Incorreto)
    Nenhum documento recuperado é útil. O sistema reescreve a consulta e aciona uma busca na web para obter dados melhores.

  • Ambiguous (Ambíguo)
    O avaliador não tem confiança suficiente para dizer que os resultados são bons ou ruins. Nesse caso, o CRAG combina o melhor das fontes internas com resultados da web, garantindo maior cobertura de informação.

Esse processo evita que documentos irrelevantes contaminem a resposta final e permite que o LLM trabalhe com material de maior qualidade.

Vantagens do Agentic CRAG

  • A adoção do CRAG oferece vantagens claras em relação ao RAG tradicional:

    • Maior precisão: filtra documentos inúteis antes que cheguem ao modelo.

    • Menos alucinações: garante que a geração seja baseada em informações relevantes.

    • Flexibilidade: integra busca local e web, adaptando-se a diferentes cenários.

    • Escalabilidade: pode ser aplicado a qualquer domínio, de macroeconomia a saúde.

    • Transparência: permite rastrear exatamente quais documentos embasaram a resposta.

    Na prática, isso significa que, se um cliente ou analista pedir para validar a origem de uma resposta, você pode mostrar as fontes usadas e explicar como a decisão foi tomada.

Integração com LangGraph

O projeto em Python utiliza LangGraph para estruturar o fluxo do agente, onde cada nó representa uma etapa do processo:

  • Recuperação: busca de trechos das atas do COPOM a partir de um repositório vetorial criado com Chroma e embeddings do Google Generative AI.
  • Avaliação: uso de um LLM para classificar se o documento é relevante ou não.
  • Geração: construção da resposta final com base apenas nos documentos relevantes.
  • Correção: reescrita da pergunta para otimizar buscas adicionais.
  • Busca externa: se não houver informações suficientes, o agente realiza pesquisas na web.

Grafo: agentic CRAG com LangGraph

Fluxo de Trabalho do Agentic CRAG

O fluxo segue o conceito de Agentic RAG, mas com a adição do passo corretivo:

Pergunta do usuário → Recuperação de documentos → Avaliação de relevância → (Se necessário) Busca externa → Geração da resposta final

Esse ciclo se repete até atingir a melhor resposta possível, combinando automação, curadoria e inteligência contextual.

Exemplo com as Atas do COPOM

No exercício implementado, carregamos as últimas atas do COPOM diretamente do site do Banco Central, processamos os PDFs e os transformamos em uma base vetorial. Ao perguntar, por exemplo, “Qual foi a avaliação do COPOM em julho de 2025 sobre o cenário inflacionário global?”, o agente:

  • Recupera os documentos relevantes;
  • Filtra apenas os trechos que falam sobre inflação global;
  • Gera uma resposta resumida, precisa e apoiada em evidências.

Conclusão

O Agentic CRAG representa um passo à frente na criação de assistentes inteligentes, especialmente em áreas onde a precisão e a confiabilidade são cruciais, como análise econômica e política monetária.

Combinando RAG, LangGraph e técnicas de correção automática, criamos sistemas que não apenas respondem, mas também pensam estrategicamente para fornecer a melhor informação possível.

Quer aprender mais?

Conheça nossa Formação do Zero à Análise de Dados Econômicos e Financeiros usando Python e Inteligência Artificial. Aprenda do ZERO a coletar, tratar, construir modelos e apresentar dados econômicos e financeiros com o uso de Python e IA.

Referências

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Criando um Simples Assistente de Pesquisa com LangGraph

O exercício utiliza o LangGraph para criar personas fictícias de analistas econômicos, entrevistá-las com um especialista fictício e, a partir dessas interações, gerar relatórios técnicos usando LLMs, buscas na web e execução paralela.

Construindo Corrective RAG (CRAG) com LangGraph

Este post explica o conceito de Agentic CRAG (Corrective Retrieval-Augmented Generation) e sua aplicação na análise das atas do COPOM. Mostramos como combinar recuperação de informações, avaliação de relevância, correção de consultas e busca externa em um fluxo estruturado com LangGraph.

Criando Personas de Analistas com LangGraph

Este post apresenta um estudo de caso sobre a criação de um assistente de pesquisa com o LangGraph, integrando o conceito de human-in-the-loop. O sistema gera personas de analistas a partir de um tema, recebe feedback humano e ajusta as respostas de forma iterativa, garantindo resultados mais precisos e personalizados.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.