Skip to content
RAG Conectado (Connected RAG)

RAG Conectado (Connected RAG)

PT | EN

Você já perguntou a um agente de IA sobre uma função no seu projeto e ele respondeu algo que parecia certo, mas que ignorava completamente como aquela função era usada no resto do sistema? Isso é o sintoma clássico do RAG fragmentado.

O que é RAG?

RAG (Retrieval-Augmented Generation) é a técnica de fornecer dados externos (como seus arquivos de código) para um LLM no momento da pergunta. Em vez de o modelo “adivinhar” baseado no que aprendeu no treino, ele consulta seus documentos e responde baseado neles.

Query ("Como authenticar?")
Retrieval (Busca em codebase)
Augmentation (Enriquece prompt)
Generation (LLM responde com contexto)

Parece perfeito, certo? Mas para código, o RAG comum é perigoso.

O Problema: RAG Tradicional vs Código

AspectoRAG TradicionalProblema para Código
BuscaSimilaridade semânticaIgnora dependências implícitas
ContextoFragmentos isoladosSem visão de fluxo de dados
Resultado“5 blocos de texto”LLM não vê padrões arquiteturais
UsoDocumentação, artigosNão funciona para código

Exemplo Real:

Busca: “Como faço login?”

RAG Tradicional retorna:

// Trecho 1: loginUser function
async function loginUser(email, password) {
  const user = await db.findUser(email);
  // ... código de validação
}

Mas não retorna:

  • O middleware de autenticação que chama loginUser
  • A interface User que define os tipos
  • A configuração de JWT que usa as credenciais
  • Os testes que mostram o comportamento esperado

Resultado: LLM responde incompleto ou incorreto.

A Solução: RAG Conectado (Context Engine)

No Vectora, o RAG não é apenas “buscar texto”. Ele funciona através de um Context Engine que entende a estrutura:

1. Busca Multimodal

Combina 3 estratégias:

Query: "Como validar JWT?"
├─ Embeddings (Voyage 4) → "validateToken function"
├─ AST Analysis (Estrutural) → "imports de jwt, configuração"
└─ Grep (Keywords) → "JWT_SECRET, token validation"
Combine results → Top-5 chunks estruturados

2. Multi-hop Reasoning

O motor não faz só uma busca:

1. Busca inicial: "validateToken" → encontra src/auth/jwt.ts
2. Análise: Vê que chama "decode(token)"
3. Salto 1: Busca "decode" → encontra lib crypto
4. Análise: Vê uso de JWT_SECRET
5. Salto 2: Busca "JWT_SECRET" → encontra config.ts
Resultado: Token validado → Estrutura completa

3. Composição Estruturada

O contexto retornado não é lista de strings:

{
  "main_file": "src/auth/jwt.ts",
  "functions": ["validateToken", "refreshToken"],
  "dependencies": [
    { "file": "src/config.ts", "why": "Provides JWT_SECRET" },
    { "file": "src/models/User.ts", "why": "Defines User type" }
  ],
  "tests": ["spec/jwt.test.ts (8 tests)"],
  "usage_locations": [{ "file": "src/middleware/auth.ts", "line": 34 }]
}

Por que isso importa?

Quando o contexto é conectado:

MétricaRAG TradicionalRAG Conectado
AlucinaçõesAlto (30%+)Baixo (<5%)
Quebra de sistemaFrequenteRaro
Tokens gastosAlto (dump arquivo)Otimizado (cirúrgico)
Tempo respostaInconsistentePrevisível <300ms

Exemplo Comparativo

Cenário: Refatorar autenticação

RAG Tradicional:

  • “Mude de JWT para OAuth2”
  • LLM não vê que a mudança quebra 47 places
  • Resultado: Sistema quebra em produção

RAG Conectado (Vectora):

  • Busca “authenticação”
  • Retorna: auth middleware (3 places), JWT validation (47 places), config (1 place)
  • LLM vê contexto completo
  • Resultado: Refactoring correto, sem quebras

Próximos Passos


RAG Conectado é o diferencial do Vectora para código.

External Linking

ConceptResourceLink
RAGRetrieval-Augmented Generation for Knowledge-Intensive NLParxiv.org/abs/2005.11401
JWTRFC 7519: JSON Web Token Standarddatatracker.ietf.org/doc/html/rfc7519
AST ParsingTree-sitter Official Documentationtree-sitter.github.io/tree-sitter/
MCPModel Context Protocol Specificationmodelcontextprotocol.io/specification
MCP Go SDKGo SDK for MCP (mark3labs)github.com/mark3labs/mcp-go
Voyage EmbeddingsVoyage Embeddings Documentationdocs.voyageai.com/docs/embeddings

Parte do ecossistema Vectora · Open Source (MIT) · Contribuidores