How CFR bots learned near-unbeatable poker
Every famous research poker bot — Cepheus, Libratus, Pluribus, Slumbot — grew from one deceptively simple idea: regret.
The core loop
Counterfactual regret minimization (CFR) is a self-play algorithm. The bot plays against itself billions of times. After each hand it asks, for every decision it faced: "how much better would I have done with each other action?" That difference is the regret. Actions that would have done better get played a little more often next time; actions that did worse, less often.
Run that loop long enough and the strategy stops being exploitable: the average of all those adjustments converges toward a Nash equilibrium — a strategy that cannot lose in expectation against any opponent, no matter how it is attacked.
Why poker needed abstraction
No-Limit Hold'em has more distinct situations than there are atoms you could count in a lifetime, so nobody runs CFR on the full game. Bots group similar hands into buckets ("these flush draws play alike") and restrict bet sizes to a menu. Slumbot is a classic blueprint of this kind. Later systems — DeepStack, Libratus — added real-time re-solving of the current situation on top of the precomputed blueprint, which is roughly "preparation plus thinking at the table."
What equilibrium play feels like
- It bluffs and value-bets at frequencies that make your counter-decisions unprofitable either way.
- It never adapts to you — balance is the entire defense. If you play perfectly against it, you roughly break even; every mistake you make loses money.
- It has no fear and no memory of the last hand. Momentum, tilt and table image mean nothing to it.
Where the famous bots went
Cepheus (Alberta, 2015) essentially solved heads-up limit hold'em. Libratus (CMU, 2017) beat top professionals heads-up no-limit; Pluribus (2019) did it six-handed. None of the three was ever released for the public to play. Slumbot stayed — which is why our champion tier plays through its live API, and why "vs Slumbot" is still the number every new bot reports.