SEM-Swarm enxame ativo modelos 6 orquestrador central nenhum sprint 3 / 3 ROI Labs · pesquisa

Self-distilling swarm intelligence with epistemic memory

Um enxame sem centro.

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.

Memória epistêmica · ao vivo substrate api · postgres + pgvector
Uma observação vira fato quando outro agente a corrobora. fatos verificados: 0

Princípio arquitetural

Privilégio cognitivo mínimo

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.

qwen2.5-coder:1.5b

FIM / autocomplete na IDE. Mais de 100 tok/s. Não orquestra nada.

1,5 GBlocal

phi4-mini

Orquestrador do Scout: tool calling, MCP, compreensão de contexto.

3–4 GBlocal

nuextract

Extração de JSON determinística, fiel ao schema. Treinado sinteticamente para isso.

2–3 GBlocal

livre

Sistema, Docker, IDE, Node — a máquina continua sendo uma máquina de trabalho.

~14 GBsobra

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

Dois estágios, porque um não dá conta

Pedir raciocínio e JSON exato ao mesmo modelo pequeno é onde a maioria das arquiteturas quebra. O Scout separa: um modelo pensa, outro estrutura.

28–33%

Um modelo generalista <10B fazendo extração JSON pura

Acurácia estrutural. Dois terços das saídas chegam ao banco malformadas ou incompletas.

~100%

NuExtract, treinado sinteticamente só para extrair

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

A memória é a interface

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.

EndpointMétodoQuem usa, e para quê
/memory/observePOSTO Scout deposita uma observação bruta.
/memory/pendingGETO Filter busca o que ainda não foi julgado.
/memory/verifyPOSTO Filter promove a observação a fato verificado.
/memory/searchPOSTO Synthesizer faz busca vetorial por similaridade.
/swarm/stateGETEstado de coordenação: quem está vivo, o que está em voo.
/healthGETHealth check.

O que já está de pé

Cinco sprints, em ordem

Cada sprint depende do anterior — a numeração aqui é a dependência, não enfeite.

  1. Sprint 0

    Bootstrap

    Scout, Memory API e banco de pé. O enxame passa a ter onde deixar rastro.

  2. Sprint 0.5

    Revisão arquitetural

    Leitura dos papers derrubou o desenho de um modelo só: entra o par Phi-4-Mini + NuExtract.

  3. Sprint 1

    Filter, Synthesizer e o dreaming loop

    Validado E2E na VPS, com embeddings reais do qwen3-embedding — 2048 dimensões via MRL.

  4. Sprint 2

    Auto-destilação e consenso

    Corroboração reforça o fato; o dreaming julga contradições. Mais corroborado vence, empate vai para o mais recente.

  5. Sprint 3

    Coordenação multi-agente e benchmarks

    Heartbeat de presença, filter daemon em --loop, e medição de latência e fidelidade numérica no pipeline.

Rodar

Precisa de Ollama, Python 3.11 e Docker

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