Pular para o conteúdo
fernando.moretes.com
BlogEstudosCursosE-booksOpen SourcePodcasts
Loading…
Fernando Azevedo

Arquiteto de TI Especialista

Arquitetura, AWS, IA em produção, sistemas financeiros e FinOps, escritos a partir do que foi operado, com os números.

  • LinkedIn
  • GitHub
  • E-mail

Conteúdo

  • Blog
  • Estudos de arquitetura
  • Cursos
  • E-books
  • Open Source
  • Podcasts
  • Assuntos
  • Trilhas

Ferramentas

  • Well-Architected self-check
  • Arquitetura deste site
  • Números públicos
  • Histórico de estudo

Sobre

  • Comunidade
  • IA Builder
  • Perfil
  • Currículo (CV)
  • Trabalhe comigo
  • Media kit
  • RSS do blog
  • RSS dos estudos
  • Artigos narrados (podcast)
  • llms.txt
  • Termos, privacidade e uso de IA

(c) 2026 Fernando Francisco Azevedo

RAG de Produção na AWS/RAG avançado e agêntico
Módulo 2 · Recuperação· Aula 07/12

RAG avançado e agêntico

Query rewriting, HyDE, multi-query e quando o agente decide como recuperar.

6 min de leitura

Escolha como aprender

combine como quiser

Dica: o vídeo é um resumo visual rápido; o áudio e o texto trazem a aula completa. Terminar o áudio ou o vídeo, ou passar no quiz, já conta a aula como concluída.

Assista a esta aula
Narrado por Fernando AzevedoMP4PDF
Ouça esta aula
0:0011:47
Velocidade
Baixar

RAG básico funciona bem quando o usuário sabe exatamente o que quer e escreve isso de forma limpa. Na prática, isso raramente acontece. Perguntas são vagas, incompletas ou mal formuladas, e o pipeline ingênuo devolve lixo com confiança. As técnicas desta lição existem para resolver exatamente esse problema: deixar a recuperação mais robusta antes mesmo de o LLM gerar a resposta final.

Reescrita de query: consertar a pergunta antes de buscar

O usuário digita: "e o prazo?". Sem contexto, esse fragmento não encontra nada útil no índice vetorial. A reescrita de query usa um LLM para transformar a pergunta original em algo que o sistema de busca consegue processar bem.

A ideia é simples: antes de ir ao vector store, você passa a query por um prompt que pede ao modelo para reescrevê-la de forma mais explícita, completa e desambiguada. Se houver histórico de conversa, ele é incluído no contexto, o modelo infere que "o prazo" se refere ao contrato discutido dois turnos atrás e gera "qual é o prazo de entrega previsto no contrato de fornecimento mencionado?".

Na AWS, isso pode ser uma chamada InvokeModel ao Bedrock (Claude Haiku ou Titan Text Lite são baratos o suficiente para esse passo) antes de consultar o OpenSearch ou o Knowledge Bases. O custo extra é baixo; o ganho de precisão costuma ser alto.

Um cuidado: reescrita pode alterar a intenção se o prompt não for cuidadoso. Teste com exemplos reais do seu domínio. Se o modelo estiver reescrevendo demais, adicionando suposições que o usuário não fez, reduza a temperatura e seja mais diretivo no prompt de reescrita.

Multi-query e HyDE: atacar o índice de ângulos diferentes

Multi-query é a ideia de que uma pergunta pode ser reformulada de várias formas legítimas, e cada formulação pode recuperar chunks diferentes. Você pede ao LLM para gerar N variações da query original (tipicamente 3 a 5), executa cada uma no vector store em paralelo, une os resultados e remove duplicatas. O reranker da lição 05 entra aqui para ordenar o conjunto final antes de enviar ao LLM.

O ganho é real: variações capturam sinônimos, perspectivas e níveis de abstração que a query original não cobria. O custo é proporcional ao número de buscas, planeje isso.

HyDE (Hypothetical Document Embeddings) é mais elegante e um pouco contraintuitivo. Em vez de buscar pela pergunta, você pede ao LLM para inventar uma resposta hipotética plausível, sem acesso ao índice, só com o conhecimento paramétrico do modelo. Depois, você embute essa resposta hipotética e usa o vetor dela para buscar no índice.

