# Thousand Token Wood: emergent market drama from 3-billion-parameter agents *Field notes from the Build Small Hackathon, June 2026.* The premise of the Build Small Hackathon is a quiet rebuke to the last two years of AI: instead of wiring a giant model into yet another B2B tool, take 32 billion parameters or fewer and build something delightful. I went smaller than the cap and asked a narrower question. Can a 3-billion-parameter model, given a role and a budget, produce the kind of emergent market behavior I spend my professional life studying? The answer turned out to be yes, and the way it failed first was as instructive as the way it eventually worked. ## Why small is the point, not the constraint Thousand Token Wood is a tiny economy. Five woodland creatures, each its own agent, trade five goods for pebbles, gossip, hoard, and panic. The player pokes the system and watches bubbles, crashes, and a widening wealth gap appear on their own. A living economy needs many agents thinking many times. That is precisely the regime where a frontier model is the wrong tool: too slow and too expensive to run a council of traders every tick. A small model is what makes a real-time multi-agent simulation feasible at all. The constraint is the design. The cast runs on Qwen2.5-3B-Instruct, served with vLLM on Modal, with a Gradio app as the window onto the wood. Every creature decides in a single batched GPU call per turn. ## The first economy was dead on arrival The naive version did nothing. Production outran consumption, so every creature was self-sufficient, hoarded its own crop, and never had a reason to trade. The market cleared once and went silent. The fix was to engineer scarcity, the way a real economy has it: - **Diet variety.** A creature can eat only one unit of any single food per meal, so surviving means buying foods it does not grow. - **Spoilage.** Perishable food rots if hoarded, which punishes stockpiling and forces surplus to be sold while it still has value. - **A winter fuel crisis.** Every creature must burn firewood each turn, the need rises as winter deepens, and only one creature makes firewood. That last mechanic is the engine of the drama. Demand for fuel outstrips one supplier, so the woodcutter gets rich and everyone else competes for warmth. ## The model was a worse trader than it looked With scarcity in place, a new problem surfaced, and it is the honest lesson of working with small models. The 3B emitted perfectly valid JSON every time (100% across hundreds of calls), but its economic judgment was mediocre: a creature that produced acorns would post an order to buy acorns, the one thing it had in surplus. Valid format, weak reasoning. The fix was not a bigger model; it was a sharper prompt. I told each agent explicitly what it produced and must never buy, computed the list of goods it was actually short on, and gave it one worked example of a sensible move. Decision quality jumped, and the creatures began trading to their roles. The second small-model lesson came from my wellbeing mechanic. I had modeled it as an accumulator: shortfalls subtracted, full provisioning added one. Over fifteen turns, any chronic shortfall ground every creature to zero, a death spiral that exposed the agents' imperfect optimization and, worse, was no fun to watch. I reframed wellbeing as a mean-reverting mood that recovers when a creature is fed and warm and never falls to zero. The stakes moved into pebbles, prices, and status, where they belong in a sandbox. ## Then it started telling stories The feature I am most pleased with is the one that ties the project to my actual field. The player can draw a "Wood Legend": a famous episode from market history, reskinned as woodland folklore. Tulip Mania becomes the Great Acorn Mania. The South Sea Bubble becomes the Hollow Log Trading Company. The 1929 bank runs become the Run on Oona's Hoard. These are not just flavor text. Each legend fires real shocks into the economy, and the agents react. In one run I drew the Run on Oona's Hoard, the rumor that the owl's vault was empty. Oona, reading the panic, began liquidating her honey to raise pebbles, and the flood of supply crashed the honey price from 10 down to 3 over the next turns. A reskinned bank run caused an agent to dump assets, which moved a market price. None of that was scripted. For the price action to be visible at all, I had to let prices move. They were frozen because the agents quoted back the reference price I showed them. The fix was to let the market reference drift with residual supply and demand after each round: heavy unfilled buying pushes a price up, a glut pushes it down. Prices now trend during scarcity and stay calm in balanced trade, which is exactly the behavior you want. ## What actually happened A representative fifteen-turn run, with a drought and a winter rumor injected partway: | Metric | Result | |---|---| | Valid JSON actions | 100% (75 of 75 calls) | | Trades per turn | sustained 3 to 9, never silent | | Honey price | crashed 10 to 3 during the bank-run legend | | Firewood price | rose 4 to 7 as winter scarcity bit | | Wealth gap (Gini) | widened 0.14 to 0.38 | | Outcome | the woodcutter ended richest, the hoarder broke | *Table 1. One playthrough of Thousand Token Wood on Qwen2.5-3B. The drama is emergent, not scripted.* ## What I took away Three things. First, a small model is a reliable format generator and an unreliable reasoner, and most of the engineering is closing that gap with structure and prompting rather than scale. Second, emergent systems need designed scarcity; abundance is boring. Third, the most compelling demos sit at the intersection of a technical constraint and something you already understand deeply. I did not have to invent the drama. Three centuries of market history had it ready, and a council of 3B agents was enough to play it out. Small models, big adventures. --- *Try it: the [Space](https://huggingface.co/spaces/build-small-hackathon/thousand-token-wood-sim). Open agent traces: the [dataset](https://huggingface.co/datasets/build-small-hackathon/thousand-token-wood-traces).*