Existem 3 Naias em producao simultanea: Naia Claude Hetzner (instancia mae, 24h), Naia Claude Mac (laptop do Chefe) e Naia Codex Hetzner (GPT-5.5). Todas compartilham o banco PostgreSQL naia_memory com pgvector
Alem das 3 Naias do Chefe, ha 6 clones humanos completos (Davi, Fernando, Jonathan, Rafael, Rodrigo, Clara), cada um com sessao Claude Code propria e bot Telegram dedicado
O bot Telegram externo e CANAL, nunca cerebro. Ele nunca decide conteudo, nunca compoe respostas automaticas. Recebe mensagem, injeta no tmux, coleta resposta do outbox e envia
A Naia e ORQUESTRADORA, nao executora. Tudo que demora mais de 30 segundos e delegado para o subagente correto via Agent tool
Toda mensagem do Chefe segue 3 fases: Entendimento (ate 10s), Execucao (trabalho) e Entrega (resultado concreto). Quebrar essa regra e falha grave
CAPITULO 2
CAMADA FISICA E SERVICOS
Hetzner dedicado: AMD Ryzen 7 PRO 8700GE, 16 CPUs, 64GB RAM, 437GB SSD. Roda simultaneamente: Naia Claude, Naia Codex, 6 clones, PostgreSQL, Redis, Evolution API, Jitsi Meet, OS Avalanche, Caddy
Banco naia_memory com 64 tabelas, 1.1M+ rows em conversation_history, pgvector com indices HNSW pra busca semantica em vetores de 1536 dimensoes
Mac do Chefe mantem PostgreSQL local espelhado via tunnel SSH permanente (porta 15432). Sync bidirecional a cada 5 minutos + daily completo as 04:00 BRT
Caddy faz reverse proxy pra todos os servicos: OS Avalanche, Evolution API, dashboard de agentes, propostas, organization hub. TLS automatico via Let's Encrypt
Credenciais centralizadas em .env: OpenAI, Gemini, ElevenLabs, GitHub, Vercel, Cloudflare, Asaas, Meta, Telegram, HikerAPI, HeyGen e mais
CAPITULO 3
SUPERVISAO E RESILIENCIA
3 niveis de resiliencia empilhados: systemd/launchd (nivel 3), supervise.sh (nivel 2) e start.sh (nivel 1). Se qualquer camada morrer, a de cima ressuscita em segundos
start.sh roda loop infinito dentro do tmux: detecta se precisa boot FRESH (sessao nova) ou CONTINUE (recupera JSONL anterior). Decide com base em crashes e flag /tmp/naia-force-fresh
Deteccao de fast crashes: 3 crashes em menos de 120 segundos forca FRESH automaticamente, protegendo contra JSONL corrompido que causaria loop infinito
Backoff exponencial entre restarts: comeca em 5s, dobra ate 15s maximo. Reseta quando sessao fica estavel por mais de 300 segundos
Claude roda com --dangerously-skip-permissions (agente autonomo em producao) e --effort max (thinking estendido ao maximo)
CAPITULO 4
CLI: CLAUDE CODE vs CODEX
Claude Code tem 6 tipos de hooks nativos (SessionStart, UserPromptSubmit, PreCompact, Stop, SubagentStop, PostToolUse) que estendem o comportamento sem alterar o core. Codex NAO tem hooks
Subagentes no Claude Code sao declarados em .claude/agents/ com frontmatter YAML. Cada um e spawado como sessao isolada com tools restritas. No Codex, simulado via delegate_task.py
CLAUDE.md (Claude Code) e AGENTS.md (Codex) sao carregados automaticamente como system prompt em todo turn. O CLAUDE.md tem 28KB de regras canonicas
Tokens do Claude Code: soma de input + output + cache_read + cache_creation = tokens efetivos da janela. No Codex, extraido via regex no log
Ambas CLIs tem a MESMA personalidade Naia. Diferem apenas em mecanismos tecnicos: reply via outbox JSON (Claude) vs reply.py (Codex)
CAPITULO 5
BOT EXTERNO TELEGRAM
Daemon Python (850+ linhas) com 5 threads concorrentes: poll_loop, outbox_loop, typing_loop, auto_approve_loop e rotation_loop. Roda como processo totalmente independente do Claude
Mensagens chegam via long polling do Telegram, sao salvas em inbox/ e injetadas no tmux da Naia via send-keys. Respostas sao escritas como JSON em outbox/ pela Naia
Typing indicator dinamico: renova "digitando..." a cada 4 segundos enquanto a Naia trabalha. O Chefe ve atividade constante em vez de silencio
Auto-approve detecta prompts interativos do Claude Code e aprova automaticamente, exceto comandos criticos (rm -rf, DROP, push --force) que vao pro Chefe via botao inline
Audio: entrada via Whisper (transcreve voz do Chefe), saida via ElevenLabs (narra resposta). Debounce de 8s no Mac agrupa mensagens curtas em rajada
CAPITULO 6
PERSONALIDADE E INTELIGENCIA
14 subagentes especializados: Juliana (sub-gerente, pode invocar outros agentes), Paulo (dev full-stack), Jonathan (copywriter), Rafael (projetos), Denderson Clone (trafego), SDRs de vendas e Amanda CRM
6 hooks ativos: SessionStart injeta bootstrap magro, UserPromptSubmit faz grounding semantico (anti-alucinacao), Stop bloqueia promessas sem execucao, PostToolUse renova typing
SOUL.md define a essencia: CEO da agencia, proativa, direta, com opiniao estrategica. IDENTITY.md: ruiva, olhos verdes esmeralda, terno preto. USER.md: perfil completo do Chefe em 191 linhas
Grounding-search por turno: antes de cada resposta, busca top-3 chunks + top-3 facts semanticamente proximos no banco vetorial. Previne alucinacao
Knowledge base com 50+ arquivos (500KB) organizados em soul, user, tools, agents, meta-ads, sdr, crm, sales, imersao. Todos indexados em memory_chunks
CAPITULO 7
MEMORIA PERSISTENTE
conversation_history: 1.1M+ rows com todas as mensagens. Cada turn ganha embedding de 1536 dimensoes via OpenAI text-embedding-3-small pra busca semantica
memory_chunks: 8.000+ chunks indexados. Arquivos .md sao divididos em pedacos de 1500 chars com overlap de 200, re-indexados automaticamente quando mudam (dedup por file_hash MD5)
naia-memory service (Node.js, porta 3007): file watcher via chokidar, chunking inteligente, API REST pra busca em chunks/facts/conversas/transcricoes
consolidate-conversations.py roda a cada 5 minutos: le todos os JSONL do Claude Code, insere turns novos no banco com checkpoint por arquivo. Zero perda entre sessoes
build-session-handoff.py gera resumo enxuto (~2.8KB) antes da rotacao: ultimas 6 msgs, mensagem pendente, paths de referencia. Garante continuidade sem carregar JSONL antigo
CAPITULO 8
SYNC BIDIRECIONAL MAC-HETZNER
Tunnel SSH permanente (porta 15432) mantem o PostgreSQL Hetzner acessivel no Mac. Watchdog dedicado testa conectividade e reinicia automaticamente se cair
sync-naia-db.py roda a cada 5 minutos: sincroniza 17+ tabelas em AMBAS direcoes com INSERT ON CONFLICT DO NOTHING. Deadline de 110s por execucao pra nao empilhar
Cron daily as 04:00 BRT faz sweep completo sem cursor incremental, cobrindo tabelas com cursor_col=None. Catch-up de inconsistencias acumuladas
Volume tipico: 30-100 rows de conversation_history por execucao de 5 minutos. Hetzner tende a ter mais rows porque os 6 clones rodam so la
Heartbeat 1x/min por host: coleta hostname, runtime, modelo LLM, rows locais, metricas de I/O. Dashboard em agents.denderson.ai consolida tudo em tempo real
CAPITULO 9
ROTACAO DE JANELA 180K TOKENS
Janela nominal do Opus 4.7 e 1M tokens, mas inteligencia degrada a partir de 200k. Rotacao ativa em 180k (soft, com aviso) e 220k (hard, silenciosa) mantem performance otima
rotation_loop no bot: thread que checa tokens a cada 30 segundos. Calcula soma de input + output + cache_read + cache_creation do ultimo turn assistant
Soft rotate: avisa o Chefe no Telegram ("vou compactar e voltar"), consolida JSONL no banco, gera handoff, mata sessao, supervise reinicia FRESH. Chefe ve apenas 2 mensagens
Hard rotate em 220k: protecao pra sessoes abandonadas. Rotaciona silenciosamente quando idle, sem notificar o Chefe
Validacao pratica: Naia Hetzner caiu de 270k para 50k tokens. Naia Mac caiu de 606k (3x acima do hard!) pra 0. Custo acumulado de $381 zerado. Sistema self-healing confirmado
CAPITULO 10
OPERACAO DIARIA E EVOLUCAO
12+ jobs agendados em background: consolidacao 5min, heartbeat 1min, IA News + roteiro 8h30, mapa OS Avalanche 12h, report diario 9h, sync imersao 2min, heartbeat clones
claude -p --bare: modo one-shot pra crons que precisam de inteligencia da Naia sem afetar a sessao interativa. Sem plugins/hooks, sem conflito com bot Telegram
Heartbeat horario injeta prompt no tmux pra Naia auto-revisar promessas pendentes. Cobre o caso onde subagente terminou em background e Naia esqueceu de dar reply
Marcos criticos: Naia nasceu em 02/2026, migrou pra Hetzner em 04/2026, bot externo em 04/2026, rotacao 180k em 05/2026. De VPS basica a servidor dedicado com 9 instancias
Debito tecnico pendente: backup PostgreSQL, SSH hardening, WhatsApp reconexao, arquivar JSONLs antigos (186MB), dashboard com 6 clones em vez de 5
SECAO BONUS
MANUAL DO CLONE DENDERSON SDR
Instagram + WhatsApp | Social Selling Autonomo | 3 Capitulos
SDR CAPITULO 1
ARQUITETURA, CRIACAO E STACK
Clone Denderson e um agente autonomo de Social Selling que opera 24h no Direct do Instagram @denderson.ai (227k seguidores) e em 2 linhas WhatsApp Business. Processo Python independente com Claude Opus 4.7 via Agent SDK
2 processos separados: Clone IG (porta 3500, DMs Instagram) e Clone WPP (porta 3501, WhatsApp Imersao). Isolamento de falhas: se um cai, o outro continua
No horario comercial (08:00-18:59 BRT) fala como o proprio Denderson em primeira pessoa. Fora do horario se apresenta como Clone. Regra aplicada automaticamente por is_business_hours()
Stack: FastAPI + Uvicorn, Claude Opus 4.7 (SDK Python), PostgreSQL (dm_conversations + dm_contact_profiles), CRM Avalanche como ponte Meta, Whisper pra audio de entrada, ElevenLabs com voz clonada do Denderson pra audio de saida
Pipeline completo: Lead manda DM no Instagram, Meta entrega ao CRM Avalanche, CRM Avalanche dispara webhook pro Clone, Clone processa e responde via CRM Avalanche que entrega ao lead. Tempo total: 10-20 segundos
Clone NUNCA chama Meta API direto. Toda comunicacao passa pelo CRM Avalanche: POST /conversations/messages pra enviar, GET /conversations/messages pra historico, GET /calendars/free-slots pra agendamento
Debounce de 10 segundos: mensagens em rajada do lead sao agrupadas em uma unica string e processadas como conversa coerente. Evita respostas duplicadas e corrida de processos
Blocklist de familia e contatos pessoais (Jaine, Amanda Elia, Murilo, Lucas Andre, Won Academy). Protege contra DMs automatizadas em conversas pessoais do Chefe
Rate limit anti-spam: maximo 15 mensagens outbound por contato + cooldown de 60 minutos. Protege contra loop de hallucination e risco de ban no Instagram
SDR CAPITULO 3
INTELIGENCIA, CONVERSAO E OPERACAO
4 etapas de venda automaticas baseadas em exchange_count: Rapport + qualificacao inicial, identificacao de nivel, oferta personalizada (consultoria ou Formacao Avalanche) e conversao com agendamento de reuniao
3 triggers especiais hardcoded: "eu quero" (pula SPIN, envia link Hotmart direto), "claude" (tutorial + abertura de qualificacao), "bombe vivo" (tutorial Meta Ads Live + qualificacao)
Ademir handoff: quando lead vem de prospeccao ativa, contexto completo (bio, posts, oferta detectada, DM inicial) e injetado no prompt. Conversao maior por personalizacao cirurgica
Agendamento round-robin entre 4 heads (Davi Galvao, Fernando Rolim, Jonathan Pires, Rafael Ondei). Slots via calendario CRM Avalanche, nunca menos de 2h de antecedencia
Monitoramento: dashboard em agents.denderson.ai com metricas em tempo real, endpoint /stats com conversao agregada, logs estruturados com prefixos emoji pra cada tipo de evento