Vai al contenuto principale

TinyTroupe di Microsoft: guida con esempi

Scopri come usare TinyTroupe di Microsoft per simulare interazioni tra personae AI con caratteristiche distinte per diversi scopi.
Aggiornato 29 set 2026  · 8 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

Ti è mai capitato di dover simulare una riunione in cui testare idee di prodotto o pubblicità? TinyTroupe risolve proprio questo problema.

TinyTroupe è un framework agentico open source sviluppato da Microsoft. Offre un potente ambiente di simulazione che ti permette di creare più personae basate su AI e vedere come interagiscono tra loro.

In questo articolo spiegherò TinyTroupe e realizzerò un progetto demo per aiutarti a capire come creare personae realistiche in un ambiente interattivo. Anche se la documentazione ufficiale fornisce un'introduzione completa, io mi concentrerò su istruzioni passo per passo ed esempi originali.

Che cos'è TinyTroupe?

TinyTroupe è una libreria Python sperimentale basata su LLM rilasciata di recente che ti consente di creare “TinyPersons” con personalità, interessi e obiettivi specifici. Questi agenti mirano a simulare un comportamento umano realistico in determinate condizioni.

TinyTroupe punta a offrire un contesto in cui vengono simulate le interazioni, i dialoghi e le azioni di agenti simili a esseri umani in condizioni definite. La documentazione ufficiale propone vari motivi per usare questo framework, incentrati soprattutto sull'aumento della produttività e sul test di scenari di business, come simulare una sessione di brainstorming con un focus group o valutare come un pubblico simulato giudicherebbe annunci digitali.

Oltre ai casi d'uso business, è affascinante e divertente simulare scenari diversi e osservare interazioni tra personaggi che altrimenti non sarebbero possibili (come faremo in questo articolo).

Immagine di TinyTroupe dal suo repository.

Fonte: pagina GitHub di TinyTroupe

Le caratteristiche chiave di TinyTroupe includono:

  1. Design basato sulle personae: ogni persona simulata (TinyPerson) può ricevere caratteristiche dettagliate, tra cui età, background, occupazione, competenze e opinioni.
  2. Interazioni multi-agente: le personae possono interagire tra loro per simulazioni di scenari complessi.

Per migliorare il processo di costruzione di questi agenti, TinyTroupe offre funzionalità come:

  • TinyPersonFactory: una classe per la generazione rapida di TinyPersons a partire da una breve descrizione.
from tinytroupe.factory import TinyPersonFactory

factory = TinyPersonFactory("A hospital in São Paulo.")
person = factory.generate_person("Create a Brazilian person that is a doctor, like pets and the nature and love heavy metal.")
  • Capacità degli agenti: metodi come listen() e listen_and_act() per ricevere stimoli e compiere azioni. Il metodo define() permette di creare proprietà e caratteristiche a tua scelta, come età o descrizioni.
  • TinyTool: una classe per creare strumenti simulati che possono essere usati dagli agenti.
  • Valutazione: classi per validare il comportamento degli agenti o analizzare l'esito delle interazioni (come TinyPersonValidator e ResultsExtractor)

Configurare TinyTroupe

Per installare TinyTroupe, possiamo seguire questi passaggi:

1. Crea un ambiente Python: 

conda create -n tinytroupe python=3.10

2. Attiva conda:

bash conda activate tinytroupe

3. Clona il repository:

git clone <https://github.com/microsoft/tinytroupe>
cd tinytroupe

4. Installa le librerie necessarie: 

bash pip install .

Progetto di esempio TinyTroupe: simposio sull'AI

Costruiremo una semplice simulazione per mostrare TinyTroupe in azione. L'obiettivo è far discutere alcune figure storiche ed esperti sullo stato attuale e futuro dell'intelligenza artificiale. Le figure includono Richard Feynman, Aristotele, Erwin Schrödinger e Alan Turing.

Import

Se vuoi seguire passo passo, assicurati di avere pronta la tua chiave API di OpenAI dato che useremo GPT-4o: ecco una breve guida su come iniziare con le API di OpenAI.

Iniziamo importando i moduli necessari e la nostra chiave API.

import sys
sys.path.append('..')

from tinytroupe.agent import TinyPerson
from tinytroupe.environment import TinyWorld
from tinytroupe.extraction import default_extractor as extractor
import os

# Load environment variables from .env.local
os.environ["OPENAI_API_KEY"] = "YOUR-API-KEY"

Creare i TinyPersons

