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

MCP-India-Stack: Offline-first server for Indian financial data in AI agents
MCP-India-Stack is an offline-first MCP server that provides Indian financial and government API functionality without authentication or external API calls. It bundles datasets locally for tax calculations, validation tools, and lookups.

Dynamic Status Bar for Claude Code Shows Live Updates
A developer has improved their Claude Code status bar from static text to dynamic display with real-time updates showing what Claude is working on. The configuration is available as a GitHub gist.

Claude Code Logs Every Session to Disk — Here's How to Index and Recall Them
Claude Code writes every session turn to ~/.claude/projects/ as JSONL. One user indexed 1026 sessions (57MB, 76K turns) into SQLite+FTS5 with an MCP server for search and thread recall across sessions.

Ultimate Unreal Engine MCP: Claude Code Can Now Build and Verify Unreal Engine Levels with 132 Tools
Open-source MCP server exposes 132 tools across 26 domains, letting Claude spawn actors, set UPROPERTY values, take viewport screenshots, navigate cameras, and self-correct after mutations.