TRILHA 3 Nível Avançado

⚙️ Avançado

Mergulhe nas tecnologias que fazem o MiroFish funcionar: OASIS, memória de agentes, ReACT, ForumEngine e customização de forks.

📦 6 Módulos 📋 36 Tópicos ⏱️ ~4h 🎯 Avançado
← Aplicações Exemplos Práticos →
Módulo 3.1

OASIS: O Motor de Simulação Social

Framework CAMEL-AI para simulação social em escala com até 1M de agentes

6 tópicos · ~40min
💾 Módulo 3.2

Memória de Agentes: Zep Cloud vs KuzuDB

Persistência de estado, grafos temporais e busca híbrida para agentes LLM

6 tópicos · ~40min
🎭 Módulo 3.3

Personalização de Agentes e Personas

Pipeline de geração de personas, perfis de plataforma e diversidade de viés

6 tópicos · ~40min
📋 Módulo 3.4

ReportAgent e o Padrão ReACT

Reasoning + Acting em loop, ferramentas de análise e geração de relatórios

6 tópicos · ~40min
🐠 Módulo 3.5

BettaFish Profundo: ForumEngine e Debate

Arquitetura de 5 agentes, colisão de cadeias de pensamento e modelos de sentimento

6 tópicos · ~40min
🔧 Módulo 3.6

Customização e Forks

Forks inematds e MiroFish-Offline, correções, Docker customizado e guia de fork

6 tópicos · ~40min
Módulo 3.1

OASIS: O Motor de Simulação Social

Acessar
O que é:

OASIS (Open Agent Social Interaction Simulations) é um framework de simulação social generalista construído sobre a plataforma CAMEL-AI. Publicado no paper arXiv:2411.11581, ele permite criar ambientes de mídia social sintéticos com agentes LLM que interagem de forma autônoma, simulando dinâmicas reais como disseminação de informação, polarização e formação de opinião.

Por que aprender:

O OASIS é o motor central que alimenta as simulações do MiroFish. Compreender sua arquitetura permite criar simulações customizadas, ajustar parâmetros de escala e entender como cada agente toma decisões dentro do ambiente social simulado.

Conceitos-chave:
  • CAMEL-AI como framework base multi-agente
  • Arquitetura Environment → Agent → Action Loop
  • Separação entre Environment Server e Agent Workers
  • Paper de referência: arXiv:2411.11581 (novembro 2024)
O que é:

O OASIS introduz uma arquitetura de escalonamento que permite simular até 1 milhão de agentes simultaneamente através de paralelização de chamadas LLM, batching inteligente de ações e uso de group subscriptions para otimizar a propagação de informações entre agentes.

Por que aprender:

A escala muda fundamentalmente os fenômenos emergentes. Com 100 agentes você observa conversas; com 10.000 surgem bolhas; com 1M emergem padrões macro-sociológicos. Entender os limites de escala é essencial para projetar simulações significativas.

Conceitos-chave:
  • Paralelização via async workers com rate limiting
  • Batching de ações: múltiplas decisões por chamada LLM
  • Group subscription para reduzir comunicação O(n²) para O(n·k)
  • Trade-off entre fidelidade individual e escala populacional
O que é:

O OASIS define 23 ações sociais discretas que os agentes podem executar, mapeando o comportamento de redes sociais reais. Inclui ações de conteúdo (publicar, comentar, repostar), ações sociais (seguir, silenciar, bloquear), ações de engajamento (curtir, buscar) e ações passivas (scroll, visualizar).

Por que aprender:

Cada ação tem implicações na propagação de informação e na dinâmica social. Um "repost" amplifica exponencialmente, um "mute" cria filtros de bolha. Entender o espaço de ações permite configurar simulações mais realistas.

Conceitos-chave:
  • Ações de conteúdo: create_post, reply, repost, quote
  • Ações sociais: follow, unfollow, mute, block
  • Ações de engajamento: like, unlike, search, trend_view
  • Probabilidade de ação baseada em persona e contexto
O que é:

