---
title: "Una IA juega a Pokémon Oro: Bobcat, de una partida nueva a las 16 medallas"
description: "Una IA que solo elige entre listas jugó a Pokémon Oro desde una partida nueva, veinte a la vez sin cambiar nada: 17 de 20 ganaron las 16 medallas, dos veces."
author: "Foxl AI"
date_published: "2026-10-06"
date_modified: "2026-10-14"
canonical_url: "https://foxl.ai/es/blog/bobcat-plays-pokemon-gold"
markdown_url: "https://foxl.ai/es/blog/bobcat-plays-pokemon-gold/index.md"
image: "https://foxl.ai/blog/bobcat-plays-pokemon-gold-cover.png"
social_image: "https://foxl.ai/blog/social/bobcat-plays-pokemon-gold.png"
content_type: "Deep dive"
topics: ["Typed decisions","Game playing","Agents","Measurement"]
products: ["Bobcat"]
---

<!-- Generated by scripts/blog-publishing.mjs; do not edit. -->

# Una IA juega a Pokémon Oro: Bobcat, de una partida nueva a las 16 medallas

> Bobcat nunca escribe una palabra: lee un estado y devuelve una probabilidad por opción. Pusimos la edición coreana de Pokémon Oro detrás de un arnés que solo enuncia hechos y enumera las acciones que permite el juego, le dimos a Bobcat una guía de estrategia y dejamos que tomara todas las decisiones desde una partida nueva. Veinte partidas nuevas en un mismo commit, sin cambiar nada mientras se jugaban: 17 ganaron las 16 medallas, con una mediana de 19,3 horas de juego cada una. Un segundo lote en otro commit terminó igual, 17 de 20. Las respuestas al azar con el mismo arnés no ganaron ninguna medalla. Una partida más se grabó entera; las seis que se atascaron aparecen con el motivo.

