1name: crowd_simulation 2description: "Multi-persona crowd-simulation arena. Ingests a document, runs MiroFish for persona reactions, synthesises a CrowdPrediction via Ollama Cloud (deep tier)." 3schedule: null # manual / on-demand for now; iter-4 wires it up 4output_stream: "maf:arena:crowd_simulation:output" 5# T-0026: Redis URL the emit phase publishes envelopes to. Falls through to 6# REDIS_URL env var (set by the demo / tail CLI) — leave commented to keep 7# default.yaml in charge of the URL. 8# redis_url: "${REDIS_URL}" 9 10llm: 11 default_provider: ollama 12 quick_provider: ollama 13 quick_model: "auto" # picker → gpt-oss:20b-cloud (quick profile) 14 deep_provider: ollama 15 deep_model: "auto" # picker → gpt-oss:120b-cloud (synthesis/judge) 16 providers: 17 ollama: 18 api_key: "${OLLAMA_API_KEY}" 19 model: "auto" 20 base_url: "https://ollama.com/v1" 21 max_output_tokens: 4096 22 temperature: 0.2 23 24sources: 25 - name: crowd_sim 26 adapter: mirofish_crowd 27 config: 28 enabled: true 29 base_url: "http://localhost:5101" 30 request_timeout_s: 30 31 total_timeout_s: 1800 32 poll_interval_s: 5 33 offline_fixture: "tests/fixtures/mirofish_canned_report.json" 34 # Example wiring for the disk-based fomo2 report reader (T-0018). 35 # Uncomment and adjust output_dir to point at your fomo2 install. The demo's 36 # --source-adapter fomo2_report flag instantiates this adapter directly via 37 # Fomo2Module.get_adapters() so this binding is optional. 38 # - name: fomo2_report 39 # adapter: fomo2_report 40 # config: 41 # output_dir: "../fomo2/output" 42 # glob_pattern: "analyze_*.md" 43 # max_chars_for_simulation: 6000 44 # Example wiring for the oddsoddy strategy directory reader (T-0020). 45 # The demo's --source-adapter oddsoddy_strategy flag instantiates this 46 # adapter via OddsoddyModule.get_adapters() so this binding is optional. 47 # - name: oddsoddy_strategy 48 # adapter: oddsoddy_strategy 49 # config: 50 # strategies_dir: "../oddsoddy/strategies" 51 # request_timeout_s: 5 52 # Example wiring for the Polymarket bet resolver (T-0019). 53 # The demo's --source-adapter polymarket_bet flag instantiates this 54 # adapter via PolymarketModule.get_adapters() so this binding is optional. 55 # - name: polymarket_bet 56 # adapter: polymarket_bet 57 # config: 58 # base_url: "https://clob.polymarket.com" 59 # gamma_url: "https://gamma-api.polymarket.com" 60 # request_timeout_s: 15 61 # include_orderbook: true 62 63# Phase list mirrors src/maf/arenas/crowd_simulation/phases.py:PHASES. 64# These are documentary — the arena uses the in-code list directly. Editing 65# this yaml block does NOT reorder phases (this is intentional for iter-2; 66# iter-4 may upgrade the runtime to dispatch off this list). 67phases: 68 - name: ingest_input 69 pattern: sequential 70 agents: [] 71 transition: run_mirofish_sim 72 - name: run_mirofish_sim 73 pattern: sequential 74 agents: [] 75 transition: aggregate_personas 76 - name: aggregate_personas 77 pattern: sequential 78 agents: [] 79 transition: synthesize 80 - name: synthesize 81 pattern: sequential 82 agents: 83 - name: synthesis_agent 84 role: synthesis 85 llm_tier: deep 86 transition: emit 87 - name: emit 88 pattern: sequential 89 agents: [] 90 transition: END