Chega de teoria. Peguei dados reais de um projeto em produção, medi qualidade de resposta, latência e custo por prompt em quatro cenários (ES, Vectorizer, Neo4j e Híbrido) e em cinco prompts críticos (HNSW, MCP, compactação de storage, configuração e testes). A conclusão é objetiva: híbrido vence sempre — e não por pouco.

Relatórios

EXPANDED ANALYSIS: 5 DIFFERENT PROMPTS: https://github.com/hivellm/vectorizer/blob/1.2.0-rc1/docs/EXTENDED_5_PROMPTS_ANALYSIS.md

COMPARATIVE ANALYSIS: PROMPT QUALITY FOR REASONING: https://github.com/hivellm/vectorizer/blob/1.2.0-rc1/docs/HYBRID_SEARCH_QUALITY_ANALYSIS.md

Ferramentas usadas no teste

Metodologia (seca e direta)

  • Fontes:

    • Elasticsearch: summaries, keywords, alta cobertura.

    • Vectorizer MCP: chunks de código com alta precisão.

    • Neo4j: grafo com Functions/Classes/Modules/APIs e relacionamentos.

  • Métrica: “Qualidade final” (correção + completude + utilidade), tokens no prompt, latência end-to-end.

  • Ambiente: mesmo corpus, queries idênticas, avaliações lado a lado.

O que cada banco entrega (sem romantizar)

  • Elasticsearch: acha o arquivo certo (ex.: HNSW, MCP, storage). Perfeito para descoberta ampla e testes de integração. Perde em precisão cirúrgica.

  • Vectorizer: acha o código exato no chunk certo (config, testes). É a lâmina que corta ruído. Pode ficar “míope” sem contexto.

  • Neo4j: dá mapa da arquitetura (funções, classes, módulos, APIs, dependências). Não responde “como” sozinho, mas remove ambiguidade.

Resultados que importam

Cenários (um prompt técnico, múltiplas fontes)

  • Banco único: 60–85% de acerto dependendo do tema.

  • Híbrido (3 bancos): 95–98% de qualidade consistente, combinando arquivo certo (ES) + código exato (Vectorizer) + estrutura/relacionamentos (Neo4j).

Cinco prompts (pacote completo)

  • HNSW search: ES vence (arquivo perfeito), Neo4j traz funções de conversão; híbrido fica topo absoluto.

  • Integração MCP: ES encontra testes; Neo4j mapeia APIs e dependências; híbrido entrega resposta pronta de doc.

  • Compactação de storage: ES acha storage/compact.rs; MCP confirma persistence wrapper; Neo4j fecha módulo/reader/writer → zero adivinhação.

  • Configurações: ES falha (0 hits); MCP acha enhanced_config.rs; Neo4j lista classes de config → cobertura total.

  • Como escrever testes: MCP domina (arquivo de testes completo); híbrido contextualiza demais (sem desperdício).

Custo x benefício

  • Híbrido150 ms e ~4K tokens.

  • Ganho: de ~60–85% (banco único) para 95–98%. 2× custo → 10× qualidade → 5× ROI.

Padrão arquitetural

  1. Descoberta (ES) → pega o escopo certo e poda ruído grosso.

  2. Código (Vectorizer) → insere chunks exatos para o “como”.

  3. Estrutura (Neo4j) → injeta grafo de relações para não errar arquitetura/nomes/módulos.

  4. Prompt Builder (determinístico): junta [estrutura + arquivo + chunk] em camadas, com orçamento de tokens controlado.

Evidências-chave

  • Híbrido atingiu ~95% (tabela geral) e até 98% com tripla validação.

  • ES ganhou 3/5 prompts em descoberta (HNSW, MCP, storage). MCP ganhou onde código era o foco (config, testes). Neo4j subiu a régua de clareza estrutural e virou peça obrigatória.

O que matar agora

  • RAG “simples” baseado só em similaridade → aposente. É loteria cara.

  • Prompts gigantes sem curadoriacorte; invista no prompt builder por camadas (ES → Vectorizer→ Neo4j).

Conclusão

Quer resposta certa em cenário crítico? Pare de brincar de banco único. O stack híbrido muda o jogo porque elimina adivinhação:

  • ES descobre;

  • Vectorizer prova;

  • Neo4j explica.

O resto é custo de oportunidade.

Produção pede precisão. Híbrido entrega.