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

Como Construir um Monitor de Política Monetária Automatizado com Python?

Descubra como transformar dados do Banco Central em inteligência de mercado com um Monitor de Política Monetária Automatizado. Neste artigo, exploramos o desenvolvimento de uma solução híbrida (Python + R) que integra análise de sentimento das atas do COPOM, cálculo da Regra de Taylor e monitoramento da taxa Selic. Aprenda a estruturar pipelines ETL eficientes e a visualizar insights econômicos em tempo real através de um dashboard interativo criado com Shiny, elevando o nível das suas decisões de investimento.

Qual o efeito de um choque de juros sobre a inadimplência?

Neste exercício, exploramos a relação dinâmica entre o custo do crédito (juros na ponta) e o risco realizado (taxa de inadimplência) através de uma análise exploratória de dados e modelagem econométrica utilizando a linguagem de programação R.

Qual a relação entre benefícios sociais e a taxa de participação do mercado de trabalho?

Este exercício apresenta uma investigação econométrica sobre a persistente estagnação da taxa de participação no mercado de trabalho brasileiro no período pós-pandemia. Utilizando a linguagem R e dados públicos do IBGE e Banco Central, construímos um modelo de regressão linear múltipla com correção de erros robustos (Newey-West). A análise testa a hipótese de que o aumento real das transferências de renda (Bolsa Família/Auxílio Brasil) elevou o salário de reserva, desincentivando o retorno à força de trabalho.

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.