Skip to content
[OPEN_POKER]
Open Poker vs Slumbot: Bot Heads-Up o Arena Completa?

Open Poker vs Slumbot: Bot Heads-Up o Arena Completa?

JJoão Carvalho||12 min read

La elección entre Open Poker y Slumbot se reduce a lo que estás probando. Slumbot verifica si tu bot puede jugar estrategia correcta de heads-up contra un oponente cercano a Nash. Open Poker prueba si tu bot puede ganar chips contra cinco oponentes que están todos tratando de explotarse mutuamente. Resuelven problemas diferentes, y la mayoría de los constructores serios de bots usarán ambos en diferentes etapas. Empieza con Slumbot para calibrar, luego pasa a Open Poker para competir.

¿Qué es Slumbot?

Slumbot es un bot gratuito de No-Limit Hold'em heads-up construido y mantenido por Eric Jackson. Juega una estrategia fija computada usando Counterfactual Regret Minimization (CFR), la misma familia de algoritmos que produjo Cepheus y Libratus en la University of Alberta a partir de 2007. La estrategia aproxima el equilibrio de Nash para juego heads-up, lo que significa que está diseñada para ser inexplotable a largo plazo.

Puedes jugar contra Slumbot a través de su sitio web o mediante una API HTTP pública. La API te permite enviar historiales de manos y recibir la acción de Slumbot como respuesta. Es sencillo: POST un estado de juego, recibe una acción de vuelta. Sin autenticación, sin registro, sin coste.

Lo clave sobre Slumbot es lo que no hace. No se adapta. No te modela. No cambia su estrategia en función de si has estado bluffeando todas las manos o foldeando todas las manos. Juega el mismo equilibrio precomputado sin importar qué. Esto es una característica, no un defecto. Te da una baseline estable y reproducible contra la cual probar.

¿Qué es Open Poker?

Open Poker es una plataforma competitiva gratuita donde bots de IA juegan No-Limit Texas Hold'em a través de una API WebSocket. Organizamos temporadas de 2 semanas con un leaderboard público y premios en USDC. Las mesas tienen de 2 a 6 jugadores, y el matchmaker rota los oponentes durante toda la temporada.

Construí Open Poker porque quería un lugar donde los bots compitan contra otros bots, no contra un único compañero de sparring. La plataforma maneja la gestión de mesas, el posteo de blinds, el cálculo del pot y los side pots. Tú escribes la lógica de decisión; nosotros ejecutamos el juego. Cualquier lenguaje que pueda abrir una conexión WebSocket funciona: Python, Rust, JavaScript, Go, lo que prefieras.

La diferencia fundamental con Slumbot: tus oponentes son bots reales construidos por desarrolladores reales, y todos se están adaptando. Algunos ejecutan aproximaciones GTO. Algunos usan reinforcement learning. Algunos son LLMs con el historial de manos en el prompt. El campo cambia cada temporada a medida que la gente itera en sus estrategias.

¿Cómo difieren sus APIs?

Slumbot usa una API HTTP sincrónica. Haces POST del estado actual del juego, Slumbot devuelve su acción. La interacción es request-response. Tú controlas el ritmo: envía una mano, recibe una respuesta, procésala, envía la siguiente mano. Esto hace que las pruebas sean sencillas porque puedes scriptear miles de manos en un bucle sin preocupaciones de timing.

Open Poker usa una conexión WebSocket asincrónica. Tu bot se conecta, se une a una mesa y recibe eventos en tiempo real: hand_start, your_turn, player_action, hand_result. Cuando es tu turno, tienes un número fijo de segundos para responder (configurable, por defecto 30). Esto se parece más a cómo fluye un juego de poker real, con múltiples jugadores actuando en secuencia y eventos llegando mientras suceden.

La diferencia práctica importa más de lo que esperarías. Una integración con Slumbot son quizás 30 líneas de Python: bucle sobre manos, POST del estado, parsear respuesta. Una integración con Open Poker es un sistema event-driven que maneja desconexiones, timeouts y mensajes concurrentes. La guía de quickstart guía por el setup completo, pero planifica un mínimo de 50-100 líneas.

# Slumbot: sincrónico, scriptado
for hand in range(10000):
    state = deal_hand()
    response = requests.post(SLUMBOT_API, json=state)
    process(response)
 
# Open Poker: event-driven, tiempo real
async with websockets.connect(WS_URL) as ws:
    while True:
        msg = await ws.recv()
        if msg["type"] == "your_turn":
            await ws.send(decide(msg))

¿Pueden adaptarse los oponentes de Slumbot?

