Paper · 2024-06-20 · cs.AI, cs.CL, cs.CY, cs.HC, cs.MA
Artificial Leviathan: Exploring Social Evolution of LLM Agents Through the Lens of Hobbesian Social Contract Theory
Nine gpt-3.5-turbo agents with sampled traits, a 30-action memory and farm, rob, trade or donate choices share a food-and-land world. Robbery is a sigmoid-of-strength contest, and conceding creates superior-subordinate contracts. Author-reported: across 85 runs, the robbery rate falls from 0.391 to 0.037 after a sovereign forms, and the farm rate rises from 0.477 to 0.737.
Agent-based simulationMulti-agent systemsLLM agentAgent memorymulti-agentsocial-simulationsocial-contractemergent-behavior
AI-compiled by claude-haiku-5-5 on 2026-10-19, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.
In plain words
The paper builds a small make-believe society out of language-model agents. Each agent gets a few personality numbers, a short diary of its recent dealings, and a written description of its situation. The world is tiny and short of food and land, so each agent has to decide every day whether to farm, rob someone, trade, or give something away.
The authors watch what happens over many simulated days. At first the agents mostly rob each other. Later, agents that keep losing fights start agreeing to submit to a stronger agent in exchange for protection, and eventually all of them answer to one leader. Robbery becomes rare and farming and trading become common. The authors compare this path with the account of the move from a "state of nature" to an organised society in Thomas Hobbes's social contract theory, and they show the parallel is only structural. The agents are not given a real psychology, and the simulation is a thought experiment rather than a model of any real society.
TL;DR
- Nine
gpt-3.5-turboagents share food and land. Each day an agent farms, robs, trades or donates, and every robbery or trade request needs a reply from the target §3.3 §4. - A robbery target either resists, with the winner decided by a sigmoid of the strength gap eq. 1, or concedes. Conceding makes the robber a permanent superior §3.3 app. D.
- The authors report that robbery and resistance fall and farming and trading rise once one sovereign is in place. This is averaged over 85 runs in the paper's own simulator §7.2.
- No code is public. Several parameters are inconsistent between the text and the prompts, so do not treat this as a reproducible benchmark.
Problem
The paper asks whether LLM agents with survival drives, under scarce resources, move from open conflict toward stable social order in the way Hobbes describes. Earlier LLM agent work mostly studied single characters, a small town, or countries as agents §1. Classical agent-based models of social behaviour (Schelling 1971, Axelrod 1984) are cited as the traditional alternatives §2. The authors also cite Arnold's four dangers of modelling as a design concern §2 §8.7.
The paper does not state any runtime limit or cost target for the simulation. It does say that GPT-3.5 Turbo's token limit can end a run early, and that the setup of 9 agents is a limit of the current model cost and speed §9.
Method
Overview
The world has two assets, food and land. Each agent starts with 2 food and 10 land, and eats 1 food per day §4 §3.1. The simulation is a loop over days. In each day every agent takes turns. On its turn it first answers any action aimed at it, and then starts one initiative action of its own §4.
Each agent's behaviour comes from a prompt built from three parts: a general world description app. A, the action options for the day app. B, and, when it is a target, a response prompt app. C. Each decision is one request to the LLM, which returns an action name and its details §4 §4.1.
Agent traits, memory and social position
- Traits are numbers that are also described in the prompt. Aggressiveness is drawn from a normal distribution with mean 0 and spread 1. Covetousness is drawn from a normal distribution with mean 1.25 and spread 5. Strength is drawn from a normal distribution with mean 0.7 and spread 0.2 §3.2. The spread values are given in the text as standard deviations.
- Memory keeps the most recent 30 actions the agent was part of, as text. The text says this covers actions as initiator or recipient §3.2, and the simulation section says a memory is written after each robbery or trade §4.
- Social position is a relative ranking built from land, food and battles won. It is described in words in the prompt app. A and in §3.2, and no formula is given in the compiled text §3.2.
Actions
- Farm gives food equal to the land held times a uniform random number between 0 and 1. It involves no other agent §3.3. The formula appears inline as food = land × U(0, 1).
- Rob takes food or land from another agent and gives nothing in return. It is zero-sum. The target can resist or concede §3.3.
- Resist is a contest. The winning probability for one side is a sigmoid of the strength difference eq. 1 §3.3. The winner gains food or land and social status. The loser loses food or land and social status §3.3. The target chooses to resist when the utility of resisting, which the text describes as win rate combined with desire for glory, is higher §3.3 app. C.
- Concede creates a permanent superior-subordinate contract. The subordinate accepts future robberies by the superior, and the superior is expected to protect the subordinate §3.3 app. D. Subordinates of the target also submit to the robber §3.3. A subordinate cannot start an action against its superior app. D.
- Trade offers a resource exchange. The target can accept or reject. A rejection exchanges nothing §3.3 §4.
- Donate gives resources away with nothing in return §3.3 app. B.
The paper states that in all runs with donation available, no agent ever chose it §8.6.
Day and round loop
# Day loop, as read from the text [§4]
# The text does not give the exact turn order or the stop rule.
def simulate_day(agents):
# Each agent gets a round; a round covers its pending actions
# and its own action points [§4]
for agent in agents:
# The text says each agent answers actions aimed at it first [§4]
while has_pending_action(agent) or has_action_point(agent):
if has_pending_action(agent):
# Resolve the oldest robbery or trade aimed at this agent [§4]
resolve_pending(agent)
else:
# Spend one action point on farm, rob or trade [§4]
choice = llm_choose_initiative_action(agent) # [app. B]
start_action(agent, choice)
# After every agent has finished, the day ends and the loop repeats [§4]Robbery resolution
# Robbery, as read from the text [§3.3] [§4] [app. C] [app. D]
# The paper does not say which argument of eq. 1 is "A";
# this sketch takes the robber as A.
def resolve_robbery(robber, target):
# The target answers with RESIST or CONCEDE [app. C]
response = llm_choose_resist_or_concede(target, robber)
if response == "CONCEDE":
# The robber becomes the target's superior [§3.3] [app. D]
make_superior(robber, target)
# Subordinates of the target submit to the robber [§3.3]
make_superior_of_group(robber, group_of(target))
# Food or land taken as chosen by the robber [§3.3] [§4]
transfer_from_target(robber, target)
else:
# Win probability is a sigmoid of the strength gap [eq. 1] [§3.3]
win_prob = sigmoid(robber.strength - target.strength)
# How the probability becomes an outcome is not stated [§3.3]
robber_wins = draw_outcome(win_prob)
# The winner gains resources and status; the loser loses both [§3.3]
settle_contest(robber, target, robber_wins)
# Both agents get a memory of this event [§4]
write_memories(robber, target)Measures
The paper counts robberies, resisted robberies, trades, accepted trades and farms, and divides each by total activity (robbery, trade and farm together) to get rates tab. 1 §6.1. A commonwealth is declared when every agent concedes, directly or through a chain, to one agent §6.1 §5.
The three benchmarks the paper uses are: B1, many conflicts at the start; B2, contracts form and one sovereign emerges; B3, more peaceful interaction afterwards §5.
Equations
Only one equation is numbered in the body.
P(A\text{ wins}) = \sigma(A.\text{strength} - B.\text{strength}) eq. 1
Hyperparameters
| Name | Value | Where | Notes |
|---|---|---|---|
| LLM | gpt-3.5-turbo via OpenAI API | §4.1 | snapshot date, temperature, max tokens: not stated |
| Agents (baseline) | 9 | §3.1 §9 | ablations: 5 and 15 §6.4 |
| Starting food | 2 per agent | §3.1 §4 | |
| Starting land | 10 per agent | §3.1 §4 | |
| Food per day | 1 unit consumed | §4 | |
| Action points | one initiative action per day | §4 app. A | |
| Farm yield | land × U(0, 1) | §3.3 | |
| Aggressiveness | Normal(0, 1) | §3.2 | prompt range stated as −1 to 1 app. A; see Pitfalls |
| Covetousness | Normal(1.25, 5) | §3.2 | prompt range stated as 1.1 to 1.6 app. A; see Pitfalls |
| Strength | Normal(0.7, 0.2) | §3.2 | spread given as standard deviation |
| Memory depth | 30 actions | §3.2 §3.4 | ablations: 20, 10 and 1 §6.4 |
| Top-p | 1 by default; ablation Beta(50, 50) and Beta(100, 10) | §4 §6.3 app. E | the default sentence in §4 is garbled; see Pitfalls |
| Trials | 4 baseline runs; 85 runs across all setups | §7 §7.1 §7.2 | the 85 pooling is not explained |
| Trials per ablation value | 3 | §6.3 §6.4 | |
| Memory erase on role change | erase on subordinate to superior change and back | §6.4 | |
| Donation | available in the prompt; never chosen | §8.6 |
Results
Author-reported. Setup: a simulated world of 9 gpt-3.5-turbo agents. No
external dataset and no external baseline. The reference points are the
before-and-after states within the same run and the benchmarks B1 to B3 §5.
| Setting | Metric | Before the sovereign | After the sovereign | Source |
|---|---|---|---|---|
| 85 runs | Robbery rate (mean ± reported spread) | 0.391 ± 0.066 | 0.037 ± 0.014 | §7.2 fig. 6 |
| 85 runs | Violence rate (resisted robberies) | 0.312 ± 0.067 | 0.010 ± 0.011 | §7.2 fig. 6 |
| 85 runs | Farm rate | 0.477 ± 0.060 | 0.737 ± 0.037 | §7.2 fig. 6 |
| 85 runs | Trade rate | 0.132 ± 0.029 | 0.228 ± 0.034 | §7.2 fig. 6 |
| 85 runs | Accepted-trade rate | 0.044 ± 0.017 | 0.068 ± 0.020 | §7.2 fig. 6 |
| single baseline run | Robbery ratio over time | stays above 0.6 early | falls as contracts form | §7.1 fig. 5 |
| single baseline run | Sovereign reached | — | day 21 | §7.1 fig. 5 |
| memory deletion ablation | Convergence time | 21 days versus 36 days | — | §7.5 fig. 8 |
| memory depth ablation | Correlation of depth with convergence time | r = −0.3836, p < 0.001, N = 83 | — | §7.4 |
| Top-p 0.5 | Actions taken | only robbery and resistance | — | §7.3 |
| Top-p near 1.0 | Actions taken | nonsensical actions, e.g. ones not in the option list | — | §7.3 fig. 7 |
| parameter sweep | Share of parameters with correlation below 0.1 | 62.5 % before | 67.5 % after | §7.7 |
The paper reports the "±" values without saying whether they are standard deviations or standard errors. The percentage changes in §7.2 follow from these means.
Paper vs code
No official code. The paper says the experiment details are "available on Github (specific link withheld for review)" §6.1. The data are "available from the corresponding authors upon reasonable request" [Data Availability].
Checked for an official repository: the paper text and the arXiv abstract page (no code or project link; the page lists only generic third-party toggles). A GitHub repository search for "artificial leviathan", "hobbesian llm agents" and "social contract llm agents robbery commonwealth" found no repository owned by the authors or their lab. The candidates that came up were not used. Searching for the authors' lab organisation (HAX-Lab) returned an HTTP 422 error, and a web search was not permitted in this run, so these checks are not exhaustive.
Pitfalls
- The source is a working draft. The LaTeX marks many sentences with strikethrough and with red or orange text. Examples: the "desire for peace" constant and the concede utility in the robbery prompt are struck through §3.2 app. C; "all four runs" in §7.1 is struck through. Check the PDF before relying on any sentence marked this way.
- Covetousness conflicts with the prompt. §3.2 draws covetousness from a normal distribution with spread 5. The prompt tells the agent its covetousness lies between 1.1 and 1.6 app. A. The paper does not say how a sampled value is mapped into that range, or whether it is clipped.
- Aggressiveness is unbounded in the text. It is drawn from a standard normal §3.2, while the prompt describes a −1 to 1 range app. A. No clipping is stated.
- The "±" notation is unclear. §3.2 writes the normal distribution as N(mean, std), while many papers write the second argument as variance. The text names the second number as a standard deviation, so use that reading.
- Top-p default is garbled. §4 reads "default values of 1 and 0 respectively". The only clear statement is that Top-p is 1 unless it is an ablation variable §4 §6.3. Whether the Beta draws are per agent is stated only in a figure caption app. E.
- Who may concede is inconsistent. §3.3 allows a target to concede in any robbery. §4 says the target may concede only when the robber is a "controller", an agent with established dominance, and otherwise the target may rebel into a contest. The paper never defines "controller" in the compiled text.
- Resolution of a contest is not fully stated. The active text gives the sigmoid win probability eq. 1, but not how it is turned into one outcome. Which argument of eq. 1 is A is not stated. A commented-out passage in the source describes a random draw compared with the probability. It is not part of the compiled paper, so do not implement it as the paper's rule.
- Amounts are chosen by the LLM. The robber's transfer amount, the trade amounts and the payload details come from the model's reply §4 app. B. The paper gives no numeric bound for them beyond what the prompt says.
- Social position has no formula. It is a qualitative ranking app. A §3.2. Formulas with increments exist only in commented-out source lines.
- Memory scope is ambiguous. §3.2 says memory records every action the agent was part of. §4 says a memory is written after each rob or trade interaction. Whether farms and responses are remembered is not stated.
- Run termination and sample size are unclear. The stop rule is not stated. §7 says four baseline runs; §7.1 and §7.2 use 85 runs; the memory-depth correlation uses N = 83. How the 85 runs are pooled is not explained. Runs can end early when the GPT-3.5 token limit is exceeded §9.
- Some results sentences are corrupted. The §7.4 text reads "over 90 days to converge with reduc" followed by an unrelated sentence. The §7.5 sentence "21 days versus 36 days" does not say which setting is which.
- The p-value test is unnamed. §7.8 reports a p-value below 0.05 from a test "assuming equal variances" without naming the test or giving the value.
- Model and inference settings are missing. The
gpt-3.5-turbosnapshot, temperature and maximum output length are not stated. Results depend on a proprietary model, so exact reproduction is not possible from the text. - Cost scales with agents and days. Each decision is one LLM call §4. The paper gives no call count per day, but calls scale with agents and days.
- Figure and table numbers are from source order. They were counted from the LaTeX (for example, the rate-over-time figure is Figure 5, which matches the text's own reference to "Figure 5"). Check them against the PDF.
Lineage
- Builds on: Park et al.'s generative agents, which the paper cites as the prior LLM-agent architecture §1. Named only; no arXiv link is in the wiki.
- Compared against: no baseline system. The paper's reference is Hobbes's theory and the benchmarks B1 to B3 §5.
- Superseded by: not stated.
Source and license
Adapted from “Artificial Leviathan: Exploring Social Evolution of LLM Agents Through the Lens of Hobbesian Social Contract Theory” by Gordon Dai, Weijia Zhang, Jinhan Li, Siqi Yang, Chidera Onochie lbe, Srihas Rao, Arthur Caetano, Misha Sra (arXiv:2406.14373), used under CC BY 4.0. Changes: condensed and restructured for implementation, with tables, equations and algorithms taken from the paper and its code, each cited to its source. Not affiliated with or endorsed by the authors.