Avalanche Intelligence Unit · Dossiê 001
CONFIDENCIAL · USO INTERNO
08 · MAI · 2026 · 23h45 BRT
Briefing comparativo · Versão 1.0

Naiavs.Flue

Análise comparativa entre a arquitetura agêntica em produção do Instituto Avalanche e o framework Flue. Onde se duplicam, onde se complementam, e onde o trabalho real precisa ficar.

Solicitado por
Chefe (Denderson)
Compilado por
Sentinela · Opus 4.7 1M
Fontes primárias
SSH 77.42.3.210
github.com/withastro/flue
Páginas
01 / 01
Classificação
NÃO DISTRIBUIR
§ 01
Sumário Executivo

A pergunta não é se Flue substitui Naia. É onde faz sentido coexistir.

Conclusão 1

São coisas diferentes. Naia é um sistema operacional agêntico maduro em produção; Flue é um framework de runtime experimental (v0.3.x). Comparar feature-a-feature é injusto pra ambos.

Conclusão 2
+

Existe complementaridade real: Flue brilha em agentes stateless serverless (escala a zero, custo variável, deploy global). Naia brilha em stateful com filesystem real, browser, MCPs, históricos longos.

Conclusão 3

O ganho prático não é trocar runtime — é extrair os conceitos do Flue (sandbox virtual, AGENTS.md MD-driven, deploy multi-target) e aplicar onde a arquitetura atual da Naia tem dívida (clones em VPS dedicada, custo fixo 24/7).

§ 02
Confronto Direto

Lado a lado, sem rodeios.

Sujeito A Em produção

Naia

Sistema agêntico operacional do Instituto Avalanche — Claude Code CLI rodando 24/7 em hardware dedicado.

Tipo
Runtime monolítico stateful
Versão
claude-opus-4-7 · effort max
Idade
~9 meses em produção contínua
Hosting
Hetzner Dedicada · 16 vCPU · 64GB
Modelo
Anthropic Claude Code CLI oficial
Stack
tmux · systemd · Postgres+pgvector
┌─────────────────────────────────────┐ CHEFE (Telegram @naia10_bot) └────────────┬────────────────────────┘ bot.py externo ┌─────────────────────────────────────┐ inbox/ → tmux send-keys → out └────────────┬────────────────────────┘ ┌─────────────────────────────────────┐ NAIA (Claude Code CLI · opus-4-7) 29KB CLAUDE.md · 6 lifecycle hooks MCP: github + filesystem + context7 └────────────┬────────────────────────┘ │ Agent tool ┌─────────────────────────────────────┐ 14 subagents .md + 5 clones systemd independentes └────────────┬────────────────────────┘ ┌─────────────────────────────────────┐ pgvector + HNSW · 25k+ msgs · 6k embeddings · API REST porta 3007 └─────────────────────────────────────┘
25.660+
Mensagens persistidas
6.072
Embeddings indexados
1M
Tokens de contexto
64GB
RAM dedicada
6
Instâncias paralelas
14
Subagents .md
3007
Porta semantic search
Filesystem real Linux

Forças

  • Filesystem real do SO: roda ffmpeg, browser headless, qualquer binário Linux
  • Claude Code CLI maduro, atualizado pela Anthropic, hooks customizáveis
  • Memória vetorial dedicada com 25k+ msgs e busca semântica <50ms
  • Bot Telegram externo desacoplado: msgs nunca se perdem se Claude reinicia
  • 5 clones systemd: paralelismo real entre agentes, cada um com session própria
  • tmux session resumível: estado preservado entre restarts
  • 14 subagents declarativos em Markdown: edição direta sem deploy

Fraquezas

  • Custo fixo 24/7 da VPS dedicada, mesmo em silêncio
  • Vertical-only: pra escalar precisa de mais RAM/CPU na mesma máquina
  • Sem failover geográfico — se Hetzner cair, Naia some
  • Onboarding manual: provisionar nova instância exige sysadmin
  • Plugin ecosystem do Claude Code é limitado (3 MCP servers ativos)
  • Você é responsável por backup, monitoring, hardening (PermitRootLogin pendente)
