Skip to content

Commit 2dc1591

Browse files
committed
deploy: 9d36a75
1 parent 26b5ddc commit 2dc1591

13 files changed

Lines changed: 233 additions & 244 deletions

File tree

quickstart/index.html

Lines changed: 21 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -666,21 +666,10 @@
666666
</li>
667667

668668
<li class="md-nav__item">
669-
<a href="#example-configs-quick-experiments" class="md-nav__link">
669+
<a href="#pvp-configs-full-benchmarks" class="md-nav__link">
670670
<span class="md-ellipsis">
671671

672-
Example Configs (Quick Experiments)
673-
674-
</span>
675-
</a>
676-
677-
</li>
678-
679-
<li class="md-nav__item">
680-
<a href="#main-configs-full-benchmarks" class="md-nav__link">
681-
<span class="md-ellipsis">
682-
683-
Main Configs (Full Benchmarks)
672+
PvP Configs (Full Benchmarks)
684673

685674
</span>
686675
</a>
@@ -1923,21 +1912,10 @@
19231912
</li>
19241913

19251914
<li class="md-nav__item">
1926-
<a href="#example-configs-quick-experiments" class="md-nav__link">
1915+
<a href="#pvp-configs-full-benchmarks" class="md-nav__link">
19271916
<span class="md-ellipsis">
19281917

1929-
Example Configs (Quick Experiments)
1930-
1931-
</span>
1932-
</a>
1933-
1934-
</li>
1935-
1936-
<li class="md-nav__item">
1937-
<a href="#main-configs-full-benchmarks" class="md-nav__link">
1938-
<span class="md-ellipsis">
1939-
1940-
Main Configs (Full Benchmarks)
1918+
PvP Configs (Full Benchmarks)
19411919

19421920
</span>
19431921
</a>
@@ -2194,12 +2172,12 @@ <h2 id="configuration-tiers">Configuration Tiers</h2>
21942172
</tr>
21952173
<tr>
21962174
<td><code>configs/examples/</code></td>
2197-
<td>Short tournaments (5 rounds)</td>
2175+
<td>Single-player &amp; minimal per-arena samples</td>
21982176
<td>Low</td>
2199-
<td>Learning, quick experiments</td>
2177+
<td>Trying one arena or mode</td>
22002178
</tr>
22012179
<tr>
2202-
<td><code>configs/main/</code></td>
2180+
<td><code>configs/pvp/</code></td>
22032181
<td>Full benchmark runs (15 rounds)</td>
22042182
<td>High</td>
22052183
<td>Reproducing paper results</td>
@@ -2216,24 +2194,19 @@ <h3 id="test-configs-free">Test Configs (Free)</h3>
22162194
<p>No LLM API calls - uses dummy agents that make no changes:</p>
22172195
<div class="highlight"><pre><span></span><code>uv<span class="w"> </span>run<span class="w"> </span>codeclash<span class="w"> </span>run<span class="w"> </span>configs/test/battlesnake.yaml
22182196
</code></pre></div>
2219-
<h3 id="example-configs-quick-experiments">Example Configs (Quick Experiments)</h3>
2220-
<p>Short 5-round tournaments for learning and experimentation:</p>
2221-
<div class="highlight"><pre><span></span><code><span class="c1"># Claude Sonnet 4.5 vs o3 in BattleSnake (5 rounds)</span>
2222-
uv<span class="w"> </span>run<span class="w"> </span>codeclash<span class="w"> </span>run<span class="w"> </span>configs/examples/BattleSnake__claude-sonnet-4-5-20250929__o3__r5__s1000.yaml
2197+
<h3 id="pvp-configs-full-benchmarks">PvP Configs (Full Benchmarks)</h3>
2198+
<p>Full 15-round model-vs-model tournaments, as used in the paper:</p>
2199+
<div class="highlight"><pre><span></span><code><span class="c1"># Claude Sonnet 4.5 vs o3 in BattleSnake</span>
2200+
uv<span class="w"> </span>run<span class="w"> </span>codeclash<span class="w"> </span>run<span class="w"> </span>configs/pvp/BattleSnake__claude-sonnet-4-5-20250929__o3__r15__s1000.yaml
22232201

