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

O que é GraphRAG e implementar usando LangChain

GraphRAG é uma técnica de recuperação de informação para LLMs que utiliza grafos de conhecimento para conectar entidades e relações, permitindo estruturar informações complexas presentes em textos. Neste exercício, mostramos como transformar as atas do Copom em um grafo capaz de compreender essas entidades e relações, respondendo a perguntas complexas de forma contextualizada. Com Python e LangChain, todo o processo se torna automatizado, simples e altamente explorável.

Shiny + Agentes de IA: como criar aplicativos web inteligentes

A combinação de interfaces de usuário interativas com o poder dos grandes modelos de linguagem (LLMs) está abrindo um universo de possibilidades. Imagine criar um aplicativo web que não apenas exibe dados, mas também conversa com o usuário, respondendo a perguntas complexas com base em uma base de conhecimento específica. Usando Shiny para Python e ferramentas de IA como as do Google, isso é mais acessível do que nunca.

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.