-
Notifications
You must be signed in to change notification settings - Fork 4
Description
Problem
Timestep summaries (position distribution, average sentiment, exposure rate) are computed and stored in the timestep_summaries table after each timestep, but there is no evidence they are rendered into agent prompts for subsequent timesteps.
The doc specifies that macro state should feed back into agent prompts as ambient context — "Most people are choosing X", "The general mood is getting worse", "Almost everyone has heard about this now."
Evidence
Timestep summaries ARE computed:
T0: {actively_oppose: 35, monitor: 6, support: 7}, avg_sentiment=0.539, exposure=96%
T1: {actively_oppose: 36, monitor: 6, support: 8}, avg_sentiment=0.582, exposure=100%
T2: same distribution, avg_sentiment=0.700, exposure=100%
But agent_21's T2 reasoning says:
"I haven't changed my mind — I still think the board did the right thing..."
No reference to "most people around me oppose the ban" or "the general mood is shifting" — despite 72% of the population actively opposing removal. The agent reasons in a vacuum about their own position without sensing the macro environment.
From the Doc (§Fix 4)
Macro state feedback:
- After each timestep, compute macro summary from TimestepSummary data:
- Position distribution rendered as "Most people are choosing X. A growing minority is doing Y."
- Sentiment trend: "The general mood is getting worse / stabilizing / improving."
- Exposure saturation: "Almost everyone has heard about this now."
- Inject this into every agent's next-timestep prompt as ambient context
Impact
Without macro feedback, agents can't sense the prevailing opinion around them. This breaks the macro→micro feedback loop (Tenet 12) and weakens preference interdependence (Tenet 11). Agents supporting the ban would realistically feel social pressure from being in the minority, but currently they have no way to know they're in the minority.
References
docs/simulation-v2-architecture.md§Fix 4, §3.6, Tenets 11-12extropy/simulation/engine.py— timestep loopextropy/simulation/reasoning.py— prompt construction