GBR: ADR-0012 Fechamento do Loop Cognitivo e Feedback P2P Assíncrono** | Wiki
Documentação de engenharia e especificações técnicas da Gleam-BR.
GBR: ADR-0012 Fechamento do Loop Cognitivo e Feedback P2P Assíncrono**
- *Status:* Aceito
- *Data:* 2026-05-01
*Contexto:*
A infraestrutura do ecossistema Gleam-BR atingiu a maturidade no Anel 6.1, sendo capaz de estabelecer túneis Yamux/Noise e despachar comandos JSON-RPC para execução remota de ferramentas. No entanto, o retorno desta execução no Nó remoto era descartado (através do dummy_handler) ou absorvido por um mock síncrono no oracle.gleam. Para que o Agente IA seja verdadeiramente autônomo, ele precisa receber a prova física da execução, interpretá-la e comunicar o resultado ao usuário em linguagem natural.
*Decisão:*
-
**Ator Listener Efêmero (
mcp_listener.gleam):** Implementação de um manipulador de fluxo OTP temporário. Este Ator é instanciado no momento do despacho da ferramenta, escuta exclusivamente a resposta do stream Yamux, decodifica o protocolo JSON-RPC 2.0 e injeta oresultde volta na caixa de mensagens do Agente Principal (ToolExecutionFeedback) antes de se autodestruir. -
**Promoção do Oráculo a Ator Reativo (
DirectPrompt):** O módulooracle.gleamfoi refatorado para aceitar consultas diretas através da mensagemDirectPrompt. Em vez de apenas simular fluxos BPMN, o Oráculo agora executa a inferência real via motorgbr_llm(Candle/Rust) e devolve a síntese textual para o Agente. -
*Padrão 'Fire-and-Forget' no Loop do Agente:* As funções de processamento (
process_feedbackeprocess_full_query) agora operam de forma totalmente assíncrona. O Agente despacha a requisição ao Oráculo e transiciona imediatamente para o estadoIdle, liberando a CLI para interações do usuário enquanto a inferência pesada ocorre em Dirty Schedulers.
*Consequências:*
- *Positivas:* Eliminação completa de bloqueios na interface de usuário (REPL) durante a inferência. Criação de uma "Memória de Curto Prazo" onde a IA reage a sucessos e falhas remotas, permitindo o raciocínio encadeado (Agentic Loop).
-
*Negativas/Riscos:* Aumenta a complexidade da gestão de estados concorrentes. Se o Oráculo demorar muito na síntese, o usuário pode enviar novos comandos, exigindo que a FSM lide com mensagens de "raciocínio antigo" chegando fora de ordem (Mitigado pela tipagem de
Subjecttemporários para cada prompt).