Sujeito B Experimental

Flue

Framework TypeScript do time Astro pra construir agentes programáveis com sandbox e deploy multi-target.

Tipo
Framework de runtime stateless
Versão
@flue/sdk 0.3.11 · experimental
Idade
Lançado em 2026 · APIs em mudança
Hosting
Node.js · Cloudflare Workers + DO
Modelos
Multi-provider via pi-ai registry
Stack
esbuild · just-bash · Hono · DO SQLite
┌─────────────────────────────────────┐ CLIENTE (HTTP webhook) └────────────┬────────────────────────┘ ┌─────────────────────────────────────┐ Worker global (300+ POPs) router → /agents/<name>/<id> └────────────┬────────────────────────┘ ┌─────────────────────────────────────┐ Durable Object por sessão ✦ V8 isolate ✦ SQLite local ✦ single-thread ✦ pinned a 1 POP └────────────┬────────────────────────┘ │ session.task() / role ┌─────────────────────────────────────┐ Sandbox virtual (just-bash) ou Daytona/E2B/Modal externo └────────────┬────────────────────────┘ ┌─────────────────────────────────────┐ R2 bucket (knowledge base) Workers AI binding (free models) └─────────────────────────────────────┘
~5ms
Cold start V8
300+
POPs globais
$0
Idle cost
128MB
RAM por isolate
30s
CPU por request
5GB
DO SQLite grátis
Escala automática
Apache 2
Licença open source

Forças

  • Deploy multi-target idêntico: flue build --target node|cloudflare
  • Custo elástico: paga só durante request, idle = $0
  • Sessions automaticamente persistidas em DO SQLite (sem código)
  • Sandbox virtual just-bash sem container = startup instantâneo
  • Workers AI binding: usa Llama/Kimi/Mistral sem chave de API
  • Skills/AGENTS.md descobertos em runtime do filesystem
  • connectMcpServer() built-in pra integração MCP remota
  • Distribuído globalmente — DO spawna no POP mais próximo do usuário

Fraquezas

  • Experimental: README declara "APIs may change"
  • Limites duros do Worker: 30s CPU/request, 128MB RAM
  • Sem filesystem real — não roda ffmpeg, browser, binários nativos
  • Pra trabalho pesado precisa de sandbox externo (Daytona/Modal/E2B = $$)
  • Sem hooks/lifecycle equivalentes ao Claude Code (anti-promise, grounding)
  • Ecossistema ainda raso (3 conectores oficiais documentados)
  • Lock-in arquitetural caso APIs mudem em versões futuras
§ 03
Especificações Técnicas

Linha por linha, onde uma vence e a outra perde.