O OASIS suporta simulação simultânea de duas plataformas: um ambiente tipo Twitter (timeline-based, seguidores, retweets) e um tipo Reddit (subreddits, upvotes/downvotes, threading aninhado). Os agentes podem participar em ambas plataformas com comportamentos adaptados a cada contexto.

Por que aprender:

Fenômenos de migração de conteúdo entre plataformas são cruciais para entender desinformação. Um meme nasce no Reddit, viraliza no Twitter. A simulação dual-platform captura essa dinâmica cross-platform.

Conceitos-chave:
  • TwitterEnv vs RedditEnv: modelos de feed diferentes
  • Cross-posting: agentes podem migrar conteúdo entre plataformas
  • Mecanismos de ranking: chronological vs hot/top/new
  • Diferentes dinâmicas de viralização por plataforma
O que é:

Cada plataforma simulada inclui um sistema de recomendação interno que determina quais posts aparecem no feed de cada agente. O Twitter usa timeline cronológica + interest-based ranking; o Reddit usa hot score (baseado em votos e tempo) para ordenar conteúdo em subreddits.

Por que aprender:

O sistema de recomendação é o fator mais importante na formação de bolhas de informação. Alterar o algoritmo de ranking muda drasticamente os fenômenos emergentes na simulação.

Conceitos-chave:
  • Hot score = log10(|votos|) + idade/45000
  • Interest-based: cosine similarity entre perfil e conteúdo
  • Feed size limit: quantidade de posts por ciclo de decisão
  • Efeito de eco chamber: reforço positivo de recomendações
O que é:

O paper arXiv:2411.11581 valida que o OASIS reproduz fenômenos sociológicos reais: cascatas de informação seguindo curvas power-law, polarização de grupo com convergência intra-grupo e divergência inter-grupo, e efeito manada (herd behavior) onde agentes LLM mostram conformidade ainda mais intensa que humanos reais.

Por que aprender:

A validação empírica dá credibilidade às simulações. Saber quais fenômenos são reproduzidos com fidelidade e quais são amplificados (como o efeito manada) permite calibrar interpretações dos resultados.

Conceitos-chave:
  • Cascata de informação: curva power-law de disseminação
  • Polarização de grupo: medida via distância de opinião
  • Herd behavior: LLMs mais conformistas que humanos reais
  • Métricas de validação contra dados de redes sociais reais
💾
Módulo 3.2

Memória de Agentes: Zep Cloud vs KuzuDB

Acessar
O que é:

LLMs como GPT-4 e Claude processam cada request de forma isolada - não há memória persistente entre chamadas. Para simulações sociais que duram centenas de rounds, cada agente precisa "lembrar" de suas interações passadas, opiniões formadas e relações construídas. Este é o problema fundamental da memória em sistemas multi-agente.

Por que aprender:

Sem memória, agentes contradizem a si mesmos, repetem ações e não desenvolvem trajetórias coerentes. A memória é o que transforma uma sequência de chamadas LLM em uma simulação social significativa.

Conceitos-chave:
  • Stateless vs stateful: o paradoxo do agente sem memória
  • Context window como "memória de trabalho" limitada
  • Memória externa como solução: databases especializados
  • Trade-off: custo de tokens vs profundidade de memória
O que é:

Zep Cloud é uma plataforma de engenharia de contexto para aplicações LLM. Seu motor central é o Graphiti, um engine de grafo temporal de conhecimento que armazena fatos, relacionamentos e eventos com timestamps, permitindo queries como "o que o agente X sabia no momento T?". Possui certificação SOC 2 Type II para segurança enterprise.

Por que aprender:

O Zep é a solução de memória padrão do OASIS original e do BettaFish upstream. Entender o Graphiti permite otimizar queries de memória e reduzir custos de token ao injetar apenas o contexto relevante no prompt.

Conceitos-chave:
  • Graphiti: grafo temporal com nodes, edges e timestamps
  • Fact extraction: extração automática de fatos de conversas
  • SOC 2 Type II: certificação de segurança enterprise
  • API REST + SDK Python para integração