A intuição: documentos reais se parecem mais com outros documentos do que com perguntas. O embedding de uma resposta hipotética fica mais próximo dos chunks relevantes no espaço vetorial do que o embedding da pergunta original. Funciona especialmente bem quando o vocabulário da pergunta difere muito do vocabulário dos documentos, por exemplo, perguntas coloquiais sobre documentos técnicos.

FA
Na prática: quando cada técnica vale a pena
Arquiteto de TI Especialista

Na prática, reescrita de query é quase sempre vale, o custo é mínimo e o ganho em conversas multi-turno é imediato. Multi-query eu uso quando o domínio tem vocabulário rico e inconsistente (ex.: documentos jurídicos ou médicos com muitos sinônimos). HyDE eu reservo para casos onde a query do usuário é muito curta ou coloquial e os documentos são densos e técnicos, é a técnica com maior potencial de ganho, mas também a mais sensível à qualidade do LLM hipotético. Se o modelo alucinar na resposta hipotética, o vetor gerado vai buscar lixo com precisão cirúrgica.

Loop do RAG Agêntico: decidir → buscar → avaliar → responder

O agente controla o loop: decide se precisa buscar, qual ferramenta usar, avalia se os chunks recuperados são suficientes e repete se necessário, antes de gerar a resposta final.

🧠 Agente: Raciocínio
  • Agente LLM · Raciocínio + Planejamento
  • Decidir · Buscar? Qual fonte?
  • Avaliar chunks · Suficientes? Relevantes?
🔍 Ferramentas de Recuperação
  • Reescrita / Multi-query · Query transformation
  • Vector Store · OpenSearch / KB
  • Reranker · Ordenar chunks
📤 Saída
  • Resposta Final · com citações

RAG agêntico: quando o sistema decide como recuperar

Nas técnicas anteriores, o pipeline ainda é fixo: query entra, chunks saem, LLM gera. O RAG agêntico quebra esse fluxo linear. Aqui, um agente LLM recebe a pergunta e decide o que fazer: buscar agora? Em qual fonte? Com qual estratégia? Os chunks recuperados são suficientes ou precisa de mais uma rodada?

O diagrama acima mostra o loop central: o agente raciocina, decide buscar, transforma a query, recupera, avalia a qualidade dos chunks e só então gera, ou repete o ciclo se os resultados forem insuficientes.

Isso habilita comportamentos que o RAG linear não consegue:

  • Perguntas compostas: "compare a política de reembolso dos planos A e B", o agente faz duas buscas separadas e sintetiza.
  • Refinamento iterativo: se os primeiros chunks não cobrem a pergunta, o agente reformula e busca de novo.
  • Roteamento de fonte: o agente escolhe entre buscar no vector store, chamar uma API externa ou usar conhecimento paramétrico direto.

Na AWS, isso se implementa com Bedrock Agents: você registra as ferramentas de busca como action groups, e o modelo (Claude, por padrão) decide quando e como chamá-las. A lição 09 entra em detalhe sobre Knowledge Bases integradas a agentes. A lição 07 aqui cobre o raciocínio por trás do loop; a implementação concreta vem depois.

O ponto crítico: agentes adicionam latência e custo por design. Cada iteração do loop é uma chamada ao LLM. Para perguntas simples e diretas, RAG linear com boa reescrita de query é mais rápido, mais barato e igualmente eficaz.

Técnicas avançadas de recuperação: comparação rápida

TécnicaQuando usarCusto extraRisco principal
Reescrita de queryConversas multi-turno, queries vagasBaixo (1 chamada LLM leve)Alteração de intenção se prompt ruim
Multi-queryDomínio com vocabulário rico e inconsistenteMédio (N buscas paralelas)Ruído se variações forem irrelevantes
HyDEQueries coloquiais, docs técnicos densosMédio (1 geração + 1 embedding)Alucinação na resposta hipotética
RAG AgênticoPerguntas compostas, múltiplas fontes, refinamento iterativoAlto (múltiplas chamadas LLM)Latência e custo imprevisíveis sem limites de loop
Ligar

