Reasoning + Acting em loop, ferramentas de análise e geração de relatórios estruturados
ReACT (Reasoning + Acting) é um paradigma de agentes LLM proposto por Yao et al. (2023) onde o modelo alterna entre raciocínio explícito e execução de ferramentas. Em cada iteração do loop: (1) Thought - o LLM raciocina sobre o que precisa fazer. (2) Action - escolhe uma ferramenta e seus parâmetros. (3) Observation - recebe o resultado da ferramenta. (4) Thought - raciocina sobre o resultado e decide se precisa de mais informação. O loop continua até o agente decidir que tem informação suficiente para gerar a resposta final, ou até atingir o limite máximo de iterações (tipicamente 5-10). Diferente de chain-of-thought puro, ReACT permite ao agente buscar ativamente informações em vez de apenas raciocinar sobre o que já está no prompt.
ReACT é o paradigma fundamental do ReportAgent do BettaFish. Sem ele, o agente estaria limitado ao que está no context window. Com ReACT, ele busca dados, entrevista agentes, e analisa traces ativamente, produzindo relatórios baseados em evidência em vez de especulação.
O ReportAgent dispõe de três ferramentas especializadas no loop ReACT: (1) insight_forge - analisa os dados brutos da simulação para identificar padrões estatísticos: clusters de opinião, tendências temporais, outliers, correlações entre ações de diferentes agentes. Recebe uma query analítica e retorna insights estruturados. (2) panorama_search - realiza busca ampla em todas as fontes: posts da simulação, dados externos crawlados, memórias de agentes, logs de ações. Combina full-text search com embedding search para máximo recall. (3) interview_agents - permite interrogar agentes individuais pós-simulação, re-instanciando-os com toda sua persona e memória para responder perguntas específicas.
Cada ferramenta serve uma dimensão analítica diferente: insight_forge encontra padrões quantitativos, panorama_search provê contexto qualitativo amplo, e interview_agents oferece explicação causal individual. O ReportAgent combina as três para produzir análise multi-dimensional.
A geração de relatório segue um pipeline bifásico para garantir coerência em documentos longos: Fase 1 (Outline) - Após coletar dados via ReACT loop, o LLM gera um outline em JSON com a estrutura do relatório: {sections: [{title, key_points, data_references, subsections}]}. O outline é validado contra um schema e pode ser ajustado antes da Fase 2. Fase 2 (Expansion) - Cada seção do outline é expandida independentemente em Markdown completo, com dados, citações de agentes, tabelas e análise. Seções independentes podem ser geradas em paralelo. A montagem final concatena seções com transições geradas para coerência narrativa.
O pipeline bifásico é uma técnica reutilizável para qualquer geração de documentos longos com LLM. Evita o problema de "context drift" em documentos extensos e permite iteração rápida na estrutura sem reger todo o conteúdo.
Cada simulação gera traces: logs detalhados de todas as ações de todos os agentes com timestamps, contexto e reasoning. O insight_forge processa esses traces para identificar: (1) Turning points - rounds onde métricas agregadas (sentimento médio, volume de posts, diversidade de opinião) mudam abruptamente, detectados via change point detection com algoritmo PELT. (2) Coalizões - clusters de agentes que convergem em opinião e comportamento, identificados via community detection no grafo de interações. (3) Cascatas de influência - sequências de ações onde um post desencadeia reações em cadeia, reconstruídas como árvores de propagação a partir dos traces de reply/repost.
Traces brutos são incompreensíveis em escala. Uma simulação com 500 agentes e 50 rounds gera 25.000+ entradas de log. A análise automatizada transforma esse volume em insights acionáveis: "no round 23, a coalizão A se fragmentou após o post viral do Agent_127".
A ferramenta interview_agents permite ao ReportAgent "conversar" com agentes individuais pós-simulação. O processo: (1) O agente é re-instanciado com toda sua persona (Big Five, perspectiva, posicionamento) e memória completa (todas as memórias acumuladas até o final da simulação). (2) O ReportAgent faz perguntas dirigidas como "Por que você mudou de opinião sobre X entre o round 15 e 30?" ou "Qual post mais influenciou sua posição atual?". (3) O agente responde com seu chain-of-thought, referenciando memórias específicas. As respostas são formatadas como citações diretas no relatório final.
Entrevistas com agentes são a ponte entre análise quantitativa e compreensão qualitativa. Elas adicionam narrativa humana aos padrões estatísticos. Um relatório que diz "3 agentes mudaram de opinião" é informativo; um que inclui "Agent_042 disse: mudei de opinião depois de ler o post sobre os dados econômicos" é convincente.
O relatório final segue uma estrutura padronizada de 6 seções: (1) Executive Summary - 3 parágrafos com os achados mais importantes, escrito por último para refletir todo o conteúdo. (2) Tendências Identificadas - padrões macro com dados quantitativos e gráficos textuais (sparklines ASCII). (3) Atores-Chave - top-10 agentes por influence score com perfil, trajetória de opinião e citações de entrevista. (4) Pontos de Virada - momentos críticos com timeline e análise causal. (5) Dinâmicas de Grupo - mapa de coalizões, conflitos inter-grupo e alianças inesperadas. (6) Cenários Prováveis - 3 cenários projetados (otimista, pessimista, mais provável) com probabilidades estimadas.
A estrutura do relatório é o produto final visível ao tomador de decisão. Ela transforma dados complexos de simulação em narrativa clara e acionável. Entender cada seção permite customizar o template para diferentes audiências (executivos, pesquisadores, analistas).