- Author: Foxl AI
- Published: 2026-10-06
- Last reviewed: 2026-10-14
- Reading time: 13 minutes
- Canonical HTML: [https://foxl.ai/es/blog/bobcat-plays-pokemon-gold](<https://foxl.ai/es/blog/bobcat-plays-pokemon-gold>)

![Una ilustración plana en tonos arcilla: una consola portátil dibujada a mano cuya pantalla muestra tres opciones, con la del medio elegida.](<https://foxl.ai/blog/bobcat-plays-pokemon-gold-cover.png>)

Actualización (14 de octubre de 2026): nuestro modelo más reciente, Bobcat 1.3, empata en el tercer puesto del Jev Decision Index, con 62,8 frente al 60,1 de Jev ([más abajo](<#bobcat-since>)). Las partidas de este artículo las jugó una versión anterior, Bobcat 1.1, con Bobcat Flash 1.1 en los combates.

Bobcat es un modelo que nunca escribe una palabra. Dado un estado y una lista de opciones, devuelve una probabilidad por opción, y eso es todo lo que sabe hacer. Pusimos la edición coreana de Pokémon Oro detrás de un arnés que solo enuncia hechos y enumera las acciones que el juego permite en cada momento, le dimos a Bobcat una guía de estrategia para leer y dejamos que tomara todas las decisiones desde una partida nueva: adónde ir, qué hacer allí, cada movimiento de cada combate, qué comprar, a quién capturar y cuándo está completado un paso de la guía.

Después empezamos 20 partidas nuevas a la vez, todas en un mismo commit, y no cambiamos nada mientras se jugaban. 17 de las 20 ganaron las 16 medallas, las ocho de Johto y las ocho de Kanto, y por el camino derrotaron al Alto Mando y al Campeón. Una partida terminada tardó una mediana de 19,3 horas según el reloj del propio juego y unas 5100 decisiones. Lo hicimos dos veces, en dos commits separados por unas horas, y los dos lotes terminaron con 17 de 20. El mismo arnés, respondiendo al azar, no ganó ninguna medalla.

Nuestro propio listón eran nueve partidas de cada diez, y no llegamos: las seis partidas que se atascaron aparecen más abajo con el motivo de cada una. Después de los lotes empezamos otras tres partidas en el commit del segundo lote y las grabamos fotograma a fotograma; las tres ganaron las dieciséis medallas, derrotaron a Rojo en el Monte Plateado y capturaron a Ho-Oh. Los videos de este artículo son de la que terminó primero: 4887 decisiones y 19,9 horas de juego.

![Dos paneles, uno por cada lote de veinte partidas nuevas, con cada partida como una línea escalonada de medallas frente a horas de juego. En cada panel, la mayoría de las líneas llegan a dieciséis medallas; las partidas que se atascaron se detienen antes, cada una marcada con una cruz. Las partidas grabadas después en el commit del segundo lote están dibujadas en color arcilla sobre el segundo panel, y la de los videos, en trazo grueso.](<https://foxl.ai/blog/bobcat-pokemon-batches.png>)

_La partida grabada en 60 segundos, desde el dormitorio hasta la última medalla ([en YouTube](<https://youtu.be/qdCfw5FBuaA>)). En cada fotograma, a la izquierda está el juego; los paneles muestran lo que se le envió a Bobcat para esa decisión, y a la derecha están las opciones que puntuó más alto, con los botones que ejecutan cada una y su probabilidad, y después el registro de sus elecciones. Para compartirlo como archivo: [el video](<https://foxl.ai/blog/bobcat-pokemon-run-60s-en.mp4>) y [su póster](<https://foxl.ai/blog/bobcat-pokemon-run-60s-en-poster.webp>)._

## Los mejores momentos de la partida grabada

8 momentos de la partida grabada, cada uno con el panel tal como lo veía Bobcat, a cámara rápida (un fotograma grabado equivale a un segundo de juego): a la izquierda el juego, a su lado el estado que se le envió a Bobcat, después las opciones que puntuó más alto con sus botones y probabilidades, y el registro de sus elecciones. Primero los 25, con todos los líderes de gimnasio, en cuatro minutos; después, 8 de ellos uno a uno.

_Los mejores momentos: todos los líderes de gimnasio, el Alto Mando, el despertar de Snorlax, Rojo y Ho-Oh ([en YouTube](<https://youtu.be/loSNPx0WEzU>))._

[Medalla 1: Pegaso, el primer gimnasio](<https://foxl.ai/blog/bobcat-pokemon-hl-en-falkner.mp4>)

_Medalla 1: Pegaso, el primer gimnasio. A las 0 h 37 min de tiempo de juego, a 19 veces la velocidad del juego._

[Medalla 3: Blanca y su Miltank](<https://foxl.ai/blog/bobcat-pokemon-hl-en-whitney.mp4>)

_Medalla 3: Blanca y su Miltank. A las 2 h 07 min de tiempo de juego, a 120 veces la velocidad del juego._

[Medalla 8: Débora, la última de Johto](<https://foxl.ai/blog/bobcat-pokemon-hl-en-clair.mp4>)

_Medalla 8: Débora, la última de Johto. A las 8 h 36 min de tiempo de juego, a 60 veces la velocidad del juego._

[El Campeón, Lance](<https://foxl.ai/blog/bobcat-pokemon-hl-en-lance.mp4>)

_El Campeón, Lance. A las 13 h 07 min de tiempo de juego, a 22 veces la velocidad del juego._

[La radio del Pokégear despierta a Snorlax](<https://foxl.ai/blog/bobcat-pokemon-hl-en-snorlax.mp4>)

_La radio del Pokégear despierta a Snorlax. A las 15 h 16 min de tiempo de juego, a 8 veces la velocidad del juego._

[Medalla 16: Azul en Ciudad Verde](<https://foxl.ai/blog/bobcat-pokemon-hl-en-blue.mp4>)

_Medalla 16: Azul en Ciudad Verde. A las 16 h 02 min de tiempo de juego, a 30 veces la velocidad del juego._

[Rojo en el Monte Plateado](<https://foxl.ai/blog/bobcat-pokemon-hl-en-red.mp4>)

_Rojo en el Monte Plateado. A las 17 h 39 min de tiempo de juego, a 30 veces la velocidad del juego._

[Ho-Oh y la Master Ball](<https://foxl.ai/blog/bobcat-pokemon-hl-en-ho-oh.mp4>)

_Ho-Oh y la Master Ball. A las 19 h 55 min de tiempo de juego, a 6 veces la velocidad del juego._

_La partida completa, cada fotograma que se grabó, con un capítulo por medalla ([en YouTube](<https://youtu.be/afIqtf_zU0k>))._

## ¿Con qué frecuencia termina?

Un lote son veinte partidas que empiezan juntas desde la misma partida nueva, en el dormitorio después de la introducción, en un mismo commit del arnés y de la guía. No se edita nada mientras se juegan, y ninguna partida continúa desde un guardado: una partida que se atasca es una partida que no terminó. Cada una se detiene cuando gana su decimosexta medalla. Una partida que pasaba miles de decisiones en un mismo paso de la guía sin avanzar se detenía y se contaba como atascada.

| Lote | Commit | Las 16 medallas | Horas de juego hasta terminar (la más rápida; la mediana; la más lenta) |
| --- | --- | --- | --- |
| A | `13803fe` | 17 de 20 | 17,1; 20,3; 26,0 |
| B | `6c233f1` | 17 de 20 | 17,0; 19,3; 24,2 |

En total son 34 de 40, un 85 %. Cuarenta partidas no bastan para fijar una tasa con precisión: el intervalo del 95 % va del 71 % al 93 %. Las partidas que no terminaron:

- **Lote A, partida 7**, con 15 medallas: perdió una y otra vez contra Azul, el último líder de gimnasio, y entre combate y combate se iba por ahí en lugar de entrenar. Se detuvo tras 4977 decisiones en ese paso, con 56,6 horas de juego.
- **Lote A, partida 11**, con 7 medallas: siguió perdiendo contra Débora con un solo Pokémon fuerte y el resto del equipo muy por detrás, y acabó alejándose de su gimnasio. Se detuvo tras 3514 decisiones en ese paso, con 22,1 horas de juego.
- **Lote A, partida 15**, con 7 medallas: tenía apartadas las rocas de la Ruta Helada como si fueran carteles ya leídos, aunque hay que volver a usar Fuerza en cada visita (corregido antes del lote B). Se detuvo tras 3215 decisiones en ese paso, con 19,9 horas de juego.
- **Lote B, partida 2**, con 8 medallas: no pudo enseñar Cascada a su Gyarados, que ya conocía cuatro movimientos: dos de las preguntas del juego se quedaron sin leer y la enseñanza nunca llegó a hacerse. Se detuvo tras 5677 decisiones en ese paso, con 27,6 horas de juego.
- **Lote B, partida 14**, con 7 medallas: perdió contra Débora igual que una de las partidas del lote A, con un equipo muy por detrás de su inicial. Se detuvo tras 6450 decisiones en ese paso, con 25,6 horas de juego.
- **Lote B, partida 20**, con 11 medallas: tomó la Ruta Bici hacia Ciudad Fucsia sin bicicleta, y el guardia de la entrada le hizo dar la vuelta cada vez. Se detuvo tras 4681 decisiones en ese paso, con 24,6 horas de juego.

Tres de las seis perdieron un combate que Bobcat tenía que ganar: un líder de gimnasio fuerte contra un equipo construido en torno a un solo Pokémon. Las otras tres fueron huecos del arnés: rocas que apartaba, corregido entre los dos lotes; preguntas que no leía; una ruta que no sabía que estaba cerrada. Las dos últimas son las próximas correcciones; los combates le toca ganarlos a Bobcat.

## ¿Qué hace el arnés y qué no hace?

Un speedrunner llamaría al arnés un comprobador de estado. Lee el juego y dice lo que es cierto: el diálogo en pantalla, leído de los píxeles contra la propia fuente del cartucho; los menús y dónde está el cursor; el lugar y la casilla, el dinero y las medallas; el equipo, con el nivel, los PS y los movimientos con los PP que les quedan a cada Pokémon; la mochila y las tarjetas del Pokégear; en combate, los dos Pokémon y nuestros propios tipos; y lo que se intentó y no funcionó (un movimiento sin efecto, una salida que no llevaba a ninguna parte, un combate perdido, con los niveles del equipo). Enumera lo que el juego permite ahora: las salidas a las que el jugador puede llegar andando, las personas y los objetos a su alcance, carteles, agua y árboles para un movimiento de campo que conozca el equipo, hierba alta, la radio del Pokégear donde un Snorlax dormido bloquea el camino y, en combate, los movimientos con PP, los cambios, los objetos curativos, las Poké Balls y la huida. Cada opción muestra los botones que la ejecutan («→5 ↑3 A»), tal como los pulsaría un jugador.

No elige, y se calla lo que el juego no muestra. Nunca da los tipos del rival, ni si un movimiento es eficaz; Bobcat tiene que saberlo, o deducirlo de lo que dice el juego después de un movimiento. Cuando Bobcat elige una acción, el arnés la ejecuta de forma mecánica: «ir a la 2.ª planta de la Torre Radio» es el camino más corto hasta las escaleras y las pulsaciones para subirlas.

## ¿Qué decide Bobcat?

En la partida grabada:

- **Adónde ir y qué hacer**, en una sola petición con dos Choices, cada vez que cambia la situación (2245 decisiones en el mapa). El lugar elegido se mantiene durante sus siguientes decisiones, y cada salida indica si lleva hasta allí.
- **Cada turno de combate**: qué movimiento, si cambiar, curar, lanzar una Poké Ball o huir (2234 decisiones).
- **Cada pregunta y cada menú**: sí o no, qué comprar, qué movimiento olvidar, quién aprende una MO (323 decisiones).
- **Si capturar** a un Pokémon salvaje cuando la guía dice que hay que capturar uno, y con qué Poké Ball (13 decisiones).
- **Quién va en cabeza**, preguntado en un Centro Pokémon cuando un miembro va muy por delante o muy por detrás del resto (30 veces).
- **Si un paso de la guía está completado**, cuando ningún dato que registre el juego lo resuelve (41 consultas).

## ¿Por qué una guía de estrategia y qué contiene?

Una persona que juega por primera vez a un juego largo lee una guía, así que Bobcat recibe una: un texto en coreano con un capítulo por cada número de medallas, publicado exactamente como lo usaron las partidas. Da el orden de la historia, los nombres de los lugares, el equipo que hay que capturar (Mareep en la Ruta 32, un Pokémon de tipo Agua que pueda aprender Surf, el Gyarados rojo), qué tipos funcionan bien contra cada líder y, para los pocos puzles del juego con una única solución (las rocas de la Ruta Helada, los interruptores del subterráneo, las baldosas de teletransporte de Ciudad Azafrán), esa solución, comprobada casilla a casilla contra el desensamblado del juego. Bobcat decide qué hacer con ella. El arnés solo pasa de página con hechos: un objeto que nombra el paso está en la mochila, se entró en el lugar donde termina, se derrotó a un entrenador que nombra, o se activó un evento que registra el juego (la pieza de la Central Eléctrica devuelta, el combate con Snorlax, la conversación con Azul en Isla Canela).

## ¿Qué decisiones no fueron de Bobcat?

El arnés tiene reglas fijas, cada una en el código publicado con su umbral y cada una contabilizada en el registro de la partida. En el mapa, apartan la acción favorita de Bobcat cuando se repite: una acción elegida cuatro veces de cada cincuenta en un mapa, una salida que falló dos veces, alguien que ha dicho lo mismo tres veces; la acción que se ejecuta es entonces la más probable de las que le quedan a Bobcat o, cuando todo está apartado, la que menos se ha hecho últimamente. En la partida grabada, el 79 % de las 2245 acciones en el mapa fueron la primera opción del propio Bobcat. Los combates, las preguntas y las capturas son respuestas de Bobcat. Unas pocas cosas se hacen sin preguntar: la introducción, rechazar los motes, confirmar una compra o una enseñanza que eligió Bobcat, y salir de un bucle de menús que el arnés no entiende.

![Quién eligió cada acción en el mapa de la partida grabada: una parte fueron la primera opción del propio Bobcat, y el resto la fijó una de las reglas antibucle publicadas.](<https://foxl.ai/blog/bobcat-pokemon-tally.png>)

## ¿Cómo sabemos que no es el arnés quien juega?

Con cada Choice sorteada al azar en el mismo arnés, en el mismo commit y desde la misma partida nueva, la partida no ganó ninguna medalla en 9517 decisiones. El arnés no es neutral: camina hasta lo que se elige y marca las salidas que llevan hacia los lugares de la guía, y por eso las respuestas al azar llegan a alguna parte. La diferencia entre eso y dieciséis medallas es de Bobcat. El arnés también registra, para cada decisión, el estado que se le envió a Bobcat, cada opción con su probabilidad y qué regla, si alguna, apartó su elección, así que la afirmación se puede comprobar línea a línea.

## ¿Cómo se llegó hasta aquí?

El arnés se escribió para este juego con Bobcat dentro del bucle, y la mayor parte del trabajo fue encontrar lo que leía mal muy avanzada una partida: un menú del PC que se quedaba abierto, la pantalla del equipo después de un debilitamiento, un bolsillo de la mochila leído a medio dibujar, un bolsillo de objetos vacío tomado por el de las Poké Balls, una lista de la tienda que ignoraba las pulsaciones cortas, un barco que llegaba mientras la guía seguía diciendo que había que buscar al capitán. Cada uno apareció solo después de cientos o miles de decisiones. Cuando una partida se atascaba en uno, corregíamos el arnés y continuábamos esa partida desde su último guardado, y así fue como las primeras partidas llegaron a las dieciséis medallas, a Rojo y a Ho-Oh. Después llegaron los lotes, veinte partidas nuevas cada vez: los atascos de cada lote eran las correcciones del siguiente commit, y los cambios en las pistas de la guía se probaban activados y desactivados desde los mismos guardados antes de quedarse. Los dos lotes de arriba son los dos últimos. Entre uno y otro corregimos una cosa que había mostrado el lote A, las rocas de la Ruta Helada, y cambiamos el nombre de las escaleras entre Ciudad Trigal y su subterráneo, que algunas partidas habían confundido con la sala de los interruptores.

## ¿Dónde flojea Bobcat?

- En los combates contra un líder fuerte con un equipo desequilibrado, como se ve arriba. En la partida grabada perdió 30 combates y ganó 229 contra entrenadores.
- Se apoya en su inicial (la partida grabada terminó con Typhlosion al nivel 93, Togetic al nivel 30, Mareep al nivel 8, Slowpoke al nivel 10, Gyarados al nivel 34 y Ho-Oh al nivel 40); cuando se le pregunta quién debe ir en cabeza, casi siempre mantiene el orden.
- Las reglas antibucle hacen falta: una de ellas fijó el 21,0 % de las acciones en el mapa de la partida grabada.

## ¿Cuánto costó?

La partida grabada usó 9.015.052 tokens de entrada a lo largo de 4887 decisiones. Se ejecutó durante 0,9 horas en una RTX PRO 6000 (96 GB) alquilada que compartía con las demás partidas grabadas; a 2,76 $ la hora, ese tiempo cuesta 2,37 $. Una partida terminada de los lotes usó una mediana de 9,4 millones de tokens de entrada; veinte comparten una GPU. Todo lo que hay detrás de los dos lotes, incluidos los lotes anteriores y la prueba de cada corrección, llevó 39,8 horas de una GPU a 4,12 $ la hora, 164,13 $. Como referencia, los tokens de la partida grabada al precio de lista publicado de Jev, 0,042 $ por millón de tokens de entrada, costarían 0,38 $; es un punto de referencia, no una medición de ninguno de los dos servicios con esta carga de trabajo.

## Bobcat desde estas partidas

Las partidas de arriba las jugó Bobcat 1.1, con Bobcat Flash 1.1 para los combates. Nuestra versión más reciente, [Bobcat 1.3](<https://huggingface.co/sanghwa-na/bobcat-1.3>) (11 de octubre de 2026), no las ha jugado. En su lugar se midió en el [Jev Decision Index](<https://huggingface.co/spaces/multimodalart/jev-decision-index>), una clasificación pública de modelos de decisión cuya puntuación Full cuenta en un 80 % las pruebas privadas de sus responsables, y fueron ellos mismos quienes ejecutaron esas pruebas. Bobcat 1.3 obtuvo 62,8 y empata en el tercer puesto con Perplexity Decider v1.1 (62,8) y Darwin-27B-ZTC (62,5): quinto por puntuación de 166 entradas, y por encima del 60,1 de Jev en los mismos casos. Cómo llegó hasta ahí se cuenta en [la historia de Bobcat](<https://foxl.ai/es/blog/bobcat-learned-to-choose>).

![La clasificación del Jev Decision Index 0.3.2, puntuación Full, filtrada a los modelos iguales o superiores a Jev. Doce barras de 66,3 hasta Jev con 60,1, agrupadas por puesto: \#1 empatados, vLLM-SR d3 (27B) 66,3 y linne-oak 1.0 (31B) 65,6; \#2 empatados, Decider 31B (NVFP4) 64,6 y Sieve 31B 63,8; \#3 empatados, Bobcat 1.3 (31B) 62,8, Perplexity Decider v1.1 (27B) 62,8 y Darwin-27B-ZTC 62,5; \#4 empatados, MORJ 1.0.1 61,0, AnyJev L0 60,2, Fastino GLiDE no-thinking 60,2, Sieve 27B 60,2 y Jev 60,1.](<https://foxl.ai/blog/bobcat-1.3-decision-index.webp>)

_La clasificación del Decision Index el 14 de octubre de 2026, puntuación Full, con su propio filtro «Jev and above» activado. Bobcat 1.3 es la quinta barra, en el grupo \#3; Jev es la barra negra de la derecha. Todas las pruebas están en [su página de Bobcat 1.3](<https://huggingface.co/spaces/multimodalart/jev-decision-index?model=bobcat-1.3>)._

## Limitaciones

- Terminó el 85 % de 40 partidas nuevas, por debajo de nuestro propio listón de nueve de cada diez, y cuarenta partidas son una muestra pequeña.
- Las veinte partidas de un lote empiezan desde la misma partida nueva y solo se diferencian por las pequeñas diferencias numéricas de un servidor de modelos ocupado. No son veinte jugadores independientes: las partidas solían jugar los primeros capítulos de forma parecida, y los atascos llegaban por tipos más que de uno en uno.
- Los dos commits se ajustaron con este juego: cada corrección y cada pista salió de partidas anteriores del mismo juego. No hay ningún juego reservado para la evaluación, y otro juego necesitaría su propio arnés.
- La guía la escribimos nosotros, y contiene las soluciones de los puzles fijos del juego y el equipo que hay que capturar.
- Las partidas grabadas se jugaron después de los lotes, en el commit del lote B, porque los lotes no se grabaron; los videos muestran la primera de ellas en terminar.

El código, la guía y los registros de decisiones están en [github.com/foxl-ai/bobcat](<https://github.com/foxl-ai/bobcat>), en `demos/pokemon`. Necesitas tu propio volcado del cartucho; no se publica ninguna ROM ni ningún recurso del juego. Pokémon es una marca registrada de Nintendo, Creatures y GAME FREAK. Esta es una demostración de investigación independiente, sin afiliación ni respaldo de ellos ni de TypeSafe AI. El modelo se describe en [Bobcat: Typed Decisions from One Forward Pass](<https://foxl.ai/blog/bobcat-typed-decisions>) (en inglés).

Este artículo también está [en coreano](<https://foxl.ai/ko/blog/bobcat-plays-pokemon-gold>).

## Referencias y lecturas recomendadas

1. [Código, guía y registros de decisiones (GitHub)](<https://github.com/foxl-ai/bobcat/tree/main/demos/pokemon>) - Reference
2. [Pesos de Bobcat 1.1, el modelo que jugó estas partidas](<https://huggingface.co/sanghwa-na/bobcat-1.1>) - Reference
3. [Pesos de Bobcat Flash 1.1, la mayoría de los movimientos de combate](<https://huggingface.co/sanghwa-na/bobcat-flash-1.1>) - Reference
4. [Pesos de Bobcat 1.3, la versión más reciente](<https://huggingface.co/sanghwa-na/bobcat-1.3>) - Reference
5. [Clasificación del Jev Decision Index](<https://huggingface.co/spaces/multimodalart/jev-decision-index>) - Reference
6. [Continual Harness (arXiv)](<https://arxiv.org/abs/2605.09998>) - Reference
7. [Emulador PyBoy](<https://github.com/Baekalfen/PyBoy>) - Reference
8. [Desensamblado pret/pokegold](<https://github.com/pret/pokegold>) - Reference