Técnicas de recuperação avançada

Toque num conceito e depois na definição.

O que levar desta lição

Reescrita de query é a melhoria com melhor custo-benefício: uma chamada leve ao LLM antes da busca resolve a maioria dos problemas de queries vagas ou incompletas.
Multi-query gera variações da pergunta e une os resultados, útil quando o vocabulário do usuário e dos documentos são diferentes.
HyDE inverte a lógica: gera uma resposta hipotética e busca por ela, porque documentos se parecem mais com documentos do que com perguntas no espaço vetorial.
RAG agêntico dá ao LLM controle sobre o loop de recuperação, quando buscar, em qual fonte, quantas vezes. Habilita perguntas compostas e refinamento iterativo.
Complexidade tem custo real: cada técnica adiciona latência e/ou custo. Use a mais simples que resolve o seu problema.
Em RAG agêntico, sempre defina um limite máximo de iterações do loop, sem isso, uma pergunta ambígua pode virar uma conta de API inesperada.

Como introduzir técnicas avançadas de forma incremental

  1. 1

    Comece com RAG linear e meça

    Antes de adicionar qualquer técnica avançada, estabeleça uma baseline de avaliação (faithfulness, relevância, lição 08). Você precisa saber o que está melhorando.

  2. 2

    Adicione reescrita de query primeiro

    É a técnica de menor risco e maior retorno imediato. Implemente como um passo de pré-processamento antes da chamada ao vector store. Meça o impacto nas suas métricas de avaliação.

  3. 3

    Experimente multi-query se o vocabulário for o problema

    Se a análise de falhas mostrar que o sistema não encontra chunks relevantes porque o usuário usa termos diferentes dos documentos, multi-query é o próximo passo natural.

  4. 4

    Considere HyDE para queries muito curtas ou coloquiais

    Teste HyDE em um subconjunto do seu dataset de avaliação. Compare precision@k antes e depois. Se não houver ganho mensurável, não adicione a complexidade.

  5. 5

    Migre para RAG agêntico apenas quando o pipeline linear não for suficiente

    Perguntas compostas, múltiplas fontes e refinamento iterativo são os sinais claros. Implemente com Bedrock Agents, defina limites de loop e monitore custo por sessão desde o dia um.

Perguntas frequentes

HyDE não vai alucinar e trazer chunks errados?

Pode sim. A resposta hipotética não precisa ser factualmente correta, ela só precisa estar no mesmo espaço semântico dos documentos relevantes. Mas se o modelo alucinar de forma selvagem (inventar termos, conceitos ou entidades que não existem nos documentos), o vetor gerado vai buscar lixo. Por isso HyDE funciona melhor em domínios onde o LLM tem algum conhecimento paramétrico do assunto, mesmo que incompleto.

Posso combinar reescrita + multi-query + reranker?

Sim, e é uma combinação comum em produção. A ordem natural é: reescrita → multi-query → busca paralela → merge → reranker → LLM. O reranker é especialmente valioso aqui porque o conjunto de chunks merged pode ser grande e ruidoso.

RAG agêntico com Bedrock Agents tem suporte nativo a Knowledge Bases?

Sim. Você pode associar um Knowledge Base diretamente a um Bedrock Agent como fonte de conhecimento. O agente decide automaticamente quando consultar o KB com base no raciocínio do modelo. A lição 09 cobre isso em detalhe.

Como evitar loops infinitos em RAG agêntico?

Defina explicitamente um max_iterations no seu agente. No Bedrock Agents, isso é configurável. Além disso, monitore o número médio de iterações por sessão, se estiver crescendo, o agente está tendo dificuldade em satisfazer as perguntas e você precisa revisar as ferramentas disponíveis ou o prompt do sistema.

Referências

Amazon Bedrock Agents: Developer GuideAmazon Bedrock Knowledge Bases: OverviewHyDE: Precise Zero-Shot Dense Retrieval without Relevance Labels (Gao et al., 2022)LangChain: Multi-Query RetrieverAmazon Bedrock User Guide: Augment response generation for your agent with a knowledge base
Concluir e ir para a próxima Aula anterior