22242202
<span class="c1"># Same matchup in other arenas</span>
2225-
uv<span class="w"> </span>run<span class="w"> </span>codeclash<span class="w"> </span>run<span class="w"> </span>configs/examples/CoreWar__claude-sonnet-4-5-20250929__o3__r5__s1000.yaml
2226-
uv<span class="w"> </span>run<span class="w"> </span>codeclash<span class="w"> </span>run<span class="w"> </span>configs/examples/Halite__claude-sonnet-4-5-20250929__o3__r5__s250.yaml
2227-
uv<span class="w"> </span>run<span class="w"> </span>codeclash<span class="w"> </span>run<span class="w"> </span>configs/examples/RoboCode__claude-sonnet-4-5-20250929__o3__r5__s250.yaml
2228-
</code></pre></div>
2229-
<h3 id="main-configs-full-benchmarks">Main Configs (Full Benchmarks)</h3>
2230-
<p>Full 15-round tournaments used in the paper:</p>
2231-
<div class="highlight"><pre><span></span><code><span class="c1"># Full BattleSnake tournament</span>
2232-
uv<span class="w"> </span>run<span class="w"> </span>codeclash<span class="w"> </span>run<span class="w"> </span>configs/main/BattleSnake__claude-sonnet-4-5-20250929__o3__r15__s1000.yaml
2203+
uv<span class="w"> </span>run<span class="w"> </span>codeclash<span class="w"> </span>run<span class="w"> </span>configs/pvp/CoreWar__claude-sonnet-4-5-20250929__o3__r15__s1000.yaml
2204+
uv<span class="w"> </span>run<span class="w"> </span>codeclash<span class="w"> </span>run<span class="w"> </span>configs/pvp/Halite__claude-sonnet-4-5-20250929__o3__r15__s250.yaml
2205+
uv<span class="w"> </span>run<span class="w"> </span>codeclash<span class="w"> </span>run<span class="w"> </span>configs/pvp/RoboCode__claude-sonnet-4-5-20250929__o3__r15__s250.yaml
22332206
</code></pre></div>
22342207
<div class="admonition warning">
22352208
<p class="admonition-title">Cost Warning</p>
2236-
<p>Main configs run 15 rounds with real LLM agents. Expect significant API costs depending on your model choices.</p>
2209+
<p>PvP configs run 15 rounds with real LLM agents. Expect significant API costs depending on your model choices.</p>
22372210
</div>
22382211
<h2 id="viewing-results">Viewing Results</h2>
22392212
<p>After a tournament completes, view results with the interactive viewer:</p>
@@ -2252,22 +2225,22 @@ <h2 id="viewing-results">Viewing Results</h2>
22522225
<h2 id="quick-recipes">Quick Recipes</h2>
22532226
<h3 id="run-your-first-real-tournament">Run your first real tournament</h3>
22542227
<div class="highlight"><pre><span></span><code><span class="c1"># 1. Make sure you have API keys in .env</span>
2255-
<span class="c1"># 2. Run a short example tournament</span>
2256-
uv<span class="w"> </span>run<span class="w"> </span>codeclash<span class="w"> </span>run<span class="w"> </span>configs/examples/BattleSnake__claude-sonnet-4-5-20250929__o3__r5__s1000.yaml
2228+
<span class="c1"># 2. Run a tournament</span>
2229+
uv<span class="w"> </span>run<span class="w"> </span>codeclash<span class="w"> </span>run<span class="w"> </span>configs/pvp/BattleSnake__claude-sonnet-4-5-20250929__o3__r15__s1000.yaml
22572230

22582231
<span class="c1"># 3. View results</span>
22592232
uv<span class="w"> </span>run<span class="w"> </span>python<span class="w"> </span>scripts/run_viewer.py
22602233
</code></pre></div>
22612234
<h3 id="try-a-different-arena">Try a different arena</h3>
22622235
<div class="highlight"><pre><span></span><code><span class="c1"># CoreWar - Assembly-like programming battle</span>
2263-
uv<span class="w"> </span>run<span class="w"> </span>codeclash<span class="w"> </span>run<span class="w"> </span>configs/examples/CoreWar__claude-sonnet-4-5-20250929__o3__r5__s1000.yaml
2236+
uv<span class="w"> </span>run<span class="w"> </span>codeclash<span class="w"> </span>run<span class="w"> </span>configs/pvp/CoreWar__claude-sonnet-4-5-20250929__o3__r15__s1000.yaml
22642237

