Ga naar hoofdinhoud

Microsoft's TinyTroupe: een gids met voorbeelden

Leer hoe je Microsoft’s TinyTroupe gebruikt om interacties te simuleren tussen AI-persona’s met uiteenlopende kenmerken voor verschillende doeleinden.
Bijgewerkt 2 okt 2026  · 8 min lezen

Verken met AI

ChatGPTClaudePerplexity

Heb je ooit een meeting willen simuleren waarin je productideeën of advertenties worden getest? TinyTroupe lost dit probleem op.

TinyTroupe is een open-source agentisch framework ontwikkeld door Microsoft. Het biedt een krachtig simulatiekader waarmee je meerdere AI-aangedreven persona’s kunt creëren en kunt zien hoe ze met elkaar interacteren.

In dit artikel leg ik TinyTroupe uit en bouw ik een demoproject om je te laten zien hoe je realistische persona’s maakt in een interactieve omgeving. Hoewel de officiële documentatie een uitgebreide introductie biedt, richt ik me op stapsgewijze begeleiding en originele voorbeelden.

Wat is TinyTroupe?

TinyTroupe is een recent uitgebrachte experimentele op LLM gebaseerde Python-bibliotheek waarmee je “TinyPersons” kunt creëren met specifieke persoonlijkheden, interesses en doelen. Deze agenten zijn bedoeld om realistisch menselijk gedrag onder bepaalde omstandigheden te simuleren.

TinyTroupe wil een setting bieden waarin de interacties, dialogen en acties van mensachtige agenten onder gedefinieerde voorwaarden worden gesimuleerd. De officiële documentatie biedt een aantal ideeën waarom je dit framework zou gebruiken, meestal gericht op het verhogen van de productiviteit en het testen van zakelijke scenario’s, zoals het simuleren van een brainstormsessie door een focusgroep of hoe een gesimuleerd publiek digitale advertenties zou beoordelen.

Naast zakelijke use-cases is het ook fascinerend en leuk om verschillende scenario’s te simuleren en interacties tussen personages te observeren die anders niet mogelijk zouden zijn (zoals we in dit artikel doen).

TinyTroupe image from its repository.

Bron: TinyTroupe GitHub-pagina

Belangrijkste kenmerken van TinyTroupe zijn:

  1. Persona-gebaseerd ontwerp: Elke gesimuleerde persoon (TinyPerson) kan gedetailleerde kenmerken krijgen, waaronder leeftijd, achtergrond, beroep, vaardigheden en meningen.
  2. Multi-agentinteracties: Persona’s kunnen met elkaar interacteren voor complexe scenario-simulaties.

Om het bouwen van deze agenten te verbeteren, biedt TinyTroupe mogelijkheden zoals:

  • TinyPersonFactory: Een klasse voor het snel genereren van TinyPersons op basis van een korte beschrijving.
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.")
  • Agentmogelijkheden: methoden zoals listen() en listen_and_act() om prikkels te ontvangen en acties te ondernemen. De methode define() maakt het mogelijk om eigenschappen en kenmerken naar keuze te creëren, zoals leeftijd of beschrijvingen.
  • TinyTool: Een klasse om gesimuleerde tools te maken die door agenten kunnen worden gebruikt.
  • Evaluatie: Klassen om het gedrag van agenten te valideren of de uitkomst van interacties te analyseren (zoals TinyPersonValidator en ResultsExtractor)

TinyTroupe installeren

Om TinyTroupe te installeren, kunnen we de volgende stappen nemen:

1. Maak een Python-omgeving: 

conda create -n tinytroupe python=3.10

2. Activeer conda:

bash conda activate tinytroupe

3. Clone de repository:

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

4. Installeer de benodigde libraries: 

bash pip install .

TinyTroupe voorbeeldproject: AI-symposium

We bouwen een eenvoudige simulatie om te laten zien hoe TinyTroupe in de praktijk werkt. Het doel is dat enkele historische figuren en experts de huidige staat en toekomst van kunstmatige intelligentie bespreken. Deze figuren zijn onder meer Richard Feynman, Aristoteles, Erwin Schrödinger en Alan Turing.

Imports

Als je wilt meedoen, zorg dan dat je je OpenAI API-sleutel bij de hand hebt, aangezien we GPT-4o zullen gebruiken—hier is een korte tutorial over aan de slag gaan met OpenAI’s API.

We beginnen met het importeren van de benodigde modules en onze API-sleutel.

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"

TinyPersons maken

We gebruiken de klasse TinyPerson om onze vier figuren te creëren. Hoe vollediger je je personages beschrijft, hoe beter TinyTroupe nauwkeurige simulaties kan maken. We beschrijven van elke figuur de leeftijd, nationaliteit, beroep en routine (je kunt hier AI voor gebruiken). Merk op dat de beschrijving van de personages niet in alle gevallen consistent hoeft te zijn.