Dimensão Naia (em produção) Flue (alternativa)
RuntimeO que executa o agente CLI OficialClaude Code CLI binário /usr/local/bin/claude rodando direto. Sem framework intermediário. Anthropic mantém. Framework TSPacote npm @flue/sdk. Você escreve handler TS, ele constrói server. Atravessa esbuild + plugin de target.
ModeloLLM por baixo Lock fixoclaude-opus-4-7 com --effort max. 1M de contexto. Modelo único, premium, sempre o mesmo. Multi-provideranthropic/openai/google/openrouter/cloudflare. Troca por chamada. Inclui Workers AI free tier.
HospedagemOnde roda fisicamente VPS fixaHetzner Dedicada Falkenstein. AMD Ryzen 7 PRO · 16 vCPU · 64GB RAM. Hardware seu. Edge globalCloudflare Workers em 300+ POPs OU Node em qualquer host. Mesmo código, dois deploys.
CustoQuanto sai por mês Fixo~R$500/mês de VPS dedicada (24/7) + token Claude OAuth (Plus). Mesmo se ninguém usar. Variável$0 idle. Pay-per-request. Estimativa: 1k convs/dia × 10 msgs ≈ $10-30/mês em CF.
EscalaComo aguenta crescer VerticalMais carga = mais RAM/CPU na mesma máquina. Limite físico do hardware. Horizontal ∞Cada session = um DO próprio. CF spawna isolates conforme demanda. Sem teto.
Latência geográficaDe São Paulo, pra fora ~250msHetzner Falkenstein, sempre quente. Rota fixa Brasil → Alemanha. ~5-50msPOP mais próximo (GRU em SP). Cold start V8: 5ms. Latência depende de onde DO foi pinado.
Boot da sessãoComo começa tmux + start.shsystemd → tmux → claude --continue. Auto-restart com backoff exponencial 5s→15s. 3 crashes em 2min vira FRESH. StatelessWorker recebe request → DO acorda (instantâneo) → handler roda → DO dorme. Sem boot perceptível.
Persistência de sessãoMemória entre conversas JSONL + PostgresSessions em ~/.claude/projects/*.jsonl. Memória vetorial em naia_memory Postgres com pgvector + HNSW. DO SQLiteCada session = uma row em DO SQLite. Survives forever. Cloudflare faz backup. Zero código de persistência.
SubagentsComo delegar trabalho 2 camadasCamada A: 14 .claude/agents/*.md (Agent tool, mesma sessão). Camada B: 5 clones systemd independentes com tmux+bot próprios. session.task()Sub-sessão detached que herda sandbox. Ou role (instructions overlay). Dentro do mesmo runtime.
FilesystemO que o agente pode tocar Linux realAcesso completo ao SO. ffmpeg, browser headless, binários nativos, qualquer apt-get. Sem sandbox. Virtual ou externoDefault: just-bash em memória (rápido, barato). Pra real: integrar Daytona/E2B/Modal/CF Containers (extra $$).
Hooks de cicloCustomizar cada momento 6 ativosSessionStart, UserPromptSubmit (grounding-search), PreCompact (memory flush), Stop (anti-promise + complete-task), SubagentStop, PostToolUse (keep-typing). Ainda não temNenhum hook lifecycle equivalente. Você pode envelopar em código TS, mas não é um sistema declarativo.
MCPIntegração com tools externas Configurado3 MCP servers ativos: github, filesystem, context7. Configurado em .mcp.json. BuiltinconnectMcpServer() com transport HTTP/SSE. Tools fluem direto pro agent.
ChannelsComo o usuário fala com o agente Telegram bot externoBot Python /opt/naia-bot/bot.py faz polling, escreve em inbox/, injeta no tmux via send-keys. Audio Whisper + ElevenLabs. HTTP webhookCada agente é um endpoint /agents/<name>/<id>. Você integra qualquer canal por cima (Telegram, WhatsApp, web).
Memória vetorialBusca semântica pgvector próprioPostgreSQL + extensão pgvector + índice HNSW. 25.660+ mensagens, 6.072 chunks indexados. Latência <50ms. Você implementaNão é built-in. Pode usar Vectorize da CF (compatível DO) ou plugar Pinecone/Qdrant. Mais flexível mas mais trabalho.
ConcorrênciaMúltiplas conversas simultâneas tmux multi-pane6 instâncias paralelas (Naia + 5 clones), cada uma single-threaded. Limite de RAM da máquina. Isolate per sessionCada session ID = um isolate próprio em V8. CF garante isolamento e ordem por DO.
ObservabilidadeSaber o que tá rolando journalctl + tailjournalctl -u naia-agent + tail logs/agent.log. tmux capture-pane pra ver state. Sem dashboard. Wrangler + dashboardwrangler tail pra logs ao vivo. Cloudflare Analytics nativo. Métricas de DO no dashboard.
AtualizaçõesComo sobe versão npm i -g claudeClaude CLI atualiza pelo npm global. Naia restart automático puxa nova versão. Anthropic decide cadência. flue build + deploynpm update @flue/sdk + flue build + wrangler deploy. Você controla quando.
MaturidadePode confiar? Produção real9 meses no ar, 25k msgs processadas, sobreviveu 4-day downtime de abril/2026 e o protocolo de boot foi reescrito por causa disso. Experimentalv0.3.11. README diz textualmente "APIs may change". Backed pelo time Astro (sério), mas é cedo pra produção crítica.
Lock-inO que prende Anthropic CLILock no Claude Code CLI + modelo Anthropic. Mas é a CLI oficial, não um wrapper de terceiros — risco baixo. Framework jovemLock no @flue/sdk. Se Astro descontinuar ou refatorar pesado, você precisa migrar.
EcosistemaComunidade e plugins Pequeno mas estávelSkills internos (videodb, remotion) + 3 MCP servers + bot Python custom. Você é o mantenedor. Astro-adjacenteRepo open source Apache-2.0, 2.8k stars. Conectores via "flue add" (markdown). Ainda formando.
§ 04
Veredicto

Onde cada uma realmente brilha.

Manter

Naia continua sendo o coração

Casos de uso defensáveis

Conversa stateful longa (>10k msgs), workspace persistente em FS real, browser headless, edição de mídia, integração WhatsApp Cloud, projetos que dependem de binários Linux específicos.

O bot Telegram externo + memória vetorial + 6 instâncias paralelas é uma stack que não tem equivalente direto no Flue hoje. Trocar isso por Worker é regredir.

Custo fixo da Hetzner Dedicada se justifica enquanto Naia é o ponto único de contato com o Chefe e os clones operam 24/7.

Considerar

Flue como infra complementar

Onde faz sentido novo

Agentes stateless que não precisam de memória longa: webhook que classifica leads, transformação de payload, agente de pesquisa one-shot, automação de campanhas Meta Ads, OCR de documento.

Endpoints públicos multi-tenant: cada cliente do CRM Avalanche poderia ter um agente Flue isolado em DO próprio, com escala $0 idle e cobrança proporcional ao uso.

Funcionalidades novas que não exigem filesystem real e onde latência geográfica baixa é vantagem (resposta rápida em chat embarcado, p.ex.).

§ 05
Plano de Ação Sugerido

Não é migrar.
É combinar.

Ao invés de quebrar o que funciona, extrair os ganhos do Flue exatamente onde a Naia tem dor: clones que poderiam ser stateless, multi-tenancy, escala elástica e custo variável.

  1. Manter Naia como ponto único de comando. Ela continua sendo a interface principal com o Chefe. Telegram, memória, hooks, conversas longas — nada se mexe.
  2. Avaliar migração dos 5 clones (davi, fernando, jonathan, rafael, rodrigo) pra Flue. Cada clone hoje é uma instância Claude Code 24/7 em VPS dedicada. Se forem stateless ou semi-stateless, viram endpoint Flue com custo zero quando não estão atendendo. Naia chama via webhook.
  3. Construir o "squad SaaS" externo em Flue. Agentes pra cliente final do CRM Avalanche (SDR multi-tenant, atendimento white-label) ficam em Flue + Cloudflare. Cada cliente = um DO. Escala automática, custo proporcional.
  4. Importar o conceito AGENTS.md MD-driven do Flue pra dentro da Naia. O CLAUDE.md de 29KB hoje é um arquivo monolítico. O modelo Flue de skill packs separados (.agents/skills/<name>/SKILL.md) com discovery por filesystem cabe dentro da Naia também — mais modular, mais editável.
  5. Não tocar na memória vetorial pgvector. É a peça mais valiosa da arquitetura atual. Migrar pra Vectorize/Pinecone seria perda de controle e quebra de schema. Continue como está.
  6. Resolver as dívidas técnicas pendentes antes de qualquer coisa nova. STARTUP.md aponta IP errado, SOUL.md tem squad antigo (Scout/Codex/Pixel...), WhatsApp Cloud desconectado, hardening SSH, cron-scripts com erro. Casa em ordem antes de expandir.