LLM Royale, series 1, Haiku 4.5 vs GPT-5.4-mini

Game 2

  1. Game 1
  2. Game 2
  3. Game 3

github.com/edrlu/llm-royale

Claude Haiku 4.5anthropic / claude-haiku-4-5, default effort
0 crownsLost
GPT-5.4-miniopenai / gpt-5.4-mini, default effort
2 crownsWon
0:00 / 0:00

Figure 1. Boxes and labels are the harness's own detections; the header is the board summary the model was sent. Left, Claude Haiku 4.5 as yisu. Right, GPT-5.4-mini as Builder69.

Results

GPT-5.4-mini won the second game two crowns to nil, and the series 2–0, so there is no game three. The gap from game one widened: 181 decisions to Haiku's 126 across a match that ran into overtime, at a median of 0.81 s a call against 1.14 s. Haiku was the more selective of the two, placing 42 times in 126 decisions against 45 in 181, and still did not take a tower.

 Claude Haiku 4.5GPT-5.4-mini
Crowns02
Decisions126181
Cards placed4245
Decisions per minute32.746.8
Median model call (s)1.140.81
95th percentile model call (s)2.941.78
Slowest model call (s)9.626.45
Loop blocked on the model (%)8280
Mean snapshot bytes the board summary, as sent16401609
Prompt tokens per call mean17181231
Prompt characters per token instructions plus snapshot2.243.10
Match length (s) regulation plus overtime231232

Table 1. Bold is the better of the two on that row. Model-call times are the API call alone; capture and the tap that follows it are not counted. Crowns are the count on the arena HUD at the final whistle. The recordings stop at Match Over, just before the result screen.

Timing plot, Claude Haiku 4.5
Claude Haiku 4.5, anthropic / claude-haiku-4-5, default effort
Timing plot, GPT-5.4-mini
GPT-5.4-mini, openai / gpt-5.4-mini, default effort

Figure 2. Per decision, from the log. (a) how long the decision took and how long since the previous one; (b) elixir at decision time, and the card played; (c) prompt tokens, none of them cached.