O que é:

KuzuDB é um banco de dados de grafo embutido (embedded), similar ao SQLite mas para grafos. O fork inematds do BettaFish substituiu o Zep Cloud pelo KuzuDB, eliminando dependência de serviços externos. Funciona como um arquivo local, sem servidor separado, e é completamente gratuito e open-source.

Por que aprender:

O KuzuDB permite rodar simulações complexas sem custos de cloud e sem dependência de APIs externas. É a escolha ideal para ambientes isolados, pesquisa acadêmica e prototipagem rápida.

Conceitos-chave:
  • Embedded graph DB: zero configuração de servidor
  • Cypher-like query language para consultas de grafo
  • Integração via Python API nativa
  • Persistência em disco: dados sobrevivem a restarts
O que é:

A busca híbrida combina dois métodos de retrieval: busca semântica (embeddings vetoriais que capturam significado) e BM25 (busca lexical clássica que matcha palavras exatas). O score final é calculado como 0.7 × similaridade_semântica + 0.3 × score_BM25, equilibrando compreensão de significado com precisão lexical.

Por que aprender:

Busca puramente semântica perde termos técnicos; busca puramente lexical perde sinonímia. A abordagem híbrida captura ambos, sendo crucial para recuperar memórias relevantes de agentes em simulações complexas.

Conceitos-chave:
  • Embeddings vetoriais: representação densa de significado
  • BM25: TF-IDF evoluído com normalização de comprimento
  • Reciprocal Rank Fusion para combinar rankings
  • Pesos configuráveis: 0.7/0.3 como default otimizado
O que é:

O sistema de memória organiza informações em três categorias inspiradas na neurociência cognitiva: memória episódica (eventos específicos - "ontem discuti com AgentX sobre política"), memória semântica (fatos gerais - "AgentX é conservador") e memória temporal (sequência e timing - "a discussão aconteceu no round 47, antes da mudança de opinião").

Por que aprender:

Cada tipo de memória serve a uma função diferente no raciocínio do agente. A episódica permite aprender com experiências, a semântica provê contexto geral, e a temporal permite raciocínio causal sobre sequência de eventos.

Conceitos-chave:
  • Episódica: buffer de experiências com decay temporal
  • Semântica: knowledge graph de fatos consolidados
  • Temporal: timestamps + ordering para causalidade
  • Consolidação: promoção de episódica para semântica
O que é:

O sistema de memória do Zep Cloud alcança latência P95 inferior a 200ms para queries de recuperação, e 80.32% de precisão no benchmark LoCoMO (Long Context Memory Optimization). Isso significa que 95% das buscas em memória retornam em menos de 200ms, com alta acurácia na recuperação de informações relevantes.

Por que aprender:

Em simulações com milhares de agentes, cada agente precisa consultar sua memória a cada round. Se cada consulta leva 1 segundo, 10.000 agentes exigiriam 2.7 horas por round. A performance sub-200ms viabiliza simulações em escala.

Conceitos-chave:
  • P95 latency: 95° percentil de tempo de resposta
  • LoCoMO benchmark: teste padronizado de memória de longo prazo
  • Throughput: queries por segundo sob carga
  • Comparação: KuzuDB local vs Zep Cloud em diferentes cargas
🎭
Módulo 3.3

Personalização de Agentes e Personas

Acessar
O que é:

O OasisProfileGenerator é o componente que gera automaticamente perfis de agentes a partir de dados do grafo social. Ele utiliza distribuições demográficas configuráveis (idade, gênero, localização, interesses) para criar personas diversificadas. Cada persona inclui personalidade (Big Five traits), perspectiva política, estilo de comunicação e nível de atividade.

Por que aprender:

A qualidade das personas determina a qualidade da simulação. Personas mal construídas produzem comportamentos homogêneos e irrealistas. O gerador automatiza a criação de populações diversificadas em escala.

