Brunnfeld Agentic World: Multi-Agent Medieval Economy Simulation Without Behavioral Prompts

Core Architecture
The simulation runs 20 LLM agents in a medieval village economy with zero behavioral instructions. Instead of prompting agents with goals, the system builds a world with physics and lets goals emerge naturally. Each agent gets a ~200 token perception each tick containing: their location, who's nearby, their inventory, wallet, hunger level, tool durability, and the live marketplace order book. They see what they CAN produce at their current location with their current inputs.
The architecture uses 14 deterministic engine phases per tick wrapping a single LLM call per agent. The engine handles all the mechanics you'd normally waste prompt tokens on: recipe validation, tool degradation, order book matching, spoilage timers, hunger drift, closing hours, and acquaintance gating (agents don't know each other's names until they've spoken). The LLM just picks actions from a schema, and the engine resolves them against world state.
Key Mechanics
- Hunger as ignition switch: For the first 4 ticks nobody trades because nobody is hungry. The moment hunger hits 3/5, agents start moving to the Village Square, posting orders, buying food. Tick 7 had 6 trades worth 54 coin after 6 ticks of zero activity.
- Supply chain as personality: The miller controls all flour. The blacksmith makes all tools. If either dies (starvation kills after 3 ticks at hunger 5), the entire downstream chain collapses.
- Natural feedback: Agents see
(You're hungry.)when hunger hits 3/5. They see[Can't eat] Wheat must be milled into flour firstwhen they try invalid actions.
Emergent Behaviors Observed
Without any economic instructions, the following emerged on Day 1:
- A baker negotiated flour on credit from the miller, promising to pay from bread sales by Sunday
- A farmer's nephew noticed their tools were failing, argued with his uncle about stopping work to visit the blacksmith, and won the argument
- The blacksmith went to the mine and negotiated ore prices at 2.2 coin per unit through conversation
- A 16-year-old apprentice bought bread, ate one, and resold the surplus at the marketplace, becoming a middleman without anyone telling him what arbitrage is
Technical Implementation
The project is open source TypeScript with no framework dependencies. It runs on any LLM, with free models through OpenRouter working fine. The system includes a playable viewer with pixel art map, live agent sprites, a Bloomberg-style ticker showing trades flowing, and allows users to join as a villager and compete against the 20 NPCs. There's a leaderboard, and God Mode lets you inject droughts and mine collapses to watch the economy react. You can interview any agent and they answer from their real memory state.
📖 Read the full source: r/ClaudeAI
👀 See Also

MatchKit: Design System Generator for Claude Code Projects
MatchKit is a tool that generates complete branded design systems for projects built with Claude Code. It extracts brand colors from uploaded logos and generates customizable components, layouts, and design tokens to avoid the generic look common with AI coding tools.

PicoClaw Fails to Build F1 AI Agent, Burns $20 in API Credits
A developer attempted to build an F1 information bot using PicoClaw on a Raspberry Pi Zero 2W, but the tool defaulted to version 11, generated hallucinated Python code, and consumed $20 in DeepSeek API credits without producing a working solution.

No-Code Persistent Memory System for Claude Using Notion and MCP
A radiologist built a 'Cognitive Hub' in Notion that Claude reads and writes to through MCP, creating a structured knowledge base with a routing table to load only relevant information per conversation. The system has grown to 70+ pages after a month of daily use.

osu-mcp: An MCP Server That Lets Claude Analyze Your osu! Stats in Plain English
osu-mcp is an MCP server for the osu! API v2, now on the official MCP Registry. It exposes 12 tools for player profiles, score history, beatmap search, rankings, and more. A demo showed Claude computing pp-per-play efficiency across player accounts to reveal that volume, not accuracy, was the bottleneck.