Met de onderstaande code creëren we vier persoonlijkheden:

  • Richard Feynman
  • Aristoteles
  • 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

Een TinyWorld maken

Onze figuren hebben een wereld nodig om in te leven. Een wereld definiëren kan zo eenvoudig zijn als één regel code:

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

De simulatie uitvoeren

Met onze wereld en figuren klaar, vertellen we ze nu het doel. We gebruiken world.broadcast om een aankondiging te doen:

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.
    """)

Als laatste stap voeren we de wereld uit in drie stappen:

world.run(3)

Het uitvoeren van de wereld vereist dat je een aantal stappen opgeeft. In ons voorbeeld geeft het aantal stappen aan hoeveel gespreksrondes onze figuren zullen hebben. Meer stappen kosten meer tijd en tokens.

Tijdens het uitvoeren van de wereld beginnen de agenten te handelen, hun tools te gebruiken of, in ons geval, een gesprek te voeren. De output is gedetailleerd en lang, dus ik plaats slechts een deel ervan voor de leesbaarheid:

The output of world.run.

Als de run is voltooid, kunnen we naar de output kijken om de uitkomst van onze simulatie te zien. Maar dat kan nogal tijdrovend zijn. Een eenvoudigere aanpak is om een tool te gebruiken die door het TinyTroupe-framework wordt geleverd om de resultaten van onze wereld te extraheren. Dit kan ook per individuele 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)

We gebruiken nu de bibliotheek pprint om het geëxtraheerde rapport netjes te visualiseren:

from pprint import pprint
pprint(report)

Ons eindrapport ziet er als volgt uit (de output is nog steeds wat lang, dus ik heb het ingekort):

The extracted report from our world simulation (output too long for a screenshot).

Ideeën om te bouwen met TinyTroupe

Wil je hands-on ervaring met het framework? Hier zijn drie ideeën die niet in de originele documentatie staan.

1. Simulatie voor medewerkerstraining

Maak een paar TinyPersons die uitdagende klanten of stakeholders voorstellen om een omgeving te simuleren waarin nieuwe medewerkers met hen kunnen interacteren en met lastige situaties leren omgaan.

2. Beoordeling van nieuw beleid

Evalueer hoe je doelgroepen zouden reageren op een nieuw bedrijfsbeleid voordat je het implementeert. De doelgroep kan worden vertegenwoordigd door TinyPersons met verschillende achtergronden en waarden van je medewerkers, klanten of socialmediapubliek.

3. Evaluatie van socialmediacontent

Simuleer vóór het delen van nieuwe content hoe je doelgroep erover zou kunnen denken. Gebruik hun feedback om te begrijpen hoe een nieuwe post wordt ontvangen en verbeter de kwaliteit voor maximaal bereik.

Conclusie

Zoals de auteurs benadrukken, bevindt TinyTroupe zich in de “experimentele” fase. Veel functies, mogelijkheden en API’s kunnen in de toekomst veranderen, en het team zal in de komende periode meer features uitrollen.

Let er echter op dat het realisme van deze simulaties beperkt kan zijn. Veel menselijk gedrag en onderscheidingen zijn niet genoeg “uitgelijnd” om nauwkeurig te worden gerepliceerd door LLM’s, wat betekent dat de uitkomsten van verschillende agenten vergelijkbaar kunnen uitvallen (zoals in ons voorbeeld, waar de figuren naar AI-achtige dialogen convergeerden). Dit is voorspelbaar gedrag bij AI-simulaties, omdat de motor achter deze AI-agenten—LLM’s—meer is ontworpen om “uitgelijnd” te zijn dan “menselijk”.

Toch kunnen productiviteitstoepassingen, zoals die in de documentatie, veel effectiever zijn bij het automatiseren van taken of het verkrijgen van inzicht in de interacties en gedragingen van een doelgroep.

TinyTroupe is een spannende agentische AI-tool om in de gaten te houden!


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

Masterstudent Kunstmatige Intelligentie en AI-technisch schrijver. Ik deel inzichten over de nieuwste AI-technologie, maak ML-onderzoek toegankelijk en vereenvoudig complexe AI-onderwerpen die nodig zijn om jou voorop te houden.

Onderwerpen
Kunstmatige intelligentie
Large Language Models

Leer AI met deze cursussen!

Leerpad

AI-toepassingen ontwikkelen

21 uur
Leer AI-apps maken met de nieuwste AI-ontwikkelaarstools, zoals de OpenAI API, Hugging Face en LangChain.
Bekijk detailsRight Arrow
Start Cursus
Meer bekijkenRight Arrow
Gerelateerd

blog

AI vanaf nul leren in 2026: een complete gids van de experts

Ontdek alles wat je moet weten om in 2026 AI te leren, van tips om te beginnen tot handige resources en inzichten van industrie-experts.
Adel Nehme's photo

Adel Nehme

15 min

Meer BekijkenMeer Bekijken