22652238
<span class="c1"># RobotRumble - Multi-robot combat</span>
2266-
uv<span class="w"> </span>run<span class="w"> </span>codeclash<span class="w"> </span>run<span class="w"> </span>configs/examples/RobotRumble__claude-sonnet-4-5-20250929__o3__r5__s250.yaml
2239+
uv<span class="w"> </span>run<span class="w"> </span>codeclash<span class="w"> </span>run<span class="w"> </span>configs/pvp/RobotRumble__claude-sonnet-4-5-20250929__o3__r15__s250.yaml
22672240
</code></pre></div>
22682241
<h3 id="create-a-custom-matchup">Create a custom matchup</h3>
2269-
<p>Copy an example config and modify:</p>
2270-
<div class="highlight"><pre><span></span><code>cp<span class="w"> </span>configs/examples/BattleSnake__claude-sonnet-4-5-20250929__o3__r5__s1000.yaml<span class="w"> </span>configs/my_tournament.yaml
2242+
<p>Copy a config and modify:</p>
2243+
<div class="highlight"><pre><span></span><code>cp<span class="w"> </span>configs/pvp/BattleSnake__claude-sonnet-4-5-20250929__o3__r15__s1000.yaml<span class="w"> </span>configs/my_tournament.yaml
22712244
<span class="c1"># Edit configs/my_tournament.yaml to change models, rounds, etc.</span>
22722245
uv<span class="w"> </span>run<span class="w"> </span>codeclash<span class="w"> </span>run<span class="w"> </span>configs/my_tournament.yaml
22732246
</code></pre></div>

reference/arenas/battlesnake/index.html

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2365,7 +2365,12 @@ <h3 id="codeclash.arenas.battlesnake.battlesnake.BattleSnakeArena.validate_code"
23652365
<span class="normal">203</span>
23662366
<span class="normal">204</span>
23672367
<span class="normal">205</span>
2368-
<span class="normal">206</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">validate_code</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">agent</span><span class="p">:</span> <span class="n">Player</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">tuple</span><span class="p">[</span><span class="nb">bool</span><span class="p">,</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span><span class="p">]:</span>
2368+
<span class="normal">206</span>
2369+
<span class="normal">207</span>
2370+
<span class="normal">208</span>
2371+
<span class="normal">209</span>
2372+
<span class="normal">210</span>
2373+
<span class="normal">211</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">validate_code</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">agent</span><span class="p">:</span> <span class="n">Player</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">tuple</span><span class="p">[</span><span class="nb">bool</span><span class="p">,</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span><span class="p">]:</span>
23692374
<span class="n">listing</span> <span class="o">=</span> <span class="n">agent</span><span class="o">.</span><span class="n">environment</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="s2">&quot;ls&quot;</span><span class="p">)[</span><span class="s2">&quot;output&quot;</span><span class="p">]</span>
23702375
<span class="c1"># Non-Python submissions declare how to launch their server via run.sh (any</span>
23712376
<span class="c1"># language). We trust the launch script here; a broken one is caught at runtime</span>
@@ -2387,6 +2392,11 @@ <h3 id="codeclash.arenas.battlesnake.battlesnake.BattleSnakeArena.validate_code"
23872392
<span class="n">error_msg</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;There should be a `</span><span class="si">{</span><span class="n">func</span><span class="si">}</span><span class="s2">` function implemented in `</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">submission</span><span class="si">}</span><span class="s2">`&quot;</span><span class="p">)</span>
23882393
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">error_msg</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
23892394
<span class="k">return</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">error_msg</span> <span class="o">+</span> <span class="p">[</span><span class="s2">&quot;Don&#39;t change the function signatures!&quot;</span><span class="p">])</span>
2395+
<span class="k">if</span> <span class="s2">&quot;__main__&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">bot_content</span><span class="p">:</span>
2396+
<span class="k">return</span> <span class="kc">False</span><span class="p">,</span> <span class="p">(</span>
2397+
<span class="sa">f</span><span class="s1">&#39;`</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">submission</span><span class="si">}</span><span class="s1">` must keep its `if __name__ == &quot;__main__&quot;` block that starts &#39;</span>
2398+
<span class="s2">&quot;the server, or the bot fails to launch.&quot;</span>
2399+
<span class="p">)</span>
23902400
<span class="k">return</span> <span class="kc">True</span><span class="p">,</span> <span class="kc">None</span>
23912401
</code></pre></div></td></tr></table></div>
23922402
</details>

