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

Game 1

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

github.com/edrlu/llm-royale

Claude Haiku 4.5anthropic / claude-haiku-4-5, default effort
1 crownLost
GPT-5.4-miniopenai / gpt-5.4-mini, default effort
3 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 three crowns to one. It played more often rather than better: 137 decisions to Haiku's 99 in the same three minutes, because its median model call came back in 0.85 s against Haiku's 1.15 s. A defensive placement is worth little once the push has crossed the bridge, so the rate matters as much as the choice.

 Claude Haiku 4.5GPT-5.4-mini
Crowns13
Decisions99137
Cards placed3745
Decisions per minute30.342.4
Median model call (s)1.150.85
95th percentile model call (s)3.282.87
Slowest model call (s)7.597.85
Loop blocked on the model (%)7477
Mean snapshot bytes the board summary, as sent15961659
Prompt tokens per call mean17031248
Prompt characters per token instructions plus snapshot2.233.10
Match length (s) two phones, two clocks196194

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 end-of-match screen, read off both recordings.

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.