Gleam.br Wiki

ADR 0016: Diálogo Assíncrono entre Dois Modelos (Project Puck) | Wiki

Documentação de engenharia e especificações técnicas da Gleam-BR.

ADR 0016: Diálogo Assíncrono entre Dois Modelos (Project Puck)

  • *Status:* Proposto
  • *Data:* 4 de Junho, 2026

Contexto O ecossistema gleam-lang-br pretende ter uma memória semântica robusta e autônoma para os agentes de código. Modelos locais pequenos tendem a ter alucinações (confabulações) e "esquecimentos" durante o processamento de longos contextos.

Baseado na especificação *"Project Puck — Sleep-Time Memory Consolidation"* do ecossistema dmon-core, precisamos implementar um sistema de consolidação de memórias de longo-prazo assíncrono. O conceito chave é dividir a responsabilidade crítica em dois planos:

  • *Plano de Controle (Titania):* O determinismo. Engatilha o job noturno, possui o poder de escrita segura (o commit gate) e impõe os invariantes (grounding real).
  • *Plano de Raciocínio (Puck):* O poder dedutivo falível. Realiza a extração e sugere os vereditos de consolidação, usando um Diálogo Assíncrono e Assimétrico entre dois Agentes Locais (Narrator e Archivist).

O Narrator (Agente A) analisa apenas o contexto novo da sessão atual, argumentando por novidade. O Archivist (Agente B) não conhece a sessão nova, mas tem acesso a ferramentas de RAG na memória longa existente. Essa tensão (novidade vs continuidade) força os modelos a debater se um dado é Novo, Reforço, Contradição, Elo ou Descarte, superando o problema de consenso fraco em modelos únicos.

Decisão Adotar o modelo de *Titania e Puck* no coração do nosso Agente AI Gleam.

1. Motor de Processo Determinístico (gbr_bpm) O papel de Titania será roteado através de um processo BPMN executado pelo nosso pacote puro packages/gbr_bpm. O BPM define estritamente as etapas do pipeline offline: 1. Extrair sessões pendentes (Episódico) 2. Despachar um Puck 3. Receber Vereditos 4. O Gateway BPM ("Validar Invariantes") decidirá deterministicamente salvar no Banco de Conhecimento (Mnesia/Vector) ou descartar.

2. A Tensão Assimétrica Em vez de um Agente com LLM gigantesco rodando prompt de sumarize o que aconteceu, nosso servidor MCP implementará dois Agentes internos assíncronos: - *Narrador:* Recebe o buffer da Sessão do dia. - *Arquivista:* Configurado apenas com ferramentas de Search RAG. Um coordenador (ator em Gleam) atuará como juiz, guiando os turnos do diálogo até chegarem em um consenso tipado (o veredito).

3. Integração na BEAM Como Gleam e Erlang possuem suporte natural à comunicação concorrente distribuída baseada em Atores: - Puck pode rodar em workers paralelos. - O diálogo é trocado via mensagens de Atores. - O Gateway de Titania é imutável e transacional, protegendo o ETS/Mnesia de alucinações irreversíveis.

Consequências - *Positivas:* Resolve o problema crônico de corrupção do RAG. Um LLM nunca adicionará um "fato falso" na memória longa sem que o Arquivista concorde, e Titania valide as referências textuais de forma determinística em BPM. - *Negativas:* Exigirá rodar inferência dupla (duas vezes mais processamento/tokens), reforçando a necessidade da Token-Economia M2M. Reduziremos o custo rodando as rotinas offline (durante o sleep-time do Agente) com modelos locais menores.