checking system…
Docs / back / config/arenas/crowd_simulation.yaml · line 1
YAML · 91 lines
 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