El techo de la recursión es un mito — y este código lo rompe
Crees que los modelos de lenguaje grandes están limitados por sus ventanas de contexto de una sola llamada. Estás equivocado. El equipo de NovaSky acaba de lanzar un entorno donde los modelos generan agentes hijos recursivos que razonan dentro de sandboxes de Python con estado, llaman a submodelos durante el despliegue y terminan solo cuando se produce una respuesta estructurada FINAL. Esto no es un truco de ingeniería de prompts — es infraestructura para meta-razonamiento impulsado por la ejecución. La implementación de Recursive Language Models (RLM) de SkyRL convierte un entorno RL plano en un árbol de razonamiento multi-turno y multi-agente. Con 1.9k estrellas en GitHub, NovaSky-AI/SkyRL está redefiniendo silenciosamente lo que realmente significa "entrenar a un modelo para pensar".
Dentro del sandbox de Python con estado que enseña a los modelos a pensar en pasos
El núcleo es PersistentREPL — un intérprete de Python que sobrevive a través de los turnos, bloquea builtins peligrosos como eval e inyecta identificadores de andamiaje (FINAL_VAR, SHOW_VARS, context) directamente en el espacio de nombres. Los modelos no solo conversan; ejecutan código, inspeccionan variables y consultan ayudantes de LM (llm_query, rlm_query) que a su vez pueden generar agentes RLM hijos con REPLs independientes. Los timeouts usan SIGALRM con un fallback basado en hilos para workers de Ray. Después de cada execute(), los identificadores reservados se restauran para que los intentos de ocultamiento fallen silenciosamente. El entorno obliga al modelo a estructurar su razonamiento como una secuencia de ciclos de pensamiento-acción-observación — cada turno se analiza desde el bloque final ````repl`.

Árboles de despliegue de entrenamiento: donde cada hoja es un agente hijo con su propio REPL
RLMGymGenerator gestiona no un despliegue sino un árbol. Un despliegue padre puede invocar subcall_fn, que lanza un agent_loop completo para un hijo, devolviendo su final_answer después del procesamiento con ast.literal_eval. Los despliegues hijos llevan un centinela _rlm_parent_rid para vinculación, y una bandera opcional train_child_trajectories integra sus salidas de paso de vuelta en la trayectoria del padre una vez que ocurre la finalización de la raíz. Si se configura un modelo OpenRouter congelado, las llamadas de los hijos se enrutan a través de OpenRouterInferenceEngine; de lo contrario, usan el motor de política por defecto. Cada token de asistente en las secuencias de padre e hijo recibe una loss_mask — el generador requiere step_wise_trajectories=True. Las métricas fluyen a Weights & Biases, ya registradas para RLM-2b-4b-E2E-Runs.
FSDP1 ya estaba muerto — este PR simplemente lo enterró
Durante meses, el backend FSDP1 de SkyRL existió como peso muerto. Los pipelines SFT lo rechazaban. FSDP2 era el predeterminado operativo, sin embargo, el mantenimiento de doble backend inflaba el código con despachadores redundantes, funciones auxiliares paralelas, prefijos LoRA específicos de FSDP1 y matrices de pruebas CI duplicadas. La pull request #1659 terminó con la farsa. Eliminó cada rastro — get_fsdp_state_ctx, offload_fsdp_model_to_cpu, get_sharding_strategy — y estandarizó el identificador de estrategia a "fsdp". El antiguo alias "fsdp2" ahora solo emite un DeprecationWarning y se normaliza. Mantener dos caminos nunca fue por flexibilidad; era deuda técnica disfrazada de compatibilidad.
Lo que queda después de la purga: un stack de entrenamiento distribuido ligero y de una sola vía
La limpieza afectó a fsdp_utils.py, fsdp_strategy.py, fsdp_worker.py y las configuraciones predeterminadas. Los workarounds _handle.reshard(True) desaparecieron. FSDPBackendOverrides.strategy se predeterminó a "fsdp". Las suites de pruebas eliminaron 14 filas parametrizadas de FSDP1, y una nueva prueba de alias verifica la advertencia. Una matriz de CI de GPU se colapsó a una sola ruta FSDP. Veinte ejecuciones de pytest pasaron. Un barrido con grep confirmó cero referencias restantes a identificadores heredados en skyrl/, tests/, examples/ y docs/. Las configuraciones que aún usan strategy="fsdp2" se ejecutarán — pero ahora están ejecutando FSDP2 bajo un nombre limpio y honesto.
La verdadera ventaja no es el tamaño del modelo — es la profundidad del entorno
Mientras la industria se obsesiona con el número de parámetros, NovaSky-AI está convirtiendo el propio entorno de entrenamiento en un arma. El sistema RLM no solo evalúa un modelo — lo obliga a convertirse en programador, orquestador y razonador recursivo. Cada REPL hijo es un laboratorio donde los subproblemas se descomponen y resuelven de forma independiente. La consolidación de FSDP demuestra el mismo ethos de ingeniería: eliminar lo superfluo, imponer un único camino coherente y optimizar para lo que realmente funciona. Si todavía apuestas por benchmarks estáticos para medir la inteligencia, te estás perdiendo el cambio. El futuro pertenece a los frameworks que permiten a los modelos ejecutar código, generar submentes y razonar mediante la ejecución — y SkyRL acaba de encender la mecha.



