Program
Pernahkah Anda perlu mensimulasikan sebuah rapat untuk menguji ide produk atau iklan Anda? TinyTroupe menyelesaikan masalah ini.
TinyTroupe adalah kerangka kerja agentic open-source yang dikembangkan oleh Microsoft. Ini menawarkan kerangka simulasi yang kuat untuk membuat banyak persona bertenaga AI dan melihat bagaimana mereka saling berinteraksi.
Dalam artikel ini, saya akan menjelaskan TinyTroupe dan mengimplementasikan proyek demo untuk membantu Anda memahami cara membuat persona yang realistis dalam lingkungan interaktif. Sementara dokumentasi resminya memberikan pengantar yang komprehensif, saya akan berfokus pada panduan langkah demi langkah dan contoh orisinal.
Apa Itu TinyTroupe?
TinyTroupe adalah pustaka Python eksperimental berbasis LLM yang baru dirilis yang memungkinkan Anda membuat “TinyPersons” dengan kepribadian, minat, dan tujuan spesifik. Agen-agen ini bertujuan untuk mensimulasikan perilaku manusia yang realistis dalam kondisi tertentu.
TinyTroupe bertujuan menyediakan pengaturan di mana interaksi, dialog, dan tindakan agen mirip manusia di bawah kondisi yang ditentukan disimulasikan. Dokumentasi resmi memberikan sejumlah gagasan mengapa menggunakan kerangka kerja ini, yang sebagian besar berputar pada peningkatan produktivitas dan pengujian skenario bisnis, seperti mensimulasikan sesi brainstorming oleh focus group atau bagaimana audiens simulasi akan mengevaluasi iklan digital.
Selain kasus penggunaan bisnis, mensimulasikan berbagai skenario dan mengamati interaksi antar karakter juga menarik dan menyenangkan, yang sebaliknya tidak mungkin dilakukan (seperti yang akan kita lakukan dalam artikel ini).

