Agent Profile
The first step in using OASIS is to generate user data. This section provides a detailed overview of how user data should be prepared for simulation.
Data Formats
OASIS supports multiple social media platforms, each with its own data format. Note that the type of data format must align with the DefaultPlatformType or RecsysType specified for the platform.
Twitter Format (CSV)
For Twitter simulations, OASIS stores user data in CSV files. Each user (agent) requires the following information:
Field | Description |
---|---|
name | The real name of the agent |
username | The username of the agent within the system |
user_char | A brief self-description of the agent (included in the agent’s system prompt to establish an initial identity) |
description | Similar to user_char , serving as the agent’s self-description |
And the agent_id
will be generated based on the order of the CSV file, starting from 0.
Example Twitter CSV Format
user_id | name | username | user_char | description |
---|---|---|---|---|
14529063 | user_9 | user9 | Beach bum, web developer, nerd 🤓, crocheter, avid reader 📚, a singer in the shower, a notorious heart breaker. I blog about books @ https://t.co/JjnKtEnq4R | Beach bum, web developer, nerd 🤓, crocheter, avid reader 📚, a singer in the shower, a notorious heart breaker. I blog about books @ https://t.co/JjnKtEnq4R |
Reddit Format (JSON)
For Reddit simulations, OASIS uses JSON files to store user data. Each user object contains the following fields:
Field | Description |
---|---|
realname | The real name of the agent |
username | The username of the agent within the Reddit platform |
bio | A brief bio displayed on the user’s profile |
persona | A detailed description of the agent’s personality, interests, and background (used for the agent’s system prompt) |
age | The age of the agent |
gender | The gender of the agent |
mbti | Myers-Briggs Type Indicator of the agent |
country | The country where the agent is based |
And the agent_id
will be generated based on the order of the JSON file, starting from 0.
Example Reddit JSON Format
Preparing User Data
When preparing user data for OASIS, consider the following regardless of platform:
-
Diverse Personalities: Create agents with varied interests, opinions, and communication styles to simulate realistic social dynamics.
-
Realistic Social Connections: If you want to create a social connection between agents, you can add some
ManualAction
during the simulation to let agents follow each other. -
Initial Content: If you want to add some initial content to the agents, you can add some
ManualAction
during the simulation to let agents post some initial content. -
Consistent Identity: Ensure that the personality descriptors (
user_char
anddescription
for Twitter;bio
andpersona
for Reddit) align with the agent’s intended personality and behavior in the simulation. -
Platform-Specific Behaviors: Consider how users interact differently on Twitter versus Reddit. Twitter interactions are more brief and public, while Reddit discussions are often topic-focused and community-based.
In the next sections, we’ll explore how to customize the SocialAgent
class to create agents with different prompt templates, tools, and models.