Conceitos-chave:
  • Big Five personality traits: openness, conscientiousness, extraversion, agreeableness, neuroticism
  • Distribuições demográficas configuráveis via YAML
  • Seed profiles: templates base que são variados estocaticamente
  • Grafo social inicial: quem segue quem ao início da simulação
O que é:

Cada agente no OASIS é composto por quatro pilares: personalidade (traços de comportamento), perspectiva (visão de mundo e vieses), posicionamento (opinião sobre tópicos específicos em escala Likert 1-7) e memória (histórico de interações). Juntos, esses pilares são injetados no system prompt do LLM a cada round de decisão.

Por que aprender:

Entender a estrutura interna do agente permite fazer ajustes finos: criar agentes mais ou menos influenciáveis, mais ou menos ativos, com opiniões mais ou menos polarizadas. Cada pilar é configurável independentemente.

Conceitos-chave:
  • System prompt template com variáveis de persona
  • Escala Likert 1-7 para posicionamento em tópicos
  • Ação condicionada: personalidade influencia probabilidade de ações
  • Memory injection: top-k memórias relevantes no prompt
O que é:

O OASIS usa formatos diferentes de perfis para cada plataforma. O Twitter usa profiles.csv com colunas tabulares (username, bio, followers_count, interests), enquanto o Reddit usa profiles.json com estrutura aninhada que inclui subreddits de interesse, karma e histórico de posts. Cada formato reflete as particularidades da plataforma simulada.

Por que aprender:

Para criar simulações customizadas, você precisa gerar perfis no formato correto. Erros de formato são a causa mais comum de falhas na inicialização de simulações OASIS.

Conceitos-chave:
  • profiles.csv: formato tabular para ambiente Twitter
  • profiles.json: formato aninhado para ambiente Reddit
  • Campos obrigatórios vs opcionais em cada formato
  • Validação de perfis: schema check antes da simulação
O que é:

O Environment Configuration Agent é um meta-agente que define as regras da simulação antes dela começar. Ele configura parâmetros como número de rounds, ações permitidas por round, tópicos seed, eventos programados (inserção de notícias) e regras de moderação (quais conteúdos são filtrados). Funciona como o "game master" da simulação.

Por que aprender:

A configuração do ambiente determina completamente o tipo de simulação que será executada. Sem entender o Environment Configuration Agent, você está limitado a cenários pré-definidos.

Conceitos-chave:
  • Arquivo de configuração YAML com parâmetros do ambiente
  • Seed topics: tópicos iniciais que disparam a simulação
  • Scheduled events: injeção de notícias em rounds específicos
  • Moderation rules: filtros de conteúdo e rate limiting
O que é:

Cada chamada LLM para um agente inclui um prompt cuidadosamente estruturado: system prompt com persona, user prompt com o estado atual do feed, memórias relevantes injetadas via RAG, e instruções de ação formatadas como tool calls. O prompt engineering determina quão "fiel" o agente é à sua persona.

Por que aprender:

O prompt é a interface entre a persona abstrata e o comportamento concreto do LLM. Prompts mal construídos resultam em agentes que ignoram sua personalidade ou tomam ações incoerentes.

Conceitos-chave:
  • System prompt template com placeholders de persona
  • RAG injection: top-k memórias via busca híbrida
  • Action space: lista de ações válidas no contexto atual
  • Chain-of-thought: agente raciocina antes de escolher ação
O que é:

O paper do OASIS demonstra que agentes LLM exibem "herd behavior" mais intenso que humanos reais - eles tendem a convergir mais rapidamente para opiniões majoritárias. Isso é um viés inerente dos LLMs treinados com RLHF, que favorece respostas "socialmente aceitáveis". As personas podem mitigar parcialmente este efeito, mas não eliminá-lo completamente.

Por que aprender:

Conhecer os vieses da simulação é tão importante quanto conhecer suas capacidades. Sem essa consciência, você pode interpretar consenso simulado como evidência de consenso real, cometendo erros de análise graves.

Conceitos-chave:
  • RLHF bias: treinamento com feedback humano favorece conformidade
  • Herd behavior amplificado: convergência mais rápida que dados reais
  • Técnicas de mitigação: temperature alta, diverse sampling
  • Calibração: comparação com datasets de redes sociais reais
