SPB Git

spb/wp27_uqo

Public
1.3 KB · 23 lines python
1"""Minimal end-to-end experiment: 100 agents, fixed seed, zero paid calls (mock LLM at 25 %), accounting verified."""2from __future__ import annotations34import sys5from pathlib import Path67ROOT = Path(__file__).resolve().parents[1]8sys.path.insert(0, str(ROOT / "src"))9from market_agents.experiments.config import RunConfig  # noqa: E40210from market_agents.experiments.runner import run_config  # noqa: E40211from market_agents.metrics.outcomes import run_outcomes  # noqa: E4021213if __name__ == "__main__":14    out = ROOT / "results/runs/smoke"15    for share in (0.0, 0.25):16        cfg = RunConfig.from_yaml(ROOT / "configs/baseline.yaml", **{"name": f"smoke_{int(share * 100)}", "seed": 1, "n_ticks": 300,17                                                                     "population.llm_share": share, "population.llm.provider_mix": {"mock": 1.0}})18        res = run_config(cfg, out_dir=out / cfg.name)19        oc = run_outcomes(res)20        print(f"{cfg.name}: trades={oc['n_trades']} mad={oc['mad_pct']:.2f}% spread={oc['spread_bp']:.1f}bp bubbles={oc['n_bubbles']} "21              f"llm_decisions={oc['n_llm_decisions']} valid={oc.get('llm_valid_rate', float('nan')):.2f} conservation_ok={res.manifest['final_conservation_ok']} wall={oc['wall_s']:.2f}s")22    print("smoke test OK — artefacts in", out)23
Files · 74b1f4645e719f7595f741141ffd6a7560577c3f
Menu

Theme