No. Ese es el punto. Slumbot juega una estrategia fija y precomputada. Si bluffeas todas las manos, Slumbot no empezará a llamarte con manos más débiles. Si foldeas todas las manos, Slumbot no empezará a robarte los blinds más agresivamente. La estrategia es estática.

Esto hace que Slumbot sea útil para una cosa específica: medir qué tan cerca está la estrategia de tu bot del equilibrio de Nash en juego heads-up. Si tu bot pierde a -5 bb/100 contra Slumbot a lo largo de 100.000 manos, ese es un número de calibración. Sabes aproximadamente qué tan explotable es tu estrategia contra un oponente inexplotable.

Pero hay una trampa. Vencer a Slumbot (o perder mínimamente) no te dice nada sobre cómo se desempeña tu bot en un entorno multiplayer donde los oponentes tienen fugas que puedes explotar. Una estrategia de equilibrio de Nash en heads-up es de punto de equilibrio por definición. En 6-max, el beneficio viene de identificar y explotar a oponentes que se desvían del juego óptimo. Esa es una habilidad completamente diferente.

Por qué importa el multiplayer para el desarrollo de bots

El poker heads-up y el 6-max son casi juegos diferentes.

En heads-up, GTO es el techo. No puedes hacer mejor que el equilibrio de Nash contra un oponente perfecto. La habilidad está en minimizar tu desviación de la estrategia de equilibrio.

En 6-max, el techo es la explotación. Seis jugadores significa más dinero muerto en los pots, más spots postflop con múltiples oponentes y más oportunidades de identificar patrones. Un bot GTO puro en una mesa 6-max deja dinero sobre la mesa porque nunca se ajusta al jugador tight que foldea ante cada 3-bet o al calling station que no va a soltar el second pair.

Las mesas 6-max de Open Poker obligan a tu bot a resolver problemas que Slumbot nunca plantea: modelado de oponentes, ajustes de rango conscientes de la posición contra múltiples oponentes, selección de mesa y gestión de stack entre sesiones. Necesitas decidir a qué oponentes atacar, cuáles evitar y cómo ajustarte a medida que la composición de la mesa cambia durante una temporada.

El leaderboard añade otra capa. No basta con ganar una sola sesión. Necesitas sostener una tasa de ganancia positiva durante 14 días contra un campo rotativo. La consistencia importa más que el rendimiento pico.

Cuándo usar Slumbot

Usa Slumbot cuando estés construyendo el motor de decisión central y necesites un benchmark estable.

Calibrar rangos preflop Si la estrategia preflop de tu bot está perdiendo mal en heads-up contra juego cercano a Nash, esa es una señal de que tus rangos necesitan trabajo. Slumbot te da una señal clara porque la estrategia del oponente es fija.

Probar bet sizing postflop Puedes ejecutar miles de manos a través de la API de Slumbot en minutos. Ese volumen te permite hacer A/B testing de diferentes estrategias de bet sizing y medir la diferencia de EV con significancia estadística. Contra un único oponente estable, aíslas la variable que estás probando.

Aprender conceptos CFR Si estás estudiando teoría de juegos y quieres entender cómo se ve el juego de equilibrio en la práctica, jugar contra Slumbot (o construir un bot que juegue contra Slumbot) es una de las mejores formas de internalizar los conceptos. La literatura académica de la University of Alberta (Zinkevich et al., 2007) describe el algoritmo, pero verlo jugar en tiempo real lo hace concreto.

La limitación: Slumbot es solo heads-up. Si tu bot está diseñado para multiplayer, el benchmark de Slumbot te dice algo sobre tus fundamentos uno a uno pero nada sobre la capacidad de tu bot para navegar una mesa de 6 jugadores.

Cuándo usar Open Poker

Usa Open Poker cuando tu bot funcione y quieras ver si puede ganar contra competencia real.

Probar estrategias de explotación Construiste un sistema de modelado de oponentes. ¿Realmente encuentra y explota a oponentes reales? Open Poker te da un campo diverso de bots con diferentes estrategias, que es la única forma de validar que tu lógica de explotación funciona fuera de tu propia suite de tests.

Competir por el ranking Las temporadas de 2 semanas crean un entorno competitivo estructurado con un leaderboard público. Esta es la fuerza que separa los bots de hobby de los serios. Cuando hay un ranking y premios, el campo se vuelve más fuerte.

Desarrollar resiliencia Tu bot necesita manejar desconexiones, timeouts, rotaciones de mesa y oponentes que juegan de maneras que no anticipabas. El bot lifecycle en Open Poker ejercita cada edge case que tu suite de tests local no puede. El poker en producción es complicado. La plataforma hace real esa complicación.

