Build1 publisher2 min readPublished
Swapping the backing model moved every measured outcome in a 100-agent town economy
A 91-run simulation put 100 LLM agents on Pokhara Lakeside geography for 26 simulated weeks and reports rigid prices and stuck wages. Deleting the agents' memory changed nothing the team could measure.
The Engineer · Build desk

What happened
- A team put 100 memory-equipped LLM agents in a closed economy on real Pokhara Lakeside geography and ran it for 26 simulated weeks, with the agents earning wages, running businesses and setting prices.
- A 12x tourist demand shock raised business revenue 4.62x at p<0.001, splitting into 1.50x from more businesses trading and 3.07x from more revenue per trading business.
- Wealth rank correlation stood at 0.964 at the two-week horizon typical of agent-society studies, then fell to 0.832 at 12 weeks and 0.752 at 26 weeks.
- Swapping the backing LLM moved every outcome measured at p=0.0039, while deleting the agents' memory moved none of them detectably.
Compiled by The EngineerSomething wrong?How this is made
Why it matters
- cost Replication is priced in tokens: about 236 million per validated run and roughly 8,800 per agent decision, and the week-12 and week-26 results only appear at the far end of that spend.
- constraint Anyone reusing these elasticities has to pin a model version, since changing the backend moved every measured outcome and removing agent memory moved none.
- decision Failure handling has to sit in the harness, because agents kept calling social tools that failed 94 to 97 percent of the time and never shifted away from them.
- precedent Publishing the full run corpus sets the expectation that the next agent-economy study ships its runs for outside recomputation.
Conservation here comes from the loop shape. The published pulse resolves every agent's location, calls each agent's model in turn for a decision, hands the whole batch to one settlement function, then asserts that the settled amounts sum to zero before any agent state is updated [15]. No agent writes a balance while another is still deciding. That ordering, not a lock, is what satisfies the stated requirement of balancing every transaction across 100 concurrent agents without a central ledger lock [4]. The assertion sits after settlement, so it detects an unbalanced batch and cannot prevent one.
Two validation layers sit around that. A live validator checks monetary conservation at each pulse, and an offline pass recomputes each agent's wealth from its signed, append-only transaction history [13][12]. The second layer exists because the pulse assertion only sees the batch in front of it. The team says every headline number was verified twice and has released the full run corpus for reanalysis [13][14].
The cash-transfer arm is the one I would read first, because it drives the same question from the opposite direction. NPR 5,000 went to 20 of the 100 agents; 311 pulses later, 96.7 percent of it was still held, and marginal propensity to consume came in at 3 to 4 percent on two independent measures [10]. Those two results agree: 3.3 percent of the transferred cash left the recipients' hands, inside the reported band [5]. On the supply side, 0.3 percent of 3,981 menu items works out to about a dozen items ever repriced [2].
For any of this to describe a different system, the tool surface and the one-decision-per-pulse cadence have to look similar, and the model has to be in the same neighbourhood. Both families tested, described in the write-up as GPT-4 class and Claude class, showed the same price rigidity and wage stickiness [19]. The write-up calls this the first published multi-agent economic simulation to run past one or two weeks into 26-week territory [3], which I believe mostly because week 26 is expensive.
Deadlock detection is where the account thins. The metrics list includes price change frequency, wealth concentration by Gini and Spearman rho, tool call success rates and monetary conservation violations, and the write-up says these surfaced the economic deadlock before the simulation diverged [20]. There is no threshold given, no trigger, and no description of what the harness did once it fired. Handling agent-set prices that prevent market clearing is listed as a design requirement [6]; the detector behind it is not shown.
What to watch
- An outside reanalysis of the released run corpus, in particular whether the 4.62x revenue decomposition holds under a third model family.
- The truncated model-family comparison: the write-up cuts off mid-sentence on how far the GPT-4 class and Claude class runs diverged in magnitude.
- Whether the 94-97% social tool failure rate is a harness schema or validation bug or genuine agent behaviour.