00:00:00Ralph Wiggum está arrasando por completo. Hicimos un video al respecto el año pasado y desde
00:00:04entonces es de lo único que se habla en Twitter. Matt Pocock ha hecho un montón de videos
00:00:09sobre el tema, Ryan Carson escribió un artículo muy popular y Razmike ha ido más allá con
00:00:13su script de bash "Ralphie". Pero, ¿lo está haciendo todo el mundo mal? El creador ya ha dicho
00:00:19que algunas implementaciones son incorrectas.
00:00:21¿Cuál es entonces la forma correcta de hacerlo? ¿Y por qué Ralph es actualmente la mejor forma de crear software
00:00:26con IA? Dale a suscribirte y vamos a verlo.
00:00:30El "bucle Ralph" fue creado por Jeff Huntley y se escribió sobre él allá por junio del año pasado.
00:00:35Básicamente es un bucle de bash que le da a un agente de IA exactamente el mismo prompt una y otra
00:00:40vez. Pero es una genialidad a muchos niveles porque permite al agente de IA trabajar en su modo
00:00:46más inteligente, que es aquel donde tiene el menor contexto posible. Fíjense en esto.
00:00:51Imaginemos que esta es la ventana de contexto total de un agente. Del 0 al 30% aproximadamente es
00:00:57lo que llamaremos la "zona inteligente", que es donde el agente rinde mejor. Del
00:01:0130 al 60%, todavía rinde muy bien. Y a partir del 60%, es decir, 60, 70, 80, 90, es
00:01:08cuando empieza a degradarse. Lo llamaremos la "zona tonta". Ahora bien, estos números no son
00:01:12fijos y pueden variar según el modelo. La zona inteligente para un modelo concreto podría ser
00:01:16del 40 o 50%, pero normalmente, por encima del 80% de la ventana de contexto, es cuando empieza la torpeza.
00:01:21En el caso de Claude Sonnet u Opus, los tokens habituales para una ventana de contexto son 200.000. Así que
00:01:28podemos decir que los primeros 60k son la zona inteligente. Los siguientes 60k siguen estando bien, pero no tanto como los primeros.
00:01:33Y en los últimos 80k tokens, parece que no rinde tan bien. Esta es mi experiencia
00:01:38personal con este modelo; ustedes podrían haber tenido otras experiencias. El motivo
00:01:43es que el modelo en sí es lo que llamamos autorregresivo, es decir, tiene que mirar los
00:01:47tokens anteriores para predecir el siguiente. Si tienes muchísimos tokens, tiene
00:01:52que revisar muchos para encontrar las partes importantes que son relevantes para la siguiente tarea.
00:01:56Centrémonos en ese primer 30%. Incluso antes de escribir tu primer prompt,
00:02:01hay cosas que se añaden a la ventana de contexto automáticamente. Primero está el prompt del sistema
00:02:06y luego las herramientas del sistema. En un modelo típico de Claude, esto ocupa el 8,3% y el 1,4% del contexto.
00:02:12Casi el 10% de ese 30%. Además, si tienes "skills", se añaden. Y también
00:02:16si tienes herramientas MCP personalizadas o un archivo agent.md; eso también se suma.
00:02:21Y por supuesto, cuanto más grandes sean estas cosas (por ejemplo, el archivo MD), más
00:02:25tokens ocuparán. Todo esto ocurre antes incluso de haber añadido tu propio prompt. Así que,
00:02:30en general, es mejor mantener esta sección lo más pequeña posible. Menos herramientas,
00:02:35menos habilidades y menos contenido en tu agent.md para que el modelo trabaje en su contexto
00:02:40más óptimo. Para que se hagan una idea de cuánto son 60.000 tokens, el guion completo de
00:02:44"Star Wars: Una nueva esperanza" son unos 54.000 tokens en GPT-5. Aproximadamente esa cantidad.
00:02:51Quizás se pregunten: ¿qué pasa con la compactación? ¿Puede ayudar en este proceso? Hablaremos de
00:02:56eso más adelante. Pero ahora veamos exactamente cómo Ralph puede ayudar con esto.
00:03:00La ventaja de Ralph es que te enfocas en un solo objetivo por ventana de contexto. Así,
00:03:05podemos dedicar toda la ventana de 200k a un solo objetivo o tarea. Lo hacemos
00:03:10escribiendo un prompt que primero inspeccione el archivo plan.md. Este contiene
00:03:15las tareas pendientes: por ejemplo, crear el front-end, crear el back-end, la base de datos,
00:03:19etc. Es un ejemplo muy general; lógicamente, con Ralph serías mucho más detallado
00:03:23y granular, pero nos quedaremos con este ejemplo por ahora. Este prompt
00:03:28le dirá a los agentes que elijan la tarea más importante y realicen los cambios. Tras
00:03:33hacerlos, deben ejecutar, e incluso subir y confirmar los cambios, además de hacer un test.
00:03:38Una vez hecho esto y si los tests pasan, marcan la tarea como completada en el
00:03:42archivo plan.md y repiten el proceso. El agente seguirá buscando la tarea más importante
00:03:46hasta que haya terminado todas. Bueno, en realidad retiro lo dicho, porque
00:03:52podrías dejar que el bucle Ralph siga una y otra vez, aunque haya terminado todas
00:03:57las tareas. La ventaja es que podría encontrar cosas que arreglar o funciones que
00:04:02añadir que no estaban en el plan.md. Pero si se descontrola, la ventaja
00:04:08de Ralph es que puedes detener el proceso cuando quieras, ajustar el archivo prompt.md
00:04:12y ejecutarlo todo de nuevo. Ralph lo hace sencillísimo porque todo el proceso
00:04:16se ejecuta en un único bucle while de bash. Aquí simplemente hace un "cat" del archivo
00:04:22prompt.md (se lo imprime al agente) y ejecuta a Claude en modo "YOLO". Por supuesto, el
00:04:26parámetro no es YOLO, sino "dangerously skip permissions", pero por espacio lo he abreviado.
00:04:31Lo que hace especial a Ralph es que está fuera del control del modelo. El modelo
00:04:36no puede decidir cuándo parar a Ralph; simplemente continuará. Así te aseguras de que
00:04:41cuando se ejecuta una nueva tarea o se activa un nuevo prompt, el contexto esté
00:04:46exactamente como cuando abriste el agente por primera vez. Está fresco. No tiene compactación
00:04:50ni nada añadido. Así, cada nueva tarea recibe el máximo de contexto y utiliza el
00:04:55modelo en su estado de ventana de contexto más inteligente u óptimo. Básicamente, la compactación
00:05:01es cuando el agente mira todos los tokens escritos en la ventana de contexto
00:05:05y selecciona las partes más importantes para el siguiente prompt. Elegirá lo que
00:05:11él cree que es más relevante, pero no sabe qué lo es realmente. Por eso, la compactación
00:05:16podría omitir información crítica y hacer que tu proyecto no funcione como debería.
00:05:21Visto ya el bucle Ralph canónico según su creador, entendemos mejor por qué
00:05:27otras implementaciones difieren. Veamos la de Anthropic, que utiliza un comando
00:05:33de barra diagonal para ejecutar Ralph dentro del código de Claude, con un máximo de iteraciones y una promesa de finalización.
00:05:38El problema de este plugin específico de Ralph Wiggum es que compacta la información
00:05:43al pasar a la siguiente tarea. Al terminar una tarea y volver a lanzar el prompt,
00:05:48en lugar de resetear por completo la ventana de contexto, compacta lo anterior,
00:05:54lo cual podría causar la pérdida de información vital. También está el pequeño inconveniente
00:05:59de tener un máximo de iteraciones y una promesa de finalización, porque a veces es mejor
00:06:04dejar que Ralph siga a su aire. Puede encontrar cosas muy interesantes para arreglar en las que ni
00:06:08habías pensado. Y si lo vigilas (actuando como el humano al mando), verás patrones buenos o malos
00:06:14de un modelo concreto que podrías ajustar y mejorar en tu prompt original.
00:06:19Si miramos el enfoque de Ryan Carson para el bucle Ralph, vemos que no es
00:06:24del todo canónico porque en cada bucle existe la posibilidad de ajustar o añadir
00:06:29contenido al archivo agents.md. Según el prompt del sistema o cualquier prompt de usuario que
00:06:33hayas añadido, en mi experiencia los modelos suelen ser muy prolijos por defecto. Si en cada
00:06:39iteración vas añadiendo texto al archivo agents.md, que se carga al contexto al
00:06:44inicio de cada prompt de usuario, acabas metiendo más y más tokens en la ventana de contexto,
00:06:48llevando al modelo a un punto donde podría empezar a dar resultados deficientes.
00:06:53Aun así, que la gente cree sus propios scripts a partir del básico de Ralph en bash
00:06:57demuestra lo simple y fácil de entender que es. Y aunque haya una forma canónica de usar
00:07:03Ralph, me parece bien que desarrolladores y empresas lo adapten a sus necesidades específicas.
00:07:08Por ejemplo, me encanta que en el script Ralphie de Raz Mike haya una forma
00:07:13de ejecutar Ralphs en paralelo y que puedas usar la herramienta de navegador del agente para hacer tests.
00:07:18También me gusta que en la versión de Ralph de Matt Pocock se añadan las tareas
00:07:23pendientes como "issues" de GitHub; el bucle Ralph elige la más importante, trabaja en ella
00:07:28y la marca como resuelta al terminar antes de pasar a la siguiente, lo cual me parece brillante.
00:07:32Creo que la potencia y simplicidad de Ralph harán que se quede con nosotros mucho tiempo.
00:07:37Y seguramente veremos muchas más iteraciones y mejoras. Me gusta mucho el camino que
00:07:42está tomando Jeffrey con su proyecto Loom and Weaver, donde busca crear software de forma autónoma y correcta.
00:07:47Pero con todos estos Ralphs creando software autónomamente, necesitas una forma de buscar errores
00:07:52y asegurarte de que se arreglen. Aquí es donde entra Better Stack, porque no solo puede ingerir logs
00:07:56y filtrar errores, sino que también gestiona el rastreo de errores en el front-end.
00:08:01Con este servidor MCP, puedes pedirle a un agente que busque errores específicos en el front-end
00:08:06o el back-end en lugar de leer todo el log, lo cual a su vez reduce la ventana de contexto.
00:08:16Así que echen un vistazo a Better Stack y díganme qué les parece en los comentarios.
00:08:17So go and check out Better Flux, and let me know what you think in the comments.