📋
Módulo 3.4

ReportAgent e o Padrão ReACT

Acessar
O que é:

ReACT (Reasoning + Acting) é um paradigma onde o LLM alterna entre pensar (raciocinar sobre o que fazer) e agir (executar uma ferramenta). Em cada iteração, o agente gera um "Thought" (raciocínio), escolhe uma "Action" (ferramenta para usar), observa o "Observation" (resultado), e repete até ter informação suficiente para gerar a resposta final.

Por que aprender:

O padrão ReACT é a espinha dorsal do ReportAgent do BettaFish. Sem ele, o agente teria que gerar relatórios apenas com o que está no context window. Com ReACT, ele busca ativamente informações, entrevista outros agentes e analisa traces.

Conceitos-chave:
  • Loop Thought → Action → Observation → Thought
  • Critério de parada: "tenho informação suficiente"
  • Máximo de iterações para evitar loops infinitos
  • Diferença de ReACT vs Chain-of-Thought puro
O que é:

O ReportAgent tem acesso a três ferramentas especializadas: insight_forge (análise profunda de padrões nos dados coletados, identificando tendências e anomalias), panorama_search (busca ampla em todas as fontes disponíveis para contexto geral) e interview_agents (interrogação direta de agentes individuais sobre suas decisões e motivações).

Por que aprender:

Cada ferramenta serve a um propósito analítico diferente. O insight_forge encontra o "quê", o panorama_search provê o "contexto", e o interview_agents explica o "porquê". Juntas, produzem relatórios multi-dimensionais.

Conceitos-chave:
  • insight_forge: pattern mining em dados de simulação
  • panorama_search: full-text search + embedding search
  • interview_agents: query direta a agentes via prompt
  • Tool selection: o LLM decide qual ferramenta usar e quando
O que é:

O processo de geração de relatório é bifásico: primeiro, o ReportAgent cria um outline em JSON com a estrutura do relatório (seções, subseções, pontos-chave). Depois, cada seção é expandida em Markdown completo com dados, citações dos agentes e visualizações. Isso garante coerência estrutural mesmo em relatórios longos.

Por que aprender:

O pipeline bifásico é uma técnica reutilizável para qualquer geração de documentos longos com LLM. Evita o problema de "perder o fio" em documentos extensos e permite paralelização da escrita de seções.

Conceitos-chave:
  • Fase 1: outline JSON com hierarquia de seções
  • Fase 2: expansão de cada seção com dados e citações
  • Paralelização: seções independentes escritas em paralelo
  • Markdown output com formatação consistente
O que é:

O ReportAgent analisa os traces de execução da simulação para identificar pontos de virada (moments onde a dinâmica muda drasticamente), formação de coalizões (grupos de agentes que convergem em opinião) e cascatas de influência (sequências de ações que desencadeiam reações em cadeia). Cada trace contém o histórico completo de ações de cada agente.

Por que aprender:

A análise de traces transforma dados brutos em insights acionáveis. Sem ela, uma simulação com 10.000 ações é apenas ruído. Com análise de traces, emergem narrativas e padrões compreensíveis.

Conceitos-chave:
  • Turning points: detecção de mudanças bruscas em métricas
  • Coalition detection: clustering de agentes por similaridade de opinião
  • Influence cascades: grafo de propagação de informação
  • Temporal analysis: evolução de métricas ao longo dos rounds
O que é:

A ferramenta interview_agents permite que o ReportAgent faça perguntas diretas a agentes individuais pós-simulação. O agente é "re-instanciado" com toda sua memória e persona, e responde perguntas como "por que você mudou de opinião no round 47?" ou "qual post mais influenciou sua decisão?". Funciona como uma entrevista qualitativa automatizada.

Por que aprender:

Entrevistas com agentes são a ponte entre dados quantitativos e compreensão qualitativa. Elas explicam o "porquê" por trás dos padrões numéricos, adicionando profundidade interpretativa aos relatórios.