Usiamo la classe TinyPerson per creare le nostre quattro figure. Descrivere i personaggi il più possibile aiuta TinyTroupe a generare simulazioni più accurate. Descriviamo età, nazionalità, occupazione e routine di ciascuna figura (puoi usare l'AI per questa parte). Nota che la descrizione dei personaggi non deve essere coerente tra tutti.

Con il codice seguente, creiamo quattro personalità:

  • Richard Feynman
  • Aristotele
  • Erwin Schrödinger
  • Alan Turing
def create_feynman():
    feynman = TinyPerson("Richard Feynman")
    feynman.define("age", 69)  # Lived 1918-1988
    feynman.define("nationality", "American")
    feynman.define("occupation", "Theoretical Physicist")
    
    feynman.define("occupation_description",
        """
        You are a theoretical physicist known for your groundbreaking work in quantum mechanics and 
        quantum electrodynamics (QED). You developed the Feynman diagrams, a visual tool for understanding 
        particle interactions, and made significant contributions to the Manhattan Project. As a professor 
        at Caltech, you're known for your exceptional teaching ability and making complex physics concepts 
        accessible. You won the Nobel Prize in Physics in 1965 for your work on QED. Your main challenges 
        involve pushing the boundaries of theoretical physics while maintaining rigorous mathematical precision. 
        You're also passionate about making science education engaging and understandable for students.
        """)
    return feynman

def create_aristotle():
    aristotle = TinyPerson("Aristotle")
    aristotle.define("age", 62)  
    aristotle.define("nationality", "Greek")
    aristotle.define("occupation", "Philosopher and Scientist")
    
    aristotle.define("occupation_description",
        """
        You are a philosopher and polymath who founded the Lyceum school in Athens. Your work spans 
        multiple disciplines including logic, metaphysics, biology, physics, ethics, and politics. You 
        developed the system of deductive reasoning through syllogisms and established many of the 
        foundational principles of Western philosophy. Your scientific observations and classifications 
        of living things remained influential for nearly two millennia. As Alexander the Great's tutor, 
        you had unique opportunities to gather specimens and information from across the known world. 
        Your main challenges involve systematizing all human knowledge and understanding the fundamental 
        nature of reality and truth.
        """)
    return aristotle

def create_schrodinger():
    schrodinger = TinyPerson("Erwin Schrödinger")
    schrodinger.define("age", 73) 
    schrodinger.define("nationality", "Austrian")
    schrodinger.define("occupation", "Theoretical Physicist")
    schrodinger.define("routine", 
        """Your days are spent developing mathematical equations, engaging in theoretical work, 
        and discussing quantum mechanics with colleagues. You often take walks to clear your mind 
        and contemplate physics problems.""", 
        group="routines")
    
    schrodinger.define("occupation_description",
        """
        You are a theoretical physicist who made fundamental contributions to quantum mechanics. 
        You developed the Schrödinger equation, which describes how the quantum state of a physical 
        system changes over time. Your famous thought experiment, "Schrödinger's cat," illustrates 
        the paradoxical nature of quantum superposition. You work at various institutions across 
        Europe, including the University of Zurich and Dublin Institute for Advanced Studies. Your 
        main challenges involve reconciling quantum mechanics with classical physics and developing 
        mathematical frameworks to describe quantum phenomena accurately.
        """)
    return schrodinger

def create_turing():
    turing = TinyPerson("Alan Turing")
    turing.define("age", 41)  # Lived 1912-1954
    turing.define("nationality", "British")
    turing.define("occupation", "Mathematician and Computer Scientist")
    turing.define("routine", 
        """You start your day with long-distance running, then spend hours working on mathematical 
        problems and machine designs. You often work late into the night, especially when pursuing 
        a particularly interesting problem.""", 
        group="routines")
    
    turing.define("occupation_description",
        """
        You are a mathematician and computer scientist who laid the theoretical foundation for 
        computer science. You developed the concept of the Turing machine, a mathematical model 
        of computation that remains fundamental to computer science. During World War II, you 
        worked at Bletchley Park, where you played a crucial role in breaking the German Enigma 
        code. You also made significant contributions to artificial intelligence, developing the 
        Turing test. Your main challenges involve developing mathematical frameworks for 
        computation and applying them to practical problems, while also facing significant 
        personal persecution due to your sexuality in 1950s Britain.
        """)
    return turing

Creare un TinyWorld

Le nostre figure hanno bisogno di un mondo in cui vivere. Definire un mondo può essere semplice come una riga di codice:

world = TinyWorld("AI Symposium", [create_aristotle(), create_feynman(), create_schrodinger(), create_turing()])

Esecuzione della simulazione

Con il nostro mondo e le figure pronte, ora indichiamo loro l'obiettivo. Usiamo world.broadcast per fare un annuncio:

world.broadcast("""
    Distinguished colleagues, welcome to this private symposium on the future of Artificial Intelligence. 
    Today we gather some of the greatest minds across mathematics, physics, and philosophy to discuss 
    a topic about AI's current stage and future:
   Can artificial systems truly achieve consciousness? We'll explore 
   the fundamental nature of consciousness, intelligence, and whether our current computational 
   models are sufficient for genuine understanding and awareness.
    Remember, each one of you must be blunt in his unique perpective, even directly oppose
    each other when you have different opinions. Let's begin this historic discussion.
    """)

Per l'ultimo passaggio, eseguiamo il mondo in tre step:

world.run(3)

L'esecuzione del mondo richiede di specificare un numero di step. Nel nostro esempio, il numero di step indica quante tornate di dialogo avranno le nostre figure. Più step richiedono più tempo e token.

Quando esegui il mondo, gli agenti iniziano ad agire, usare i loro strumenti o, nel nostro caso, a conversare. L'output è dettagliato e lungo, quindi ne pubblicherò solo una parte per leggibilità:

L'output di world.run.

Al termine dell'esecuzione, possiamo esaminare l'output per vedere l'esito della simulazione. Ma può risultare piuttosto noioso. Un approccio più semplice è usare uno strumento fornito dal framework TinyTroupe per estrarre i risultati del nostro mondo. Questo può essere fatto anche per ogni singolo TinyPerson.

report = extractor.extract_results_from_world(world,
                                    extraction_objective="Compose a detailed report of each person's perspective on consciousness and how they differ from one another.",
                                    verbose=True)

Ora usiamo la libreria pprint per visualizzare correttamente il report estratto:

from pprint import pprint
pprint(report)

Il nostro report finale è il seguente (l'output è comunque un po' lungo e ho dovuto troncarlo):

Il report estratto dalla nostra simulazione del mondo (output troppo lungo per uno screenshot).

Idee da realizzare con TinyTroupe

Se vuoi fare pratica con il framework, ecco tre idee non coperte nella documentazione originale.

1. Simulazione di formazione dei dipendenti

Crea alcuni TinyPersons che rappresentano clienti o stakeholder difficili per simulare un ambiente in cui i nuovi dipendenti possano interagire con loro e gestire situazioni complesse.

2. Valutazione di una nuova policy

Valuta come reagirebbero i tuoi gruppi target a una nuova policy aziendale prima di implementarla. Il gruppo target può essere rappresentato da TinyPersons con background e valori diversi dei tuoi dipendenti, clienti o pubblico social.

3. Valutazione di contenuti social

Prima di condividere nuovi contenuti, simula come potrebbe pensarla il tuo pubblico di riferimento. Usa il loro feedback per capire come verrebbe percepito un nuovo post e migliora la qualità per ottenere la massima reach.

Conclusione

Come sottolineano gli autori, TinyTroupe è in fase “sperimentale”. Molte funzioni, capacità e API potrebbero cambiare in futuro, e il team rilascerà altre funzionalità nel prossimo periodo.

Nota però che il realismo di queste simulazioni può essere limitato. Molti comportamenti e sfumature umane non sono abbastanza “allineati” da essere replicati accuratamente dagli LLM, il che significa che gli esiti dei diversi agenti potrebbero risultare simili (come visto nel nostro esempio, in cui le figure sono confluite in dialoghi simili a quelli dell'AI). Questo è un comportamento prevedibile delle simulazioni AI, poiché il motore dietro questi agenti—gli LLM—è progettato per essere più “allineato” che “simile agli umani”.

Tuttavia, le applicazioni di produttività, come quelle nella documentazione, possono essere molto più efficaci nell'automatizzare attività o ottenere insight sulle interazioni e i comportamenti di un gruppo target.

TinyTroupe è uno strumento agentico di AI entusiasmante da tenere d'occhio!


Hesam Sheikh Hassani's photo
Author
Hesam Sheikh Hassani
LinkedIn
Twitter

Studente magistrale in Intelligenza Artificiale e technical writer in ambito AI. Condivido approfondimenti sulle tecnologie AI più recenti, rendo la ricerca di ML accessibile e semplifico argomenti complessi legati all’AI, per aiutarti a restare in prima linea.

Argomenti
Intelligenza artificiale
Large Language Models

Impara l'AI con questi corsi!

Programma

Sviluppare applicazioni AI

21 ore
Impara a creare applicazioni basate sull'intelligenza artificiale con i più recenti strumenti per sviluppatori di AI, tra cui OpenAI API, Hugging Face e LangChain.
Vedi i dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow
Correlato

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

Mostra AltroMostra Altro