[ADR-0008] Arquitetura de RAG Híbrido (Síntese de AST + Context Forcing) | Wiki
Documentação de engenharia e especificações técnicas da Gleam-BR.
[ADR-0008] Arquitetura de RAG Híbrido (Síntese de AST + Context Forcing)
- *Status:* Proposto = *Data:* 16 de Maio, 2026
*Contexto:*
Modelos de Linguagem (LLMs) carecem de treinamento profundo na linguagem Gleam, resultando em alucinações sintáticas. A indexação de código-fonte bruto (usando recortes textuais genéricos) cria "lixo semântico", pois modelos de Embedding (como o all-MiniLM) são treinados em linguagem natural, não em concatenações de tokens como import_gleam_otp_actor. Injetar código irrelevante no prompt do LLM exaure a janela de contexto e aumenta custos.
*Decisão:*
A Fase 2 (gbr_semantic) adotará uma arquitetura de "RAG Híbrido com Tradução Semântica", operando em três etapas:
-
*Extração Cirúrgica (AST):* A biblioteca
glancedividirá os arquivos.gleamestritamente em funções, tipos e importações. -
*Tradução Semântica (A Ponte):* Antes da vetorização, a assinatura de cada nó da AST será convertida programaticamente em uma sentença em linguagem natural (Inglês). Exemplo: Uma função
start_child(factory)será mapeada para a string "Function start_child: Initializes a new actor process using a given factory." -
*Context Forcing (MCP):* O vetor será gerado a partir da frase em inglês, mas o DuckDB armazenará o código Gleam real nos metadados. O
gleambr_aiserá instruído (via System Prompt) a nunca escrever Gleam de memória, sendo forçado a chamar a ferramenta MCPsearch_semantic_codebase, que retornará os blocos de código exatos da AST para o contexto da conversa.
*Consequências:*
- *Positivas:* Redução drástica de alucinações; o espaço vetorial fica matematicamente denso e preciso (buscas em inglês acham o código Gleam correto); uso eficiente de tokens (apenas o código necessário é injetado).
- *Negativas:* Exige o mapeamento de templates de tradução para cada nó da AST do Gleam no momento da indexação.
Melhoria v2
-
*Decisão:* A indexação de código (AST via
glance) será enriquecida usando o *Gleam LSP* em background (para inferência de tipos e definições de hover). A "Tradução Semântica" extrairá a documentação real (///) e usará LLMs menores em fallback para gerar resumos de funções não documentadas. A injeção na IA será feita via *Context Forcing* (a IA é proibida de codificar sem consultar o motor semântico via MCP, poupando tokens de contexto massivo).