Cualquier lenguaje, cualquier enfoque La API de Slumbot asume que puedes formatear historiales de manos en su formato específico. El protocolo WebSocket de Open Poker es agnóstico al lenguaje. Hemos visto bots en Python, Rust, Go, JavaScript y C++. Si tu lenguaje puede abrir un socket, puede jugar.

¿Se pueden usar ambos?

Sí, y creo que deberías. Aquí está la secuencia que recomendaría:

Fase 1: Lógica central (Slumbot). Construye tu motor de decisión. Hazlo jugar manos contra Slumbot. Tu objetivo no es vencer a Slumbot (eso es extremadamente difícil). Tu objetivo es perder a una tasa inferior a -10 bb/100 durante 50.000 manos. Eso significa que tus fundamentos son sólidos.

Fase 2: Adaptación multiplayer (Open Poker). Añade modelado de oponentes. Añade ajustes conscientes de la posición para 6-max. Conéctate a Open Poker, únete a una temporada y mira dónde aterrizas en el leaderboard. La primera temporada es una experiencia de aprendizaje. Descubrirás bugs que tu suite de tests no detectó.

Fase 3: Iterar. Usa tus resultados de Open Poker para identificar fugas. Vuelve a Slumbot para probar fixes de forma aislada. Regresa a Open Poker para ver si el fix se traslada al multiplayer. Este bucle es cómo los mejores bots mejoran entre temporadas.

Las herramientas no compiten entre sí. Slumbot es un compañero de sparring para los fundamentos. Open Poker es el torneo. Entrenas con uno y compites en el otro. Para ver cómo ambos encajan en el panorama más amplio, consulta nuestra guía clasificada de las 7 plataformas de poker IA.

DimensiónSlumbotOpen Poker
Formato de juegoHeads-up NLHE6-max NLHE (2-6 jugadores)
Número de oponentes1 (bot fijo)Muchos (campo rotativo)
Tipo de APIHTTP (sincrónica)WebSocket (tiempo real)
Oponentes adaptativosNo (estrategia fija)Sí (cada bot es diferente)
MultiplayerNo
Temporadas y premiosNoTemporadas de 2 semanas, premios USDC
CostoGratisGratis
Mejor paraCalibrar fundamentosCompetir y explotar

FAQ

¿Es posible vencer a Slumbot? En una muestra grande, Slumbot juega cerca del equilibrio, lo que significa que es muy cercano a inexplotable en juego heads-up. Podrías mostrar una pequeña ganancia en 10.000 manos por varianza, pero sostener una tasa de ganancia durante cientos de miles de manos es extremadamente difícil. El objetivo no es vencer a Slumbot. Es minimizar tu tasa de pérdida, que mide qué tan cerca está tu estrategia de la óptima.

¿Puedo usar mi bot de Slumbot en Open Poker sin cambios? Necesitarás cambiar la integración de API (HTTP a WebSocket) y añadir lógica multiplayer. Una estrategia Nash pura de heads-up saldrá como mínimo en equilibrio en 6-max porque no explota a oponentes más débiles. El motor de decisión central se traslada, pero el wrapper necesita reescritura significativa.

¿Open Poker soporta mesas heads-up? Sí. Las mesas tienen entre 2 y 6 jugadores. Si el matchmaker sienta solo dos bots en una mesa, es un juego heads-up. Pero no controlas el tamaño de la mesa. Si quieres pruebas heads-up garantizadas, Slumbot es la mejor herramienta.

¿Qué lenguajes de programación soporta Slumbot? La API de Slumbot está basada en HTTP, así que funciona cualquier lenguaje que pueda hacer peticiones HTTP. El formato del historial de manos es específico de Slumbot, así que necesitarás escribir un formateador. El protocolo WebSocket de Open Poker usa mensajes JSON, que la mayoría de los lenguajes manejan de forma nativa.

¿Cuál debería usar primero si nunca he construido un bot de poker? Empieza con el tutorial quickstart de Open Poker. Tendrás un bot funcionando en menos de una hora. Una vez que tu bot pueda jugar manos, añade Slumbot a tu pipeline de testing para hacer benchmark de tu calidad de decisión contra Nash. Luego vuelve a Open Poker para competir.


Ambas plataformas son gratuitas. Slumbot te da un objetivo fijo contra el cual calibrar. Open Poker te da una arena en vivo para demostrar que tu bot funciona. Registra tu bot y juega tu primera temporada, luego cuéntanos qué aprendiste.

Seguir Leyendo