Conceitos-chave:
  • Re-instanciação: carregar persona + memória completa do agente
  • Perguntas dirigidas: questões baseadas em anomalias detectadas
  • Citações diretas: respostas inseridas no relatório como quotes
  • Limitação: agente racionaliza post-hoc, não reporta processo real
O que é:

O relatório final segue uma estrutura padronizada: Executive Summary (resumo de 3 parágrafos), Tendências Identificadas (padrões macro com dados), Atores-Chave (agentes mais influentes e suas trajetórias), Pontos de Virada (momentos críticos), Dinâmicas de Grupo (coalizões e conflitos), e Cenários Prováveis (projeções baseadas em tendências observadas).

Por que aprender:

A estrutura do relatório é o produto final visível ao usuário. Ela determina se os insights da simulação são compreensíveis e acionáveis. Um bom relatório transforma dados complexos em narrativa clara.

Conceitos-chave:
  • Executive Summary: 3 parágrafos com principais achados
  • Tendências: gráficos textuais de evolução temporal
  • Atores-Chave: top-N agentes por métricas de influência
  • Cenários: projeções probabilísticas baseadas em tendências
🐠
Módulo 3.5

BettaFish Profundo: ForumEngine e Debate

Acessar
O que é:

O BettaFish opera com 5 agentes especializados: QueryEngine (decompõe perguntas complexas em sub-queries), MediaEngine (coleta dados de fontes externas via crawling), InsightEngine (analisa e sintetiza os dados coletados), ReportEngine (gera relatórios estruturados) e ForumEngine (promove debate entre agentes com perspectivas divergentes para stress-test de conclusões).

Por que aprender:

A arquitetura de 5 agentes é um padrão de design avançado onde cada agente tem uma responsabilidade única. Entender como eles se comunicam é essencial para depurar problemas e estender funcionalidades.

Conceitos-chave:
  • Pipeline: Query → Media → Insight → Forum → Report
  • Cada agente tem seu próprio LLM context e ferramentas
  • Comunicação via shared state (não mensagens diretas)
  • Orquestração: controlador central decide sequência e repetições
O que é:

O ForumEngine implementa "chain-of-thought collision" - múltiplos agentes com perspectivas diferentes debatem uma questão, cada um expondo seu raciocínio completo. Os agentes podem concordar, discordar, ou refinar suas posições com base nos argumentos dos outros. O resultado é um debate estruturado que expõe pontos fracos em conclusões e força consideração de múltiplos ângulos.

Por que aprender:

O ForumEngine é o diferencial do BettaFish em relação a outros sistemas multi-agente. Enquanto a maioria dos sistemas produz uma única perspectiva, o debate revela incertezas, contradições e nuances que um agente sozinho não capturaria.

Conceitos-chave:
  • Chain-of-thought collision: raciocínios explícitos se confrontam
  • Adversarial perspectives: agentes designados como devil's advocate
  • Convergência: critério de parada quando posições estabilizam
  • Output: resumo do debate com pontos de consenso e dissenso
O que é:

A comunicação entre agentes no BettaFish segue o padrão publish-subscribe: cada agente publica suas conclusões em um log compartilhado, e os outros agentes se inscrevem para receber atualizações relevantes. Um moderador LLM filtra e organiza as mensagens, impedindo loops de concordância vazia e garantindo que o debate progride substancialmente.

Por que aprender:

O padrão pub-sub com moderação LLM é uma arquitetura escalável para sistemas multi-agente. Ele desacopla os agentes, permite adição de novos participantes sem refatoração, e a moderação previne degeneração da conversa.

Conceitos-chave:
  • Shared log: registro central de todas as mensagens
  • Subscriptions: cada agente recebe apenas mensagens relevantes
  • Moderador LLM: filtra redundâncias e garante progresso
  • Desacoplamento: agentes não precisam conhecer uns aos outros
O que é:

