🧠 Por que memória vetorial
Buscar por significado é diferente de buscar por palavra-chave. "Login OAuth" e "autenticação social" são quase a mesma coisa para humanos — mas keyword search trata como completamente diferente. Embeddings vetoriais resolvem isso codificando significado em coordenadas matemáticas.
🎯Keyword vs semântica
- •Keyword: match exato de tokens — "OAuth" ≠ "autenticação"
- •Semântica: proximidade no espaço vetorial — entende sinônimos e contexto
- •Resultado: agente encontra padrões relevantes mesmo sem palavras iguais
📊Números reais
- +40% recall em buscas comparado a keyword puro
- 3-7x melhor relevância nos top-5 resultados
- 0 esforço de tagging manual — embeddings são automáticos
📚 AgentDB
AgentDB é o banco de memória do Ruflo: SQLite via sql.js compilado para WASM. Roda em qualquer ambiente Node sem precisar de native bindings, sem build steps, sem dor de cabeça com glibc.
⚙️Por que sql.js (WASM)
- •Cross-platform: Linux, macOS, Windows, browsers, edge
- •Sem compilação nativa (sem node-gyp, sem dores)
- •Funciona em containers minimalistas (alpine, distroless)
- •Performance suficiente para a maioria dos casos
💡Dica
Por baixo do AgentDB existem 19 controllers especializados (auth, vector, sessions, etc.). Você não precisa conhecê-los — a CLI memory abstrai tudo.
⚡ HNSW indexing
HNSW (Hierarchical Navigable Small World) é o segredo da velocidade. Em vez de comparar query contra todos os vetores (O(n)), HNSW navega em camadas e converge em O(log n). Resultado: 150x a 12.500x mais rápido dependendo do tamanho do índice.
⚡Como HNSW funciona
- •Camadas hierárquicas — topo é esparso, base é densa
- •Greedy navigation — começa no topo, desce até encontrar vizinho
- •Small world — conexões aleatórias longas + curtas (como redes sociais)
- •Recall > 95% mantido com latência baixa
📊Benchmarks
- 1.000 vetores: ~150x mais rápido que linear
- 100.000 vetores: ~3.000x mais rápido
- 1.000.000 vetores: até 12.500x mais rápido
- Latência típica: <5ms para top-10 em milhões de itens
💡Tradeoff
HNSW troca um pouco de recall (~95% em vez de 100%) por latência baixíssima. Para 99% dos casos, vale a pena. Se precisar de 100% recall (compliance, médico), use o brute force exato disponível como fallback.
🗂️ Namespaces
Namespaces organizam memória por contexto/propósito. Em vez de jogar tudo em um saco, separe por uso: padrões aprendidos, tarefas em andamento, soluções, feedback, memórias importadas do Claude Code.
📁Namespaces padrão
patterns— padrões aprendidos pelo SONAtasks— estado de tarefas em andamentosolutions— soluções consolidadas reutilizáveisfeedback— verdicts e avaliaçõesclaude-memories— bridge do Claude Codecollaboration— contexto de dual-mode
✓ Fazer
- ✓Usar nome descritivo: "auth-feature-2026"
- ✓Separar por feature/projeto
- ✓Limpar namespaces obsoletos
- ✓Usar memory_search_unified para cross-search
✗ Evitar
- ✗Jogar tudo em "default"
- ✗Nomes genéricos como "stuff"
- ✗Misturar dados sensíveis com gerais
- ✗Criar 50 namespaces para uma feature
🔍 ONNX embeddings
Ruflo usa all-MiniLM-L6-v2 via ONNX runtime — modelo compacto (22MB), 384 dimensões, embedding em <5ms. Roda 100% local: sem API key, sem latência de rede, sem vazamento de dados.
🤖Especificações
- •Modelo: sentence-transformers/all-MiniLM-L6-v2
- •Dimensões: 384 (compacto, eficiente)
- •Runtime: onnxruntime-node (CPU otimizado)
- •Latência: <5ms por sentença em hardware comum
- •Privacidade: 100% local, zero rede
📊Versão acelerada (agentic-flow)
- 75x mais rápido com integração agentic-flow ONNX
- Batch embedding de centenas de docs em segundos
- Cache automático com 95% hit rate em workloads repetidos
💾 RVF format
RVF (Ruflo Vector Format) é o formato de persistência. Snapshot completo do estado de memória — vetores, metadados, índice HNSW — em um único arquivo. Restaurar uma sessão antiga é uma chamada só.
💾O que RVF inclui
- •Todos os embeddings (vetores 384-dim)
- •Metadados (namespace, timestamps, source)
- •Estrutura do índice HNSW serializada
- •Quantização opcional (Int8 = 3.92x menor)
💡Use case
Faça snapshots regulares antes de operações arriscadas (limpeza, refator de namespace). Em desastre, restaurar é trivial. Snapshots semanais já bastam para projetos médios.
⚠️Backup é responsabilidade sua
Ruflo não faz backup automático para destinos externos. Configure rsync, S3 ou git-lfs nos arquivos RVF. Memória perdida = aprendizado perdido.
📋Resumo do Módulo
Próximo Módulo:
1.5 - CLI Essentials: tour pelos comandos do dia a dia