Sumber: Halaman GitHub TinyTroupe
Fitur utama TinyTroupe meliputi:
- Desain berbasis persona: Setiap orang yang disimulasikan (
TinyPerson) dapat diberi karakteristik terperinci, termasuk usia, latar belakang, pekerjaan, keterampilan, dan opini. - Interaksi multi-agen: Persona dapat saling berinteraksi untuk simulasi skenario yang kompleks.
Untuk meningkatkan proses membangun agen-agen ini, TinyTroupe menawarkan kemampuan seperti:
- TinyPersonFactory: Kelas untuk pembuatan TinyPersons secara cepat berdasarkan deskripsi singkat.
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.")
- Kemampuan agen: metode seperti listen() dan listen_and_act() untuk menerima rangsangan dan mengambil tindakan. Metode define() memungkinkan pembuatan properti dan karakteristik pilihan Anda, seperti usia atau deskripsi.
- TinyTool: Kelas untuk membuat alat simulasi yang dapat digunakan oleh agen.
- Evaluasi: Kelas untuk memvalidasi perilaku agen atau menganalisis hasil interaksi (seperti TinyPersonValidator dan ResultsExtractor)
Menyiapkan TinyTroupe
Untuk memasang TinyTroupe, kita dapat melakukan langkah-langkah berikut:
1. Buat lingkungan Python:
conda create -n tinytroupe python=3.10
2. Aktifkan conda:
bash conda activate tinytroupe
3. Klon repositori:
git clone <https://github.com/microsoft/tinytroupe>
cd tinytroupe
4. Pasang pustaka yang diperlukan:
bash pip install .
Proyek Contoh TinyTroupe: Simposium AI
Kita akan membangun simulasi sederhana untuk menunjukkan cara kerja TinyTroupe secara langsung. Tujuannya adalah agar beberapa tokoh sejarah dan pakar mendiskusikan kondisi saat ini dan masa depan kecerdasan buatan. Tokoh-tokoh ini meliputi Richard Feynman, Aristoteles, Erwin Schrödinger, dan Alan Turing.
Impor
Jika Anda ingin mengikuti, pastikan Anda menyiapkan OpenAI API key karena kita akan menggunakan GPT-4o—berikut tutorial singkat tentang memulai dengan OpenAI API.
Kita mulai dengan mengimpor modul yang diperlukan dan API key kita.
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"
Membuat TinyPerson
Kita menggunakan kelas TinyPerson untuk membuat keempat tokoh kita. Mendeskripsikan karakter Anda sedetail mungkin akan membantu TinyTroupe menciptakan simulasi yang lebih akurat. Kita menjelaskan usia, kewarganegaraan, pekerjaan, dan rutinitas masing-masing tokoh (Anda dapat menggunakan AI untuk bagian ini). Perhatikan bahwa deskripsi karakter tidak perlu konsisten di semuanya.
Melalui kode di bawah, kita membuat empat kepribadian:
- 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
Membuat TinyWorld
Tokoh-tokoh kita membutuhkan dunia untuk ditinggali. Mendefinisikan dunia bisa sesederhana satu baris kode:
world = TinyWorld("AI Symposium", [create_aristotle(), create_feynman(), create_schrodinger(), create_turing()])
Menjalankan simulasi
Dengan dunia dan tokoh yang sudah siap, sekarang kita beri tahu tujuan mereka. Kita menggunakan world.broadcast untuk membuat pengumuman:
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.
""")
Untuk langkah terakhir, kita menjalankan dunia dalam tiga langkah:
world.run(3)
Menjalankan dunia mengharuskan Anda menentukan jumlah langkah. Dalam contoh kita, jumlah langkah menunjukkan berapa banyak putaran dialog yang akan dilakukan para tokoh. Lebih banyak langkah memerlukan lebih banyak waktu dan token.
Saat menjalankan dunia, para agen akan mulai bertindak, menggunakan alat mereka, atau, dalam kasus kita, melakukan percakapan. Hasilnya rinci dan panjang, jadi saya hanya menampilkan sebagian demi keterbacaan:

Ketika proses selesai, kita dapat melihat output untuk mengetahui hasil simulasi. Namun ini bisa cukup melelahkan. Pendekatan yang lebih mudah adalah menggunakan alat yang disediakan oleh kerangka TinyTroupe untuk mengekstrak hasil dari dunia kita. Ini juga dapat dilakukan untuk setiap TinyPerson secara individual.
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)
Sekarang kita menggunakan pustaka pprint untuk memvisualisasikan laporan yang diekstrak dengan baik:
from pprint import pprint
pprint(report)
Laporan akhir kita adalah sebagai berikut (outputnya masih agak panjang, dan saya harus memotongnya):

Ide untuk Diimplementasikan dengan TinyTroupe
Jika Anda ingin mencoba langsung kerangka kerja ini, berikut tiga ide yang tidak dibahas dalam dokumentasi asli.
1. Simulasi pelatihan karyawan
Buat beberapa TinyPerson yang mewakili pelanggan atau pemangku kepentingan yang menantang untuk mensimulasikan lingkungan bagi karyawan baru agar mereka berinteraksi dan menangani situasi sulit.
2. Penilaian kebijakan baru
Evaluasi bagaimana kelompok sasaran Anda akan bereaksi terhadap kebijakan perusahaan yang baru sebelum menerapkannya. Kelompok sasaran dapat direpresentasikan oleh TinyPerson dengan latar belakang dan nilai yang berbeda dari karyawan, pelanggan, atau audiens media sosial Anda.
3. Evaluasi konten media sosial
Sebelum membagikan konten baru, simulasikan bagaimana audiens target Anda mungkin menanggapinya. Gunakan umpan balik mereka untuk memahami bagaimana sebuah postingan baru akan dipersepsikan dan tingkatkan kualitasnya agar menjangkau sebanyak mungkin.
Kesimpulan
Seperti yang ditekankan para pengembangnya, TinyTroupe masih dalam tahap “eksperimental”. Banyak fungsi, kapabilitas, dan API dapat berubah di masa mendatang, dan tim akan meluncurkan lebih banyak fitur pada periode berikutnya.
Perlu dicatat, bagaimanapun, bahwa realisme simulasi ini bisa terbatas. Banyak perilaku dan perbedaan manusia tidak cukup “selaras” untuk direplikasi secara akurat oleh LLM, yang berarti hasil dari agen yang berbeda bisa berakhir serupa (seperti terlihat dalam contoh kita, di mana para tokoh berkonvergensi ke dialog ala AI). Ini adalah perilaku yang dapat diprediksi dari simulasi AI, karena mesin di balik agen-agen AI ini—LLM—dirancang untuk lebih “selaras” daripada “mirip manusia”.
Namun, aplikasi produktivitas, seperti yang ada dalam dokumentasi, bisa jauh lebih efektif untuk mengotomatisasi tugas atau mendapatkan wawasan tentang interaksi dan perilaku kelompok sasaran.
TinyTroupe adalah alat AI agentic yang menarik untuk terus dipantau!
Mahasiswa magister Kecerdasan Buatan dan penulis teknis AI. Saya berbagi wawasan tentang teknologi AI terbaru, membuat riset ML lebih mudah diakses, dan menyederhanakan topik AI yang kompleks agar Anda tetap terdepan.