O BettaFish implementa 5 modelos de análise de sentimento intercambiáveis: (1) Transformer pré-treinado (rápido, baseline), (2) BERT com LoRA fine-tuning (alta precisão, médio custo), (3) GPT-2 com LoRA (geração + classificação), (4) Qwen3 via API (multilíngue, custo variável), e (5) SVM clássico com TF-IDF (rápido, sem GPU). A escolha depende de requisitos de precisão, custo e latência.

Por que aprender:

A análise de sentimento é fundamental para medir polarização, satisfação e tendências em simulações sociais. Ter 5 opções permite otimizar o trade-off entre qualidade e custo para cada caso de uso.

Conceitos-chave:
  • LoRA: Low-Rank Adaptation para fine-tuning eficiente
  • TF-IDF + SVM: baseline clássico sem dependência de GPU
  • Multilíngue: Qwen3 para análise em português e outros idiomas
  • Benchmark comparativo: precisão vs latência vs custo por modelo
O que é:

O pipeline completo do BettaFish segue 5 estágios: (1) Query: decomposição da pergunta do usuário em sub-queries. (2) Collection: crawling de fontes + dados internos. (3) Forum: N ciclos de debate entre agentes com perspectivas divergentes. (4) IR (Information Retrieval): consolidação e ranking de evidências. (5) Rendering: geração do relatório final em Markdown com citações e dados.

Por que aprender:

Entender o pipeline end-to-end permite identificar gargalos de performance, otimizar custos (reduzindo ciclos de forum quando desnecessário) e customizar estágios específicos para casos de uso particulares.

Conceitos-chave:
  • Query decomposition: uma pergunta vira múltiplas sub-queries
  • Forum cycles: configurável de 1 a N rounds de debate
  • IR consolidation: deduplicação e ranking de evidências
  • Rendering: template-based Markdown generation
O que é:

O BettaFish suporta 4 modos de execução: (1) Multi-agente completo (todos os 5 engines ativos, maior custo e qualidade). (2) Agente isolado (apenas 1 engine, para debug e testes rápidos). (3) Apenas crawler (coleta dados sem análise, útil para construir datasets). (4) Apenas relatório (usa dados pré-coletados, útil para re-gerar relatórios com parâmetros diferentes).

Por que aprender:

Diferentes cenários exigem diferentes modos. Debug requer agente isolado, produção requer multi-agente completo, e preparação de dados requer apenas crawler. Saber escolher o modo correto otimiza custo e tempo.

Conceitos-chave:
  • Flag --mode para selecionar modo de execução
  • Multi-agent: pipeline completo, ~5-15min por query
  • Crawler-only: coleta sem processamento LLM
  • Report-only: regeneração a partir de dados cached
🔧
Módulo 3.6

Customização e Forks

Acessar
O que é:

O fork inematds é uma versão extensivamente modificada do BettaFish original. As principais mudanças incluem: substituição do Zep Cloud por KuzuDB (eliminando dependência de cloud), suporte a múltiplos provedores de LLM (OpenAI, Anthropic, Ollama, Groq), tradução completa para PT-BR dos prompts e interface, e funcionalidade de stop/resume para builds Docker longas.

Por que aprender:

O fork inematds é a base do MiroFish. Entender suas mudanças em relação ao upstream permite contribuir com melhorias, resolver conflitos de merge e adaptar funcionalidades futuras do upstream.

Conceitos-chave:
  • KuzuDB substituindo Zep Cloud: zero custo de memória
  • Multi-LLM: LiteLLM como router para múltiplos provedores
  • PT-BR: prompts e UI traduzidos sem perda de qualidade
  • Stop/resume: persistência de estado entre builds Docker
O que é:

O MiroFish-Offline é um fork que opera 100% localmente, sem nenhuma chamada a APIs externas. Usa Ollama para inferência LLM local (com modelos como Llama 3, Mistral, Qwen), Neo4j Community Edition para grafo de conhecimento, e embeddings locais via sentence-transformers. Ideal para ambientes air-gapped ou com restrições de privacidade.

Por que aprender:

