Phase 16 - Lesson 17
Agentes Generativos e Simulação Emergente
Park et al. 2023 (UIST '23, arXiv:2304.03442) povoaram Smallville, a sandbox de 25 agentes, com uma arquitetura de três partes: fluxo de memória (registro em linguagem natural), reflexão (sínteses de nível superior que o agente gera sobre seu próprio fluxo) e plano (comportamento a nível diário, depois subplanos). O resultado marcante foi a emergência da festa de Dia dos Namorados: um agente semeado com "deseja dar uma festa de Dia dos Namorados", sem script adicional, gerou convites que se espalharam pela população, datas coordenadas, e a festa aconteceu — a partir de 24 agentes que começaram sem conhecimento dela. As ablações mostram que todos os três componentes são necessários para a credibilidade. As falhas documentadas são erros de normas espaciais (entrar em lojas fechadas, compartilhar banheiros de uso individual). Esta é a arquitetura de referência para simulações de agentes e avaliação social multiagente em 2026.
Tipo: Learn + Build Linguagens: Python (stdlib) Pré-requisitos: Fase 16 · 04 (Primitive Model), Fase 16 · 13 (Shared Memory) Tempo: ~75 minutos
O Problema
A maioria dos sistemas multiagente consiste em equipes rigidamente roteirizadas: o planejador planeja, o codificador codifica, o revisor revisa. Isso funciona para tarefas bem definidas. Mas não captura o comportamento emergente e não roteirizado que surge quando os agentes possuem memória, prioridades e um mundo aberto. Pesquisas, simulações de sociedade e, cada vez mais, a IA de jogos precisam deste segundo tipo.
A arquitetura Smallville é a referência para isso. Até Park 2023, as melhores simulações de agentes eram seguidoras de scripts rasos; depois dela, o padrão tornou-se o padrão para agentes generativos em mundos abertos. Se você construir uma simulação de agentes em 2026, você usará os três componentes da Smallville ou justificará explicitamente por que não o está fazendo.
Conceito
Os três componentes
Fluxo de memória. Um registro append-only de observações, ações, reflexões e planos. Cada entrada possui um carimbo de data/hora, um tipo, uma descrição (in natural language) e metadados derivados: recência, importância (autoavaliada de 1 a 10 pelo agente) e relevância (similaridade de cosseno com a consulta atual).
[2026-02-14 09:12:03] observation: Isabella Rodriguez asked me if I like jazz
[2026-02-14 09:14:22] reflection: I enjoy long conversations about music
[2026-02-14 10:05:00] plan: Attend Isabella's Valentine's Day party tonight
A recuperação de memória combina as três pontuações: score = w_recency * e^(-decay * age) + w_importance * importance + w_relevance * cos_sim. As top-k entradas entram no prompt atual.
Reflexão. Periodicamente (a cada N memórias ou em eventos importantes), o agente gera sínteses de ordem superior a partir de memórias recentes. As entradas de reflexão voltam para o fluxo e podem ser recuperadas como qualquer outra memória. É assim que os agentes constroem "entendimentos" — o equivalente da arquitetura para crenças de longo prazo.
Plano. Decomposição top-down. Primeiro, um plano a nível diário em termos gerais ("ir trabalhar, jantar com Klaus"). Depois, planos a nível de hora. Em seguida, planos a nível de ação. Os planos são revisáveis: quando uma observação contradiz um plano, o agente replaneja apenas o segmento afetado.
Por que os três importam (ablação)
Park et al. executaram ablações removendo cada um dos componentes: observação, reflexão e plano. Cada ablação prejudica a credibilidade:
- Sem observação, o agente perde o contexto e age com base em crenças desatualizadas.
- Sem reflexão, o agente não consegue formar crenças de ordem superior; as interações permanecem superficiais.
- Sem plano, o comportamento torna-se ruído reativo; os objetivos se dissipam.
As pontuações de credibilidade dadas por avaliadores humanos são mais altas com todos os três componentes; a remoção de qualquer um deles produz uma regressão mensurável.
A emergência da festa de Dia dos Namorados
Um agente, Isabella Rodriguez, é semeado com o objetivo "deseja dar uma festa de Dia dos Namorados no Hobbs Cafe em 14 de fevereiro às 17h". Os outros 24 agentes não recebem semente alguma. Ao longo dos dias simulados:
- O plano de Isabella inclui convidar pessoas.
- Cada convite se torna uma observação no fluxo de memória de um vizinho.
- A reflexão desse vizinho gera crenças: "Isabella está dando uma festa".
- O plano do vizinho incorpora "ir à festa em 14 de fevereiro".
- Os vizinhos contam a outros vizinhos. O convite se espalha sem coordenação central.
- Às 17h do dia 14 de fevereiro, vários agentes convergem no Hobbs Cafe.
Isso é emergência no sentido técnico: um comportamento a nível de sistema (uma festa) surgiu de interações locais (convites bilaterais + planejamento individual) sem um orquestrador central.
Os modos de falha documentados
Park et al. documentam explicitamente:
- Erros de normas espaciais. Agentes entram em lojas fechadas. Agentes tentam usar o mesmo banheiro individual simultaneamente. Agentes comem em salas não destinadas à alimentação. O modelo não infere normas físico-sociais apenas a partir do ambiente.
- Estouro de memória. Execuções de simulação profundas fazem com que o custo de recuperação de memória cresça. Solução prática: compactação periódica de memória (resumir e podar) e decaimento em entradas de baixa importância.
- Alucinação na reflexão. As reflexões podem inventar relacionamentos que não existem no fluxo de memória. Mitigação: incluir IDs de memória de origem nos prompts de reflexão e verificar no momento da recuperação.
Esses são modos de falha relevantes para a produção: qualquer simulação de agentes em 2026 os herda.
Regras de implementação de três componentes
- A memória é append-only. Nunca modifique uma entrada de memória. Correções são novas entradas.
- As pontuações de importância são baratas. Chame o LLM para avaliar a importância de 1 a 10 no momento da gravação. Cacheie a pontuação.
- A recuperação é classificada, não filtrada. Top-k por pontuação combinada; não use filtros rígidos (que perdem contexto).
- A reflexão roda periodicamente. Ative quando a soma da importância das memórias não processadas exceder um limite (por exemplo, 150).
- Os planos são revisáveis. Quando uma nova observação contradisser um plano, regenere apenas o segmento afetado, não o plano inteiro.
Agentes generativos além de Smallville
A literatura subsequente de 2024-2026 estende a arquitetura:
- Simulação social multiagente para pesquisa de políticas / mercado. Populações do tipo Smallville simulam o comportamento do usuário em resposta a recursos. Mais rápido que testes A/B; a precisão é contestada.
- IA de NPC para jogos. RPGs com agentes Smallville produzem histórias emergentes em vez de missões roteirizadas.
- Benchmarks de avaliação de agentes generativos. Em vez da precisão da tarefa, a métrica passa a ser a credibilidade + coerência do comportamento ao longo de execuções longas.
A arquitetura é a referência. As extensões trocam componentes (banco de dados vetorial para memória, reflexão aumentada por recuperação, plano neurossimbólico), mas mantêm a estrutura de três partes.
Por que isso importa para a engenharia multiagente
Smallville é a prova de conceito de que a emergência multiagente é barata quando os componentes estão corretos. A arquitetura já foi replicada em modelos de código aberto (LLMs menores perdem credibilidade de forma gradual, não abrupta). Qualquer sistema de produção que precise de comportamento social emergente usa essa estrutura. Qualquer sistema que precise de execução rígida de tarefas usa os padrões de supervisor / funções / primitivos do início desta fase.
Build It
code/main.py implementa os três componentes em Python nativo (stdlib) com políticas de agentes roteirizadas (sem LLM real). A demonstração reproduz a emergência da festa de Dia dos Namorados em miniatura:
MemoryStream— registro append-only com recuperação por recência/importância/relevância.reflect(stream)— reflexão roteirizada sobre memórias recentes de alta importância.plan(agent_state)— planos a nível diário e de hora com base nas crenças atuais.- Cenário: 5 agentes. O Agente 1 começa com "dar festa às 17h". Ao longo dos ciclos simulados, o convite se espalha e os agentes convergem.
Execute:
python3 code/main.py
Saída esperada: rastreamento ciclo a ciclo. No ciclo final, pelo menos 3 dos 5 agentes mostram a festa em seus planos e convergem no local da festa. A semente única produziu a chegada coordenada sem qualquer orquestrador.
Use It
outputs/skill-simulation-designer.md projeta uma simulação de agentes generativos: número de agentes, esquema de memória, cadência de reflexão, horizonte de plano e métrica de avaliação.
Ship It
Regras para simulações em produção:
- A memória é o banco de dados. Escolha um banco de dados real (DB vetorial, Postgres) em escala. A stdlib em memória é para protótipos.
- Registre o histórico de recuperação. Para cada ação, registre as top-k memórias que a impulsionaram. Essa é a sua capacidade de depuração.
- Orce tokens por agente. A recuperação + reflexão + plano de cada agente por ciclo corresponde a chamadas de LLM de O(k). N agentes × T ciclos × chamadas por ciclo podem esgotar seu orçamento.
- Compacte a memória periodicamente. Resuma e pode entradas de baixa importância. A política de retenção é uma decisão de design, não um detalhe.
- Detecte violações de normas espaciais / sociais explicitamente. A arquitetura não as aprende sozinha.
Exercícios
- Execute
code/main.py. Confirme que 3+ agentes convergem na festa. Aumente os agentes para 10 — a emergência ainda acontece? - Remova a etapa de reflexão. Como fica o comportamento? Mapeie isso para a descoberta de ablação em Park 2023.
- Introduza um objetivo semeado concorrente ("Klaus quer dar uma palestra de pesquisa às 17h"). Os agentes se dividem ou um objetivo domina? O que determina isso?
- Adicione restrições espaciais: o Hobbs Cafe comporta no máximo 4 agentes. A simulação lida com o transbordamento de forma elegante ou atinge o padrão de falha do "banheiro individual"?
- Leia Park et al. (arXiv:2304.03442) Seção 6 (experimentos de comportamento emergente). Identifique um comportamento não reproduzível em sua miniatura. Qual componente da arquitetura você precisaria aprimorar?
Termos-Chave
| Termo | O que as pessoas dizem | O que realmente significa |
|---|---|---|
| Fluxo de memória | "O diário do agente" | Registro append-only de observações, ações, reflexões e planos. |
| Recência | "Quão nova é a memória" | Pontuação de decaimento exponencial baseada na idade. |
| Importância | "O quanto o agente se importa" | Autoavaliação de 1 a 10 no momento da gravação. Cacheada. |
| Relevância | "Quão relacionado à consulta atual" | Similaridade de cosseno (baseada em embeddings). |
| Reflexão | "Crença de ordem superior" | Síntese gerada a partir de memórias recentes, reinserida como uma nova memória. |
| Plano | "Decomposição em dia/hora/ação" | Árvore de plano top-down. Revisável quando observações geram contradição. |
| Smallville | "A sandbox de Park 2023" | Simulação de 25 agentes que produziu a emergência do Dia dos Namorados. |
| Credibilidade | "A métrica de qualidade" | Pontuação atribuída por avaliadores humanos sobre se o comportamento parece com o de um agente plausível. |
Leitura Adicional
- Park et al. — Generative Agents: Interactive Simulacra of Human Behavior — a arquitetura de referência
- Página do artigo no UIST '23 — local de publicação
- Repositório de código do Smallville — implementação de referência em Python
- Hayes-Roth 1985 — A Blackboard Architecture for Control — arte prévia para agentes com memória estruturada