MÓDULO 2.5

🗂️ RAG & Dados

A IA só responde sobre o que está ao alcance dela — o que entrou no contexto ou foi treinado. Para que o agente fale dos seus dados (políticas, FAQ, manuais), você precisa dar a ele memória e fontes confiáveis. É isso que o RAG (retrieval-augmented generation) faz: ele recupera o trecho certo dos seus documentos e o entrega ao agente antes de gerar a resposta. Sem fonte, a IA inventa ou erra; com RAG, ela responde ancorada no que é seu.

6
Tópicos
~45
Minutos
Inter.
Nível
Dados
Tipo
Progresso do módulo 0% · 0 de 6

RAG tem duas metades que vivem em fluxos separados. Uma prepara a base: você indexa os documentos (quebra em pedaços, vira números, guarda num vector store). A outra responde: a pergunta passa por um classificador que decide se vale a pena gastar o agente, o agente busca no vector store o trecho relevante e responde ancorado nesse trecho — e, quando não acha nada, ele cai num fallback honesto em vez de inventar.

Indexação — preparar a base (roda uma vez / ao atualizar) documentos indexadorpedaços + embeddings vector storememória de busca Consulta — responder ancorado (a cada pergunta) pergunta classificador 🤖 agenteconsulta o vector store resposta ancorada (achou trecho) fallback honesto (não achou)

Diagrama ilustrativo — a indexação (azul) é separada da consulta (ciano). O agente busca o trecho; quando nada é relevante, segue o ramo de fallback em vez de inventar.

1

❓ O problema: a IA não sabe o que não está no contexto

O que é

Um modelo de IA só responde sobre duas coisas: o que aprendeu no treinamento (conhecimento geral, com data de corte) e o que está no contexto daquela conversa (o que você colou ali). Ele não tem acesso mágico aos seus arquivos. Se você não colocar a política de troca, o FAQ ou o manual ao alcance dele, ele simplesmente não os conhece.

O que é?Contexto — a "janela" de texto que a IA enxerga numa conversa: instruções, mensagens e qualquer documento que você anexou. RAGretrieval-augmented generation: o padrão de buscar o trecho certo dos seus dados e injetá-lo no contexto antes de a IA gerar a resposta.

O perigo é sutil: sem a fonte ao alcance, a IA não fica em silêncio — ela tende a preencher a lacuna, inventando um prazo, um valor ou uma regra que parecem plausíveis. Isso é alucinação. O RAG existe justamente para fechar essa lacuna: em vez de torcer para o modelo "lembrar" da sua política, você garante que o texto da política esteja no contexto na hora certa. Esse é o porquê de tudo o que vem a seguir neste módulo.

Por que aprender

Quem entende esse limite para de cobrar o impossível da IA e passa a alimentá-la com a informação certa. Em vez de "por que ele não sabe a minha política?", a pergunta vira "como eu coloco a minha política ao alcance dele?".

  • Sem fonte, sem verdade: a IA não inventa de propósito — ela preenche lacunas.
  • Dados seus = ao alcance: políticas, FAQ e manuais precisam entrar no contexto.
  • Fundamento do RAG: recuperar a fonte é o que ancora a resposta.

Conceitos-chave

Janela limitada

A IA só vê o contexto.

Não conhece o seu

Seus arquivos não entram sozinhos.

Lacuna = invenção

Sem fonte, ela preenche.

RAG fecha a lacuna

Recupera e ancora a resposta.

2

⚖️ System prompt vs vector store (quando cada um)

O que é

Há duas formas de dar conhecimento ao agente. No system prompt, você cola o texto inteiro direto nas instruções — o jeito mais simples e barato, ótimo para um documento pequeno e estável. No vector store (RAG), o agente busca só as seções relevantes a cada pergunta — escalável, indicado quando a base é grande ou cresce.

O que é?System prompt — o bloco de instruções fixo que define como o agente age; cabe texto, mas ocupa contexto sempre. Vector store — um repositório que guarda seus documentos prontos para busca por significado; o agente puxa só o pedaço necessário.

Por que aprender

Escolher errado custa caro de dois jeitos. Se você joga uma base enorme no system prompt, gasta contexto em toda chamada (mais token, mais lento) e ainda esbarra no teto da janela quando a base cresce. Se você monta um vector store para um único parágrafo, adiciona complexidade sem ganho. A regra prática: documento pequeno e fixo → system prompt; base grande ou que cresce → vector store.

✓ Vector store (escolha para escala)

  • Busca só o trecho relevante — não carrega a base toda.
  • Escala: dá para crescer de 5 para 500 documentos.
  • Menor custo de contexto por pergunta.

✗ Tudo no system prompt (não escala)

  • Carrega o documento inteiro em toda chamada.
  • Custa contexto (token) mesmo no que não foi perguntado.
  • Limita o crescimento: estoura a janela quando a base cresce.

🎯 Dica prática

Comece pelo mais simples: se for um FAQ de um parágrafo, cole no system prompt e teste. Só migre para vector store quando a base passar a ter várias seções ou começar a crescer — não monte indexador para algo que cabe em três linhas.

