Simulando pessoas 👩‍👩‍👦

A Microsoft tem um projeto open-source interessante — TinyTroupe. Qual é a essência? A maioria dos frameworks é voltada para assistance — ajuda na resolução de tarefas. O TinyTroupe é voltado para simulação. A diferença é fundamental: um assistente deve ser eficiente, enquanto um simulador deve ser verossímil. Uma pessoa verossímil comete erros, tem preconceitos, lembra do café da manhã e possui personalidade.

O que há dentro deste zoológico Python:
1. TinyPerson: O agente possui mental_faculty (habilidades cognitivas) e dois tipos de memória: EpisodicMemory (cadeia de eventos) e SemanticMemory (base de conhecimento e fatos).
2. Action Correction: Se o agente LLM de repente "esquece" sua identidade (por exemplo, um vegano começa a recomendar uma churrascaria), o sistema de validação TinyPersonValidator pega isso, dá uma bronca no agente e o força a regenerar a ação.
3. TinyWorld: O ambiente. Aqui os agentes interagem de acordo com regras que você descreve em código. Você pode até criar uma rede social com grafos de relacionamento.
4. TinyFactory: Gerador de multidão. Se você precisa de 50 médicos brasileiros que amam heavy metal e ecologia para testar seu novo aplicativo, a fábrica os produz com base em dados demográficos.

Para que tudo isso?
Dados sintéticos: Em vez de incomodar usuários reais ou comprar conjuntos de dados duvidosos, você testa o projeto em um grupo focal de 100 agentes com diferentes personalidades.
Teste de software: Você pode fazer o agente "usar" seu chatbot ou mecanismo de busca e ver onde ele quebra a lógica com suas expectativas humanas.
Marketing: Avaliação de anúncios em uma audiência simulada antes de gastar todo o orçamento.

Internamente, é uma típica stack Python moderna: llama-index para RAG, chevron para templates de prompts e muitas especificações JSON. A principal desvantagem é que, por padrão, tudo é voltado para OpenAI.

E além de tudo, isso é uma prova de que vivemos em uma matrix 🌝

#opensource_legal