Nem todos os ambientes permitem enviar dados para APIs cloud. Organizações com dados sensíveis, militares, governamentais ou acadêmicas com orçamento limitado precisam de uma solução 100% local.

Conceitos-chave:
  • Ollama: servidor local de inferência LLM com API OpenAI-compatible
  • Neo4j Community: grafo de conhecimento self-hosted
  • sentence-transformers: embeddings locais sem API
  • Requisitos de hardware: mínimo 16GB RAM, recomendado GPU
O que é:

O MIGRATION-GUIDE documenta 7 bugs críticos encontrados no BettaFish upstream e corrigidos nos forks: (1) race condition no shared log, (2) memory leak no KuzuDB connection pool, (3) encoding UTF-8 quebrado em prompts PT-BR, (4) timeout silencioso em crawling, (5) duplicação de embeddings no índice vetorial, (6) inconsistência no formato de datas entre agentes, e (7) overflow em contagem de tokens para modelos com context window pequeno.

Por que aprender:

Esses bugs são armadilhas para qualquer pessoa que tente usar o upstream diretamente ou criar seu próprio fork. Conhecê-los previne horas de debug em problemas já resolvidos.

Conceitos-chave:
  • Race condition: acesso concorrente ao shared log sem lock
  • Memory leak: conexões KuzuDB não liberadas em exceções
  • Token overflow: truncamento inteligente para context windows pequenos
  • MIGRATION-GUIDE.md: documentação de todas as correções
O que é:

Os forks adicionam endpoints REST que o upstream não possui: PATCH /simulation/{id}/rename (renomear simulações em andamento), POST /simulation/{id}/pause (pausar simulação preservando estado completo), POST /simulation/{id}/resume (retomar simulação do ponto exato onde parou), e POST /simulation/{id}/snapshot (criar checkpoint para rollback).

Por que aprender:

Simulações longas (horas ou dias) precisam de controle operacional. Pausar para reduzir custos, retomar após manutenção, e snapshots para experimentar variações a partir de um mesmo ponto são funcionalidades essenciais em produção.

Conceitos-chave:
  • PATCH /simulation/{id}/rename: renomeação sem interrupção
  • POST /pause: serialização do estado completo para disco
  • POST /resume: deserialização e continuação transparente
  • POST /snapshot: checkpoint para branching de simulações
O que é:

A configuração Docker customizada consolida todos os serviços (API, frontend, KuzuDB, workers) em um único container com multi-stage build. Inclui Traefik como reverse proxy com SSL automático via Let's Encrypt, health checks integrados, e persistent volumes para dados de simulação. O Dockerfile usa cache layers otimizados para rebuilds rápidos.

Por que aprender:

Deploy em produção requer containerização robusta. A configuração com Traefik e SSL automático permite deploy em VPS com HTTPS sem configuração manual de certificados, reduzindo a barreira para colocar o sistema em produção.

Conceitos-chave:
  • Multi-stage build: imagem final ~500MB vs ~2GB naive
  • Traefik: reverse proxy com auto-discovery de serviços
  • Let's Encrypt: SSL automático com renovação programada
  • Persistent volumes: /data/simulations sobrevive a container restarts
O que é:

Guia passo-a-passo para criar um fork customizado do BettaFish: (1) Fork do repositório inematds (não do upstream). (2) Configuração de CI/CD com GitHub Actions. (3) Pontos de extensão: como adicionar novos engines, novos modelos de sentimento, novas fontes de dados. (4) Convenções de código e testes. (5) Como manter sincronização com o upstream via rebases periódicos.

Por que aprender:

A capacidade de criar e manter um fork próprio é o que transforma o MiroFish de uma ferramenta pronta em uma plataforma extensível. Cada organização pode ter seu fork com customizações específicas enquanto se beneficia de melhorias do upstream.

Conceitos-chave:
  • Fork do inematds: base mais estável que upstream direto
  • Pontos de extensão: interfaces plugáveis para engines e modelos
  • Rebase workflow: sincronização periódica com upstream
  • Testing: testes de integração para validar customizações