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 planejar um pipeline de previsão macroeconômica: da coleta ao dashboard

Montar um pipeline de previsão macroeconômica não é apenas uma tarefa técnica — é um exercício de integração entre dados, modelos e automação. Neste post, apresento uma visão geral de como estruturar esse processo de ponta a ponta, da coleta de dados até a construção de um dashboard interativo, que exibe previsões automatizadas de inflação, câmbio, PIB e taxa Selic.

Coletando e integrando dados do BCB, IBGE e IPEA de forma automatizada

Quem trabalha com modelagem e previsão macroeconômica sabe o quanto é demorado reunir dados de diferentes fontes — Banco Central, IBGE, IPEA, FRED, IFI... Cada um com sua API, formato, frequência e estrutura. Esse gargalo de coleta e padronização consome tempo que poderia estar sendo usado na análise, nos modelos ou na comunicação dos resultados.

Foi exatamente por isso que criamos uma rotina de coleta automatizada, que busca, trata e organiza séries temporais econômicas diretamente das APIs oficiais, pronta para ser integrada a pipelines de previsão, dashboards ou agentes de IA econometristas.

Criando operações SQL com IA Generativa no R com querychat

No universo da análise de dados, a velocidade para obter respostas é um diferencial competitivo. Frequentemente, uma simples pergunta de negócio — “Qual foi nosso produto mais vendido no último trimestre na região Nordeste?” — inicia um processo que envolve abrir o RStudio, escrever código dplyr ou SQL, executar e, finalmente, obter a resposta. E se pudéssemos simplesmente perguntar isso aos nossos dados em português, diretamente no nosso dashboard Shiny?

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.