Conceitos-chave

Prompt = simples

Texto direto, barato, pequeno.

Vector = escala

Busca o relevante, cresce bem.

Custo de contexto

Prompt cheio gasta token sempre.

Regra prática

Fixo e curto → prompt; grande → vector.

3

🧬 Embeddings & vector store em linguagem simples

O que é

Embedding é transformar um texto em números que capturam o significado. Frases parecidas em sentido viram conjuntos de números próximos, mesmo sem nenhuma palavra em comum. O vector store guarda esses números e, na hora da busca, encontra os trechos cujo significado mais se aproxima da pergunta — não por casar palavras exatas, mas por proximidade de sentido.

O que é?Embedding — uma lista de números (um "vetor") que representa o sentido de um texto. Busca por similaridade — achar os trechos cujos vetores estão mais perto do vetor da pergunta. Por isso "como devolvo um produto?" encontra um documento intitulado "Política de troca", mesmo sem a palavra "devolvo".

texto → embedding (significado em números) "como devolvo um produto?" [0.82, -0.13, 0.47, …] vetor da pergunta espaço de significado — quem está perto, casa pergunta "Política de troca" (perto = relevante) "Horário da loja" (longe)

Diagrama ilustrativo — a busca compara distâncias no espaço de significado. Os pontos perto da pergunta (azul) viram os trechos recuperados; os longe (cinza) são ignorados.

Por que aprender

Esse é o motor que faz a busca "entender" a pergunta. Sem embeddings, você dependeria de o usuário usar exatamente as mesmas palavras do documento — frágil e cheio de falhas. Com embeddings, "quero meu dinheiro de volta" encontra a "Política de reembolso" porque o sentido bate. Saber disso explica por que o vector store acha o trecho certo e por que, às vezes, ele erra (quando o significado realmente está distante).

Conceitos-chave

Significado → números

Embedding captura o sentido.

Perto = parecido

Distância mede similaridade.

Não é palavra exata

Busca por sentido, não por letra.

O motor da busca

É o que faz o RAG "entender".

4

📥 Indexador (trigger manual → docs → vector store)

O que é

O indexador é um fluxo separado do agente, que existe só para preencher o vector store. A sequência é: gatilho manualler os documentosdividir em pedaços (text splitter) → gerar embeddingspopular o vector store. Você roda esse fluxo uma vez para criar a base, e de novo sempre que os documentos mudarem.

O que é?Gatilho manual — você aperta "executar" quando quer; não roda sozinho. Text splitter — divide um documento longo em pedaços menores, do tamanho que a busca consegue comparar bem. Vector store em memória — uma versão que vive enquanto o fluxo está ativo; ótima para aprender e testar.

▶ gatilho manual ler documentos dividir em pedaçostext splitter gerar embeddings popular ovector store

Diagrama ilustrativo — o indexador é um fluxo de mão única que termina populando o vector store. Ele não responde perguntas; só prepara a base.

Por que aprender

Separar a indexação da consulta é o padrão de arquitetura do RAG. O indexador roda raramente (uma vez, ou quando a base muda); o agente roda a cada pergunta. Misturar os dois faria você re-indexar tudo a cada consulta — lento e caro. Entender essa separação é o que evita o erro mais comum: ativar o agente antes de a base existir.

🎯 Dica prática

Rode o indexador antes de ativar o agente — a base precisa estar populada para a busca achar qualquer coisa. Se usar vector store em memória, lembre: ao reiniciar o fluxo, a base some; rode o indexador de novo antes de testar.

Conceitos-chave

Fluxo separado

Indexar ≠ consultar.

Dividir em pedaços

Text splitter prepara a busca.

Roda raramente

Uma vez ou ao atualizar.

Termina no store

A saída é a base populada.

5

🚏 Classifier — rotear antes de gastar o agente

O que é

O classificador de texto é um nó que decide cedo, logo na entrada, se a mensagem é relevante (ex.: "é uma pergunta de suporte?" vs "é spam / fora do escopo?") e roteia de acordo. Só o que importa segue para o agente caro; o resto é parado ou tratado de forma barata antes de gastar o modelo.

O que é?Classificar — encaixar a entrada numa categoria ("suporte", "vendas", "fora do escopo"). Rotear — mandar cada categoria para um caminho diferente do fluxo. Triagem — esse filtro barato na entrada, antes do trabalho pesado.

entrada classificadorrelevante? relevante 🤖 agente (caro)busca no vector store responde ancorado fora do escopo para (não gasta o agente)

Diagrama ilustrativo — a triagem barata decide o destino. Só o caminho "relevante" (ciano) chega ao agente caro; o resto para antes, economizando token.

Por que aprender

Uma triagem barata antes do agente economiza token e evita respostas fora do escopo. Sem o classificador, toda mensagem — inclusive spam e assuntos que nem são seus — aciona o agente caro, que gasta contexto e ainda pode tentar responder algo que não deveria. Com ele, você gasta o modelo só onde vale a pena e mantém o agente dentro do escopo combinado.

