Skip to content

HiSim ROE — a hybrid LLM + ABM population on one kernel

studies/hisim_roe/ · reference: true · Path B (from scratch on the core kernel)

On a Twitter-like platform, after the news "the Supreme Court overturns Roe v. Wade" fires, how do the opinions of LLM-driven core users and ABM-driven ordinary users evolve — and which cohort actually moves the aggregate? This case is the pattern for a hybrid population: two cohorts sharing one environment, one panel and one metric set, but running completely different behaviour functions. It is also the pattern for porting an external simulator (HiSim) natively onto the core interfaces rather than wrapping it.

P / E / B

what it is where it comes from
P 20 agents: 8 core-* (LLM role-play) + 12 ord-* (bounded-confidence rule). Opinions initialized uniformly on [-1, 1], deterministic under seed: 42. Interaction is explicit_network — a 16-edge directed ring over the core users only; propagation contagion. population/population.json (materialized_count: 20)
E Three layers, one scheduled event and one broadcast — see below. Provider hisim.twitter_env with n_core: 8, n_ord: 12, alpha: 0.3, bc_bound: 0.1, target: "the protection of Abortion Rights". environment/environment.json
B Decision hisim.hybrid_decision (mode: llm, gpt-4o-mini). Core users role-play and act; their opinion is then mirrored off the tweet they produced. Ordinary users run the Deffuant rule. model.py
layer modality scope dynamics content
tweet_feed information local endogenous the audience timeline of recent tweets
trigger_news information macro scheduled the offline event news broadcast
peer_opinion physical macro endogenous global confidence-band peer opinions (BCM)

At step 2 a scheduled event sets trigger_news.content, and broadcast N1 ("News- a major event concerning the protection of Abortion Rights occurs.") goes out to audience: "all" with ttl 4.

The two behaviour branches, precisely:

  • Core (LLM) — one role-play call per core user per step, producing an action and a stance; the agent's opinion is rewritten to sign(stance) · |sentiment|. Observed action kinds across the run: retweet 18, post 10, like 2, do_nothing 2.
  • Ordinary (ABM) — the Deffuant bounded-confidence update new = x + alpha · (peer − x) applied only when |peer − x| < bc_bound (alpha 0.3, bc_bound 0.1). 48 update_opinion actions over the run — 12 agents × 4 decided steps.

The LLM branch is a variance source (an opinion can jump, even flip sign); the rule branch is a contraction operator (it only pulls neighbours closer). Which one wins is an empirical question, and this study answers it.

One step, and the horizon

One step is one platform turn: core users see their timeline plus any live broadcast and act; ordinary users assimilate toward peers inside the confidence band; metrics are then computed over all 20 agents. n_steps: 4, seed: 42, so five metric rows (t=0 plus four decided steps).

This study runs one interaction round per step

The committed simulation/simulation.json has interaction_rounds: 1, even though the study's demonstrates list mentions multi-round messaging. What ships and what ran is single-round. If you want several message exchanges inside one step, that is a config change — see Multi-Round Interaction.

Results

The study's opinion trajectory: bias drifts positive while diversity collapses — convergence sets in before the news even fires

step bias diversity mean_core mean_ordinary n_active n_post
0 -0.2223 0.32156 -0.1112 -0.2964 0 0
1 -0.1170 0.22357 +0.1559 -0.2990 6 6
2 (news) -0.1474 0.19541 +0.0885 -0.3047 8 7
3 -0.1543 0.19324 +0.0749 -0.3070 8 7
4 -0.1590 0.19076 +0.0653 -0.3085 8 8

Net over the horizon: bias +0.0633, diversity −0.1308 (the population converges). The two cohorts diverge sharply — core moved +0.1765 while ordinary moved only −0.0121.

The instructive detail is when the movement happened. The largest single-step change in bias is step 1 at +0.1053before the news fires. The news step itself moves bias by only −0.0304, and core activity was already 6/8 at step 1 before saturating at 8/8. At this scale the LLM cohort's own expression dominates the aggregate, not the exogenous shock: the target topic is present in the core users' prompts from the start, so they express immediately and the one-off news is marginal on top of an already-high activity level.

The second reading is the mirror image: high activity is not large movement. Core activity is saturated from step 2 on, but bias is nearly flat from step 2 to step 4 — because eight core opinions of mixed sign partly cancel, and the 12 ordinary users (60% of the panel, ending at −0.3085) barely move and anchor the aggregate near their starting level.

Grounding

Four sourced facts, three declared assumptions, two implementation references.

entry basis role
Dobbs v. Jackson overturned Roe on 2022-06-24 (SCOTUSblog) sourced the real exogenous shock trigger_news stands for
Pew: ~61% said abortion should be legal in all/most cases (pre-decision) sourced the real prior the uniform initialization deliberately does not use
Pew post-decision: 57% disapprove / 41% approve, n = 6,174 sourced the net-negative attitude the demo's bias must not be read as predicting
HiSim's own published ROE config: 1000 ordinary agents, alpha 0.3, 14 turns sourced the reference scale this showcase is a reduction of
8 core + 12 ordinary over 4 steps instead of 1000 over 14 assumed exercises the full real-LLM path at demo cost; counts are declared adjustable_params
uniform [-1, 1] initial opinions rather than a Pew-skewed prior assumed HiSim's real ROE user data is not bundled here, so the real-data path cannot run
TextBlob polarity as the sentiment function in the att mirror assumed a light stand-in faithful to the sign-times-magnitude mirror shape

Implementation references: Mou et al. (2024), Unveiling the Truth and Facilitating Change (HiSim, ACL 2024 Findings) — the paper this study ports; and Deffuant, Neau, Amblard & Weisbuch (2000), Mixing beliefs among interacting agents — the bounded-confidence rule behind the ordinary cohort.

Because the initial opinions are uniform rather than Pew-calibrated, the absolute level of bias carries no polling claim. What transfers is the relative mechanism: cohort divergence, convergence in diversity, and the timing of the shock.

What you can fork

param the question it opens
n_core / n_ord at 8 vs 12 the LLM cohort dominates. Push the ratio toward HiSim's 1000 ordinary users and the silent majority should reassert itself — at what mix does the crossover happen?
alpha how fast the silent majority assimilates; the anchor's stiffness.
bc_bound 0.1 is narrow. Sweep to ~0.5 for the classic bounded-confidence transition from fragmentation to consensus — and check whether the LLM cohort shifts the critical point.
news schedule fire the news at step 1, or fire a second wave, and test whether bias shows a genuine second inflection once the topic is not already saturated.
target the same hybrid machinery on a different issue.

The report's own first recommendation is a parity fork: run the same study with a deterministic scripted decision instead of the LLM, and measure whether role-play introduces a systematic shift versus the rule stub. Structure and mechanics of building this way are in Build a Study from Scratch (Path B).