Self-distilling swarm intelligence with epistemic memory
Seis modelos pequenos dividem um trabalho que normalmente se dá a um modelo grande. Nenhum deles coordena os outros.
A coordenação é estigmérgica: cada agente lê e escreve numa memória epistêmica compartilhada, e o rastro que ele deixa lá é o que orienta o próximo. É o mesmo mecanismo de um formigueiro — o comportamento coletivo mora no ambiente, não num chefe.
Princípio arquitetural
Cada modelo recebe exatamente a capacidade que sua tarefa exige — nem mais, nem menos. Um 1.5B faz autocomplete na IDE porque autocomplete precisa de velocidade, não de raciocínio. O orçamento abaixo é o de uma máquina real: um notebook de 24 GB, com o enxame local inteiro rodando e sobrando espaço para trabalhar.
FIM / autocomplete na IDE. Mais de 100 tok/s. Não orquestra nada.
Orquestrador do Scout: tool calling, MCP, compreensão de contexto.
Extração de JSON determinística, fiel ao schema. Treinado sinteticamente para isso.
Sistema, Docker, IDE, Node — a máquina continua sendo uma máquina de trabalho.
Fora do notebook, uma VPS 24/7 segura as duas cargas que não cabem em RAM de laptop: qwen3-embedding 8B gera os vetores multilíngues da busca por similaridade, e deepseek-r1:14b roda o dreaming loop — o raciocínio assíncrono que relê a memória, julga contradições e reforça o que se sustenta.
Pipeline do Scout
Pedir raciocínio e JSON exato ao mesmo modelo pequeno é onde a maioria das arquiteturas quebra. O Scout separa: um modelo pensa, outro estrutura.
Acurácia estrutural. Dois terços das saídas chegam ao banco malformadas ou incompletas.
Acurácia estrutural. E o Phi-4-Mini fica livre para fazer o que faz bem: raciocinar.
texto bruto → phi4-mini (raciocínio) → nuextract (JSON determinístico) → memory api (observação pendente)
Substrate API
Agente nenhum chama outro agente. Todos falam com a memória — e é por isso que dá para trocar, somar ou desligar um modelo sem reescrever o enxame.
| Endpoint | Método | Quem usa, e para quê |
|---|---|---|
/memory/observe | POST | O Scout deposita uma observação bruta. |
/memory/pending | GET | O Filter busca o que ainda não foi julgado. |
/memory/verify | POST | O Filter promove a observação a fato verificado. |
/memory/search | POST | O Synthesizer faz busca vetorial por similaridade. |
/swarm/state | GET | Estado de coordenação: quem está vivo, o que está em voo. |
/health | GET | Health check. |
O que já está de pé
Cada sprint depende do anterior — a numeração aqui é a dependência, não enfeite.
Scout, Memory API e banco de pé. O enxame passa a ter onde deixar rastro.
Leitura dos papers derrubou o desenho de um modelo só: entra o par Phi-4-Mini + NuExtract.
Validado E2E na VPS, com embeddings reais do qwen3-embedding — 2048 dimensões via MRL.
Corroboração reforça o fato; o dreaming julga contradições. Mais corroborado vence, empate vai para o mais recente.
Heartbeat de presença, filter daemon em --loop, e medição de latência e fidelidade numérica no pipeline.
Rodar
O enxame local sobe inteiro num notebook. A VPS é opcional — sem ela você perde o dreaming loop e a busca vetorial, não o Scout.
# 1 · modelos locais ollama pull phi4-mini ollama pull nuextract ollama pull qwen2.5-coder:1.5b # 2 · banco + Substrate API docker compose up -d # 3 · uma observação entra na memória python -m agents.scout --input "Texto para analisar"Ler o código no GitHub