Conceitos-chave

Decide cedo

Triagem na entrada.

Roteia

Cada categoria, um caminho.

Economiza token

Só o relevante gasta o agente.

Dentro do escopo

Barra o fora de assunto.

6

🎯 Confidence score & fallback (não inventar)

O que é

O agente emite um marcador de confiança junto da resposta — por exemplo, alta (>0,8) / média (0,6–0,8) / baixa (<0,6), ou ainda um rótulo simples como "política encontrada" / "nenhuma política encontrada". Um nó de código lê esse marcador e um nó IF ramifica: quando há trecho relevante, segue o rascunho da resposta; quando não há, cai num fallback educado ("vamos pesquisar e retornamos") em vez de alucinar.

O que é?Confidence score — uma nota que o agente dá indicando o quanto a resposta está apoiada na fonte. Fallback — o caminho alternativo, honesto, para quando não há base suficiente. Nó IF — a bifurcação que escolhe entre "responder" e "fallback".

🤖 agentebusca + nota de confiança IF (confiança)achou trecho? sim (alta) rascunhar resposta ancoradacitando a fonte não (baixa) fallback honesto"vamos pesquisar e retornamos"

Diagrama ilustrativo — a bifurcação por confiança. O ramo de baixa confiança (vermelho) não é um erro: é o agente se recusando a inventar.

Por que aprender

Um agente que recusa inventar é um resultado desejado, não um bug. Quando ele cai no fallback porque não achou a política, ele está sendo honesto — preferível, e muito, a entregar um prazo ou valor inventado que pode gerar prejuízo e quebra de confiança. O marcador de confiança é o que torna esse comportamento controlável: você define o limiar e decide, em código, quando responder e quando recuar.

✓ Recusar inventar (fallback honesto)

  • Sem trecho relevante → "não temos isso aqui; vamos pesquisar e retornamos".
  • Confiança baixa dispara o fallback automaticamente.
  • Comportamento previsível e auditável (você vê a nota).

✗ Alucinar uma resposta

  • Inventar um prazo ou valor que "parece certo".
  • Responder com confiança mesmo sem fonte no store.
  • Tratar o "não sei" do agente como defeito a ser removido.

A sequência de construção do RAG

  1. 1
    Índice — rode o indexador (docs → pedaços → embeddings → vector store) e confirme que a base está populada.
  2. 2
    Classifier — coloque a triagem na entrada para barrar o que é fora do escopo antes do agente.
  3. 3
    Agente com tool de vector store — o agente consulta a base e responde ancorado no trecho recuperado.
  4. 4
    Fallback — leia a confiança, ramifique no IF e, sem trecho relevante, responda com o fallback honesto.

🎯 Objetivo: montar a base de conhecimento (indexador) e o agente que a consulta

prompt (copie e rode)
crie um indexador (trigger manual → ler <meus-documentos> → dividir em pedaços → embeddings → vector store)
e um agente que classifica a pergunta, busca no vector store e, se não achar nada relevante,
responde com um fallback honesto em vez de inventar.

✅ Como verificar: rode o indexador uma vez; faça uma pergunta fora de escopo e confirme que o agente cai no fallback (não alucina).

🧩 Pseudocódigo: ler o marcador de confiança e ramificar no IF

nó de código → nó IF
confianca = ler_marcador(resposta_do_agente)   // ex.: 0.42

se confianca < 0.6:
    rota = "preciso pesquisar"                  // fallback honesto
senão:
    rota = "rascunhar resposta"                 // responder ancorado

// o nó IF usa "rota" para escolher o caminho do fluxo

✅ Como verificar: force uma confiança baixa (pergunta sem fonte) e confirme que "rota" vira "preciso pesquisar".

🎯 Dica prática

Teste com uma pergunta fora de escopo e confirme que o agente não inventa — ele deve cair no fallback. Esse teste de "pergunta sem fonte" é a melhor prova de que o seu RAG está honesto.

Conceitos-chave

Nota de confiança

Alta / média / baixa.

Código lê o marcador

Faz o parse do score.

IF ramifica

Responder ou fallback.

Recusar = desejado

"Não sei" não é bug.

Fechando o módulo: o que um bom agente RAG faz quando a busca não encontra nada relevante?

📌 Resumo do Módulo

A IA só vê o contexto — sem a fonte ao alcance, ela inventa; RAG existe para fechar essa lacuna.
System prompt vs vector store — fixo e curto → prompt; grande ou que cresce → vector store (escala, menor custo de contexto).
Embeddings — significado virado número; a busca acha por proximidade de sentido, não por palavra exata.
Indexador — fluxo separado (trigger → docs → pedaços → embeddings → store); roda antes do agente.
Classifier — triagem barata na entrada; só o relevante chega ao agente caro.
Confidence & fallback — sem trecho relevante, o agente recusa inventar e cai no fallback honesto. Isso é desejado.

Próximo Módulo:

Trilha 3 — Prompts & Padrões de Conversa