500 mil millones de tokens después: agentes de IA logran descompilar un shooter en primera persona
500B Tokens Later: Letting AI Agents Decompile a First-Person Shooter

Durante tres meses, un equipo usó Claude y Codex para descompilar un shooter en C++. Tras lograr un 80% de avance, descubrieron que el código era semánticamente incorrecto. Implementaron verificación por coincidencia de bytes: ahora el 99% de las funciones están presentes y el 83% son exactas. La clave fue definir la corrección de forma automática, lo que permitió usar modelos más baratos y escalar a 14 agentes.
Los comentarios de los workers actuaron efectivamente como una inyección de prompt no intencional: el revisor aceptó sus justificaciones en lugar de verificar de forma independiente las desviaciones contra el original.
- brandonpelfrey
A menos que necesites explícitamente una descompilación que coincida byte a byte, hay formas significativamente más rápidas de producir una descompilación/C que sea funcionalmente equivalente. Necesito escribir sobre esto. Lo que me ha funcionado es que, para cada función, al Agente A se le encarga escribir código que sea semánticamente equivalente al ensamblador original, pero no necesariamente exactamente igual. El Agente A también escribe tests. El Agente A envía la implementación de la función y los tests al harness para que este los juzgue. El harness ejecuta tanto la función original como la función enviada en una máquina virtual/simulador/emulador (los tests definen las entradas de la función y el estado inicial). El harness solo acepta la implementación si 1) la secuencia de lectura/escritura en RAM es idéntica a la de la función original, y 2) debe haber cobertura completa de líneas y ramas de la función original que se está descompilando.
He comprobado que esto es robusto para descompilar juegos, a la vez que da a los agentes suficiente libertad para escribir código legible y no perder una tonelada de tiempo asegurándose de que, por ejemplo, el orden de las instrucciones, las asignaciones de registros, etc., sean exactamente iguales. Para mí, tener una descompilación que coincida byte a byte es solo una forma de producir una descompilación que sé que es fiel al original. Este proceso de "descompilación de alto nivel" que acabo de describir es algo que los agentes pueden hacer mucho más rápido.
- aetherspawn
La razón por la que esto costó tanto es porque la IA tiene el objetivo ridículo de obtener una salida de ensamblador idéntica.
Los agentes habrían tenido que lidiar también con versiones del compilador, opciones de optimización y la fase de la luna.
Si solo buscaras equivalencia funcional, probablemente costaría 10x o 100x menos tokens.
Otra falsa economía fue usar Sonnet en lugar de un modelo más inteligente como Sol 6.1 (1), que habría costado más por token, pero es unas 100x mejor en ingeniería inversa y programación y, por lo tanto, puede masticar el código fuente mucho más rápido y cometer menos errores, lo que significa menos trabajo que hay que desechar.
En mis pruebas haciendo una tarea similar, ejecuté varios Sonnet durante semanas y quemé ~$1000 en tokens para obtener un 20% de finalización y una salida bastante mala. Después de cambiar a Sol 6.1, terminó toda la tarea en alrededor de 2 días, costó alrededor de $50, y lo hizo con cero supervisión y un solo /goal.
(1): me cuesta usar Opus para ingeniería inversa, demasiadas salvaguardas. OAI prácticamente no tiene ninguna, y usa muchos menos tokens, así que es más económico.
- nvme0n1p1
> El ávido lector de mi blog quizá haya notado que había escrito previamente dos posts que desde entonces han sido eliminados. Todos los demás quizá se estén preguntando ahora de qué juego estoy hablando. A ambos solo puedo decirles que la América corporativa vino a arruinarnos la diversión.
Call of Duty: Modern Warfare 2 (2009)
https://web.archive.org/web/20260925153118/https://momo5502....
https://web.archive.org/web/20260925153131/https://momo5502....
Vengan por mí, América corporativa.
- edg5000
Intuyo que el enfoque complica las cosas en exceso. Me pregunto cuánto habría tardado esto en una sola sesión. Quizá este sea en realidad un ejemplo de manual de algo donde los subagentes tienen sentido, pero cuando empecé con los LLM a menudo complicaba demasiado el flujo de trabajo con todo tipo de orquestación. Ahora solo uso un agente, permite controlar mejor la salida incluso si el agente trabaja un poco más. De todos modos, la mayor parte del tiempo la paso yo escribiendo prompts y revisando el trabajo (al menos en mi caso).
- WheelsAtLarge
Interesante, si todo el software se puede descompilar y copiar, cuál es el futuro del software. ¿Será todo el software SaaS? ¿Una época en la que la mayoría de los PCs serán terminales? Las consolas de videojuegos ya casi están ahí. Es un salto pequeño para que todo el software vaya en esa dirección.
Edición:
Aquí va una posibilidad.
El futuro del software es software solo para agentes. Pedimos un resultado, el agente nos hace preguntas, el agente usa el software especializado, el usuario obtiene el resultado. Nos suscribimos a un asistente de IA y a agentes especializados. Ya casi estamos ahí, al menos el comienzo. El futuro de los PCs tal como los conocemos está contado. Los SOs, la CLI, los compiladores y lo que sea se fundirán en asistentes de IA. Despídete de escribir software para personas.