reference/arenas/cyborg/index.html

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1945,12 +1945,7 @@ <h2 id="codeclash.arenas.cyborg.cyborg.CybORGArena" class="doc doc-heading">
19451945

19461946
<details class="mkdocstrings-source">
19471947
<summary>Source code in <code>codeclash/arenas/arena.py</code></summary>
1948-
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 78</span>
1949-
<span class="normal"> 79</span>
1950-
<span class="normal"> 80</span>
1951-
<span class="normal"> 81</span>
1952-
<span class="normal"> 82</span>
1953-
<span class="normal"> 83</span>
1948+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 83</span>
19541949
<span class="normal"> 84</span>
19551950
<span class="normal"> 85</span>
19561951
<span class="normal"> 86</span>
@@ -1975,7 +1970,12 @@ <h2 id="codeclash.arenas.cyborg.cyborg.CybORGArena" class="doc doc-heading">
19751970
<span class="normal">105</span>
19761971
<span class="normal">106</span>
19771972
<span class="normal">107</span>
1978-
<span class="normal">108</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">config</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span> <span class="o">*</span><span class="p">,</span> <span class="n">tournament_id</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">local_output_dir</span><span class="p">:</span> <span class="n">Path</span><span class="p">,</span> <span class="n">keep_containers</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">):</span>
1973+
<span class="normal">108</span>
1974+
<span class="normal">109</span>
1975+
<span class="normal">110</span>
1976+
<span class="normal">111</span>
1977+
<span class="normal">112</span>
1978+
<span class="normal">113</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">config</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span> <span class="o">*</span><span class="p">,</span> <span class="n">tournament_id</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">local_output_dir</span><span class="p">:</span> <span class="n">Path</span><span class="p">,</span> <span class="n">keep_containers</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">):</span>
19791979
<span class="w"> </span><span class="sd">&quot;&quot;&quot;The CodeArena class is responsible for running games, i.e., taking a list of code</span>
19801980
<span class="sd"> from different agents/players and running them against each other.</span>
19811981
<span class="sd"> It also provides the environments for the game and agents to run in.</span>

reference/arenas/dummy/index.html

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1845,12 +1845,7 @@ <h2 id="codeclash.arenas.dummy.dummy.DummyArena" class="doc doc-heading">
18451845

18461846
<details class="mkdocstrings-source">
18471847
<summary>Source code in <code>codeclash/arenas/arena.py</code></summary>
1848-
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 78</span>
1849-
<span class="normal"> 79</span>
1850-
<span class="normal"> 80</span>
1851-
<span class="normal"> 81</span>
1852-
<span class="normal"> 82</span>
1853-
<span class="normal"> 83</span>
1848+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 83</span>
18541849
<span class="normal"> 84</span>
18551850
<span class="normal"> 85</span>
18561851
<span class="normal"> 86</span>
@@ -1875,7 +1870,12 @@ <h2 id="codeclash.arenas.dummy.dummy.DummyArena" class="doc doc-heading">
18751870
<span class="normal">105</span>
18761871
<span class="normal">106</span>
18771872
<span class="normal">107</span>
1878-
<span class="normal">108</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">config</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span> <span class="o">*</span><span class="p">,</span> <span class="n">tournament_id</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">local_output_dir</span><span class="p">:</span> <span class="n">Path</span><span class="p">,</span> <span class="n">keep_containers</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">):</span>
1873+
<span class="normal">108</span>
1874+
<span class="normal">109</span>
1875+
<span class="normal">110</span>
1876+
<span class="normal">111</span>
1877+
<span class="normal">112</span>
1878+
<span class="normal">113</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">config</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span> <span class="o">*</span><span class="p">,</span> <span class="n">tournament_id</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">local_output_dir</span><span class="p">:</span> <span class="n">Path</span><span class="p">,</span> <span class="n">keep_containers</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">):</span>
18791879
<span class="w"> </span><span class="sd">&quot;&quot;&quot;The CodeArena class is responsible for running games, i.e., taking a list of code</span>
18801880
<span class="sd"> from different agents/players and running them against each other.</span>
18811881
<span class="sd"> It also provides the environments for the game and agents to run in.</span>

0 commit comments

Comments
 (0)