TL;DR
Agent Sociodrama is a simulation of an agent team in which every agent has a fixed personality and changing states: mood and attitude toward each teammate. Relationships are directional: A may trust B while B is suspicious of A. A separate LLM judge updates these states after every round. TPR is built on top of them: after a run we analyze where the team broke down (who stayed silent, who steamrolled everyone else), change the personalities of specific agents and run the task again.
The main finding: agent teams fail the way human teams do, not because the model is dumb. The one holding the key fact stays quiet. The loudest sets the tone, and the group locks onto the wrong answer. Nobody calls out rule-breaking, and cooperation falls apart. And the personality lineup matters enormously. On the same model, with the same data, changing nothing but the persona lineup raised accuracy on a distributed-information task from "almost never" to "always".
The method in a nutshell: run → diagnose from the transcript and trajectory → recast the problem agents → rerun. Personas come from a library of five archetypes: balanced, dominant, analytical, agreeable, reserved. The best lineup is chosen by task outcome.
Want this for your own case? Apply this study to your task: AI adapts its method to what you are working on and writes the prompt.
Method Blueprint
STEP 0: Define the team: each agent's persona = (name and role, traits, behavioral boundaries)
STEP 1: Run the task over several rounds → transcript + states (mood, relationships)
STEP 2: Diagnose → who stayed silent / who dominated / where violations went unchallenged
STEP 3: Recast → swap the problem agents' personas for ones from the archetype library
STEP 4: Rerun → compare outcomes, keep the best lineup
(STEPS 2–4 repeat; in the simulation this is code + an external LLM judge, in a chat it's a manual loop of several requests)
Example Application
Task: You run a 40-person startup and are choosing a Chief Revenue Officer from three candidates. The information is scattered: the recruiter knows the salary expectations, the CFO knows the budget, the sales lead knows industry reputation, the CTO knows team fit. If you delegate the choice to an "agent council," a loud sales agent can push the flashy candidate through while the others sit on their facts.
Prompt (diagnosis step after the first run):
Below is the transcript of a council of 4 AI agents choosing a Chief Revenue Officer
from three candidates (Harris, Miller, Brooks). Each agent had its own
private data.
Personas:
- Recruiter Chloe: DOMINANT
- CFO Daniel: RESERVED
- Sales lead Ryan: AGREEABLE
- CTO Sophie: BALANCED
[paste the transcript]
Give a diagnosis:
1. Which agents disclosed their private data and which stayed silent? Which
key facts were never voiced?
2. Who dominated and locked the group onto an early version of the answer?
3. Were there norm violations that nobody reacted to?
4. Propose a recast: which agents to replace and with which archetype
(BALANCED, DOMINANT, ANALYTICAL, AGREEABLE, RESERVED).
For each replacement, explain what problem it fixes.
Result: The model breaks the transcript down by three symptoms: silence, dominance, unpunished violations. It shows which facts never surfaced and proposes specific persona swaps with a rationale. Then you run the council again with the new lineup and compare the outcome.
Why It Works
The weakness. An agent team isn't a set of independent smart heads. It's a social system: speaking order, loudness and "role" shift the outcome. Whoever speaks first often sets the frame, and quiet agents with valuable facts don't step in. Just improving prompts and communication schemes isn't enough: the cause of failure lies in the dynamics of communication, not in the model's abilities.
The strength. An LLM reads transcripts well and notices social patterns: who dominates, who keeps quiet, where someone overstepped. It's also pretty good at playing an assigned personality. Diagnosing from a transcript and editing roles is something the model does confidently.
How the method uses this. It turns "something went wrong" into a concrete lever: the persona lineup. The diagnosis says whom to change and to what. The rerun result decides whether to keep the change. Control levers: - Archetypes (balanced / dominant / analytical / agreeable / reserved): change them for those who steamroll or stay silent. - Persona structure (name and role, traits, behavioral boundaries): "boundaries" define what the agent won't do, so adjust them if violations go unpunished. - Lineup selection criterion: the task metric (accuracy, closeness to the expert answer, share of mutually beneficial agreements). - Speaking order: in the simulation agents first rate their "urgency" to speak and then talk in order of urgency, so the last speaker doesn't get a context advantage.
Prompt Template
Note: the available part of the paper has no ready-made prompts. The method is implemented in code with an external judge. Below is an adaptation of the logic for a chat, where the model plays everyone and judges itself. It's weaker than the original because there's no independent judge.
You are running a simulation of a team of {number_of_agents} agents solving the task:
{task}.
<Personas>
Each persona = (identity, traits, boundary). A persona doesn't change within a run.
- {Name_1}, {role_1}: traits — {archetype_1}; boundaries — {what_they_wont_do_1};
private data — {data_1}
- {Name_2}, {role_2}: traits — {archetype_2}; boundaries — {what_they_wont_do_2};
private data — {data_2}
...
Archetypes: BALANCED, DOMINANT, ANALYTICAL, AGREEABLE, RESERVED.
</Personas>
<State>
For each agent track: mood (0–1, 0.5 = neutral) and, for each pair,
attitude (favorability from −1 to 1, status: neutral / ally / rival / enemy).
Change values by no more than 0.3 per round.
</State>
<Round>
Rounds: {number_of_rounds}.
Phase 1: each agent independently states urgency (0–10), mode
(public / private / silent), addressee and the goal of the message in one sentence.
Phase 2: agents speak in descending order of urgency; silent ones are skipped; each sees
the messages of those before them and private messages addressed to them.
After the round, update mood and relationships based on what each agent saw.
</Round>
<Output>
Outcome: the team's answer to the task + a table of states by round.
</Output>
<Diagnosis>
After the run, separately (as an outside observer, not as a participant):
1. Who stayed silent and which private facts were never voiced?
2. Who dominated and locked in an early answer?
3. Which norm violations went unchallenged?
4. Propose a recast: whom to replace and with which archetype, and what it fixes.
</Diagnosis>
<Recast>
Plug in the new personas, rerun the task and compare the outcome by {success_metric}.
Keep the lineup that produced the best result.
</Recast>
What to plug in: {task} — a decision where information is distributed among participants or interests collide. {success_metric} — how you'll know the outcome is better: match with a known correct answer, completeness of the facts taken into account, a deal that works for both sides.
🚀 Quick start — paste into a chat:
Here's a Trajectory-Guided Persona Recasting template. Adapt it to my task: [your task].
Ask me questions to fill in the fields.
[paste the template above]
The LLM will ask who's involved, what private data each participant has and how to measure success — because the method rests on distributed information and on a metric for picking the best lineup. It'll take the rest from the template's pattern and build a ready prompt for your task.
Limitations
⚠️ The full version needs code: The original method is a simulation with an external LLM judge, a state store and a rerun loop. A regular chat reproduces only a simplified version, where one model plays both the participants and the observer.
⚠️ Incomplete breakdown: The algorithm section is cut off in the available text, so the details of the three iteration steps and the per-archetype tables aren't visible. Which archetypes work best for which tasks isn't clear from this text.
⚠️ Results depend on the task: The authors note that the effect of the persona lineup depends on task structure. The right lineup for gathering distributed information and for negotiations will differ; there's no universal "correct set."
⚠️ The numbers are "up to": The record gains (up to +83 pp accuracy) are reported as maximums. Typical gains will be smaller.
⚠️ Text simulation only: Agents play personalities from a description. There are no real people, real conflicts or consequences.
How It Was Studied
The study had two stages. First the authors checked whether such a simulation can be trusted. Six LLMs played out five social scenarios, and a single external judge updated moods and relationships after every round. The trajectories were then checked against four classic patterns from social psychology: structural balance ("a friend of my friend is my friend"), reciprocity, polarization under conflict, and the split between "reconciliation vs. escalation" paths. Some of the scores were verified by humans.
In the second stage TPR was built on top of the simulation. It was tested on four tasks: gathering distributed information (Student-council), two classic group-ranking exercises (NASA Moon Survival, Lost at Sea) and negotiations over a solar farm (Solar-farm). Starting lineups were both carefully designed and random. TPR improved results in both cases, by up to +83.3 pp accuracy. In negotiations the method beat SOTOPIA and AgentVerse in three of four comparisons, by up to +37.5 pp in the share of Pareto-efficient agreements (where you can't improve one side's outcome without hurting the other's).
The most telling fact: on GPT-5-mini, with the same data, changing nothing but the persona lineup raised accuracy from 16.7% to 100%. This shows that a team's error often lies in its lineup, not in the model. The practical takeaway: if an agent team produces a bad result, look not only at the prompt but also at who's talking in it and how.
Adaptations and Extrapolations
💡 Adaptation for a single chat without a simulation: if you don't need the full loop, an "audit" of an existing agent discussion or AI council is enough.
Here's the transcript of my AI roles (marketer, finance lead, lawyer) discussing
the launch of a new subscription. Find:
1) whose arguments were ignored,
2) who set the frame in the first messages and whether it affected the outcome,
3) which risks were mentioned once and never discussed again.
Suggest which role to strengthen and which to tone down, and rewrite their descriptions.
[paste the transcript]
🔧 Technique: introduce "urgency order" → remove the last-word advantage. If you run roles one after another, first ask each role separately to answer "do I want to speak, and about what" (urgency 0–10, addressee, one sentence). Then give the floor in descending order of urgency. That way the order isn't arbitrary.
Resources
- Agent Sociodrama: Social-Dynamics-Guided Persona Recasting for LLM Agent Teams (Preprint)
- Project Page: https://lululu896.github.io/Agent-Sociodrama
- Authors: Yirui Qi, Xiaoming Zhang (Beihang University), Jaehong Yoon (Nanyang Technological University, Singapore)
- Baselines: SOTOPIA, AgentVerse; tasks: Student-council, NASA Moon Survival, Lost at Sea, Solar-farm