Shawn Xu’s Slay the Spire 2 agent combines conventional search with small learned models, rather than asking an LLM to play every move. His published batch records 4,251 wins across 4,960 Ironclad runs at Ascension 0: 85.7%. The essential caveat is that the simulator exposes future random outcomes, including card draws—this is not a fair comparison with ordinary human play.

The practical lessons are in the architecture and evaluation:

  • Build one trustworthy simulator. Compile the game’s own logic headlessly, then replay recorded games to check state-by-state parity. Combat, route planning, and training all share it.
  • Keep alternatives alive across turns. A turn beam retains 40–80 end-of-turn states, preserving setup plays that a short-horizon search would discard.
  • Test recovery strategies before committing. A full-fight playout tries the default strategy first, then escalates to deeper search, racing, potions, and beam variants if it loses.
  • Learn choices from counterfactuals. Fork runs at card rewards and events to measure which decisions lead to wins, rather than relying only on generic card rankings.
  • Ship measured improvements. Paired tests use the same 1,000 seeds for both agents; unfinished runs count as losses before a change is promoted.

The strongest takeaway is that better objectives and decision structure mattered more than simply searching deeper. Consistency matters too: the route planner improved when it used the same card-pick model as the actual agent.

Xu also lays out the next experiment: sample plausible hidden states instead of reading the true future, then measure the performance gap. That distinction makes this a useful engineering case study without treating an information-privileged win rate as proof that the game is solved for normal players.