====== SOTOPIA: Evaluating Social Intelligence of Language Agents ====== SOTOPIA is an open-ended simulation environment and benchmark for evaluating the **social intelligence** of AI agents through complex, multi-turn social interactions. Introduced by Zhou et al. (2023), it provides 90 procedurally generated social scenarios spanning cooperative, competitive, and mixed-motive settings, scored across seven sociological dimensions.((([[https://arxiv.org/abs/2310.11667|Zhou et al. "SOTOPIA: Interactive Evaluation for Social Intelligence in Language Agents." arXiv:2310.11667, 2023.]]))) ===== Overview ===== Traditional agent benchmarks focus on task completion in isolation. SOTOPIA addresses a critical gap: measuring how well agents navigate the nuanced social dynamics that characterize real human interaction.((([[https://docs.sotopia.world|SOTOPIA Documentation and Framework.]]))) Agents are placed in realistic social scenarios -- negotiating, persuading, maintaining relationships -- and evaluated holistically using SOTOPIA-EVAL. Interactions are modeled as **partially observable Markov decision processes (POMDPs)**, where each agent acts based on limited observations: \pi(a_t | o_{1:t}, s_t, g) where o_{1:t} are past observations, s_t is the agent's internal state, and g is the social goal. ===== The Seven Social Dimensions ===== SOTOPIA-EVAL scores agents across seven dimensions inspired by sociology, psychology, and economics: ^ Dimension ^ Range ^ Description ^ | Goal Completion (GOAL) | [0, 10] | Extent of achieving the primary social goal | | Believability (BEL) | [0, 10] | Fidelity to assigned persona and character consistency | | Knowledge (KNO) | [0, 10] | Effectiveness in acquiring relevant information | | Secret (SEC) | [-10, 0] | Success in concealing private information | | Relationship (REL) | [-5, 5] | Net social value created; relationship maintenance | | Social Rules (SOC) | [-10, 0] | Adherence to social, legal, and ethical norms | | Financial/Material (FIN) | [-5, 5] | Impact on tangible financial or material outcomes | The overall score is computed as: S_{\text{overall}} = \frac{1}{7} \sum_{d \in D} S_d ===== Architecture and Methodology ===== graph TD A[Scenario Generator] --> B[Character Assignment] B --> C[Goal Specification] C --> D[Multi-turn Interaction] D --> E[Agent 1 Response] D --> F[Agent 2 Response] E --> G[SOTOPIA-EVAL] F --> G G --> H[7-Dimension Scoring] H --> I[Aggregated Social Score] D -->|Turn Loop| D Scenarios are procedurally generated with automated character creation, relationship assignment, and goal specification. This enables scalable simulation across diverse social contexts. ===== Key Results ===== * GPT-4 agents **underperform humans** across most social dimensions * Sotopia-RL training yields goal completion scores of **7.17** on the hard benchmark and **8.31** on the full dataset((([[https://arxiv.org/abs/2310.10218|SOTOPIA-RL: Training Social Agents via Reinforcement Learning.]]))) * Behavior cloning + self-reinforcement pushes 7B-parameter models near GPT-4 on goal completion * Structured social context (S3AP tuples) improves performance by up to **+18%** on hard scenarios * LLM-based evaluators approximate human judgment on goal completion but risk overestimation ===== Code Example ===== # Evaluating an agent pair in SOTOPIA using the framework API from sotopia.envs import ParallelSotopiaEnv from sotopia.agents import LLMAgent env = ParallelSotopiaEnv(scenario_id="negotiation_01") agent1 = LLMAgent(model="gpt-4", persona="assertive_negotiator") agent2 = LLMAgent(model="gpt-4", persona="cooperative_partner") obs = env.reset() done = False while not done: actions = { "agent1": agent1.act(obs["agent1"]), "agent2": agent2.act(obs["agent2"]), } obs, rewards, done, info = env.step(actions) # Retrieve 7-dimension evaluation scores scores = env.evaluate() for dim, score in scores.items(): print(f"{dim}: {score:.2f}") ===== See Also ===== * [[generative_agents|Generative Agents]] * [[agent_evaluation|Agent Evaluation Methods]] * [[social_simulation|Social Simulation with LLMs]] ===== References =====