Los agentes de IA se han convertido en ese compañero de oficina que no se cansa: puede revisar documentos, traducir código, preparar informes o encadenar pasos para completar una tarea de principio a fin. Muchos de estos agentes se apoyan en modelos de lenguaje grandes (LLM) porque son rápidos, flexibles y se adaptan a instrucciones variadas. El problema aparece cuando el agente llega a una parte delicada del trabajo y el LLM “patina”: una salida incorrecta, un detalle inventado, un cambio que rompe una prueba.
Si el agente estaba traduciendo una base de código archivo por archivo, un error pequeño puede comportarse como una ficha de dominó: compila mal, se rompen tests, se atasca el flujo. Lo que uno querría, de forma bastante humana, es que el sistema reconociera el tropiezo, volviera a un punto anterior y lo intentara de nuevo con lo aprendido. En la práctica, programar ese “volver atrás” suele ser un castigo: obliga a añadir lógica de control, registros, condiciones, reintentos y rutas alternativas, a veces con un volumen de cambios comparable al del propio agente.
EnCompass: separar el guion de la búsqueda
Investigadores de MIT CSAIL y la empresa Asari AI proponen una solución con nombre de brújula: EnCompass. La idea central es elegante: permitir que el programador escriba el flujo de trabajo del agente como siempre (el “guion”), y que la búsqueda de soluciones —reintentos, exploración de alternativas, retrocesos— se gestione como una capa aparte.
En términos cotidianos, es como cocinar siguiendo una receta sin tener que reescribirla cada vez que algo sale mal; EnCompass sería el ayudante que, si la salsa se corta, vuelve al paso donde se incorporó el aceite, prueba otra técnica y conserva la versión que funciona. Según explica el autor principal Zhening Li, estudiante de doctorado en EECS e investigador en CSAIL, el framework permite “separar la estrategia de búsqueda del flujo subyacente” para que los programadores experimenten con distintos enfoques y encuentren el que mejor rendimiento da.
Backtracking y “clones”: probar varios caminos sin romper tu programa
Dos conceptos sostienen la mecánica de EnCompass. El primero es el backtracking: cuando el LLM comete un error, el sistema puede retroceder a un punto anterior y lanzar un nuevo intento, incorporando señales de que la ruta previa no funcionó. El segundo es la clonación del estado de ejecución: EnCompass puede crear “copias” del runtime para probar alternativas en paralelo.
La metáfora aquí es potente: imagina que envías a varias versiones de ti mismo a resolver el mismo problema con enfoques distintos. Una prueba una solución conservadora, otra arriesga con un cambio más agresivo, otra revisa documentación. Luego comparas resultados y te quedas con el mejor. Esa es la promesa práctica de EnCompass: explorar el espacio de salidas posibles de los LLM sin obligarte a convertir tu agente en un laberinto de if/else, reintentos manuales y estados difíciles de depurar.
Branchpoints: del relato lineal al “elige tu propia aventura”
Para que el sistema sepa dónde tiene sentido bifurcar y dónde conviene retroceder, EnCompass introduce anotaciones llamadas branchpoints. El programador marca operaciones cuyo resultado puede variar —típicamente llamadas al LLM— y señala qué información conviene registrar para evaluar si un paso salió bien.
Aquí encaja la comparación con un libro de “elige tu propia aventura”. Un agente tradicional sigue una trama única: paso 1, paso 2, paso 3. Con branchpoints, el mismo programa se convierte en un árbol de historias posibles: si el LLM devuelve A, el agente sigue un camino; si devuelve B, toma otro. La diferencia es que EnCompass no se limita a aceptar el primer desenlace: usa una estrategia de búsqueda para recorrer ese árbol y encontrar el final más sólido.
Estrategias de búsqueda enchufables: del beam search al Monte Carlo Tree Search
El detalle interesante es que EnCompass no impone una única forma de “buscar”. Ofrece estrategias comunes listas para usar y deja la puerta abierta a crear estrategias personalizadas. Entre las mencionadas por el equipo figuran beam search y Monte Carlo tree search (MCTS).
En cristiano: beam search funciona como si llevaras varias opciones “finalistas” a la vez; en cada paso, conservas un número limitado de las mejores rutas y descartas el resto. Es útil cuando quieres diversidad controlada sin disparar el coste. MCTS, por su parte, mezcla exploración y explotación: prueba caminos nuevos, refuerza los prometedores y va construyendo un árbol de decisiones con probabilidades, parecido a cómo un jugador evalúa jugadas en un tablero cuando no puede calcularlo todo. EnCompass hace que cambiar de enfoque sea una decisión de configuración y no una reescritura del agente.
Resultados: menos líneas de código y más margen para acertar
El equipo probó EnCompass con agentes programados en Python que invocan LLMs y reporta un ahorro notable de implementación. La cifra que más llama la atención es la reducción de esfuerzo para añadir búsqueda: hasta un 80% menos de trabajo de codificación en varios agentes, según sus mediciones.
El ejemplo más concreto se centra en un agente que traduce un repositorio de Java a Python. Implementar a mano la lógica de búsqueda implicaba un volumen de cambios considerable; con EnCompass, la instrumentación se concentra en añadir branchpoints y registrar señales de calidad. El resultado cuantificado por los investigadores: 348 líneas menos, lo que equivale a un recorte de alrededor del 82% frente a la versión manual.
Luego está la parte que a muchos equipos les importa incluso más que el ahorro de líneas: el rendimiento. Al probar distintas estrategias, identificaron como opción ganadora una variante de beam search de dos niveles, con mejoras de precisión del 15% al 40% en cinco repositorios, usando un presupuesto de búsqueda que multiplicaba por 16 las llamadas al LLM respecto a ejecutar el agente sin búsqueda. Traducido a una imagen cotidiana: si antes preguntabas una vez y aceptabas la primera respuesta, ahora preguntas varias veces, comparas y te quedas con la mejor, con un coste controlado y una mecánica más sistemática.
Dónde encaja (y dónde no): agentes guiados por programa frente a agentes “a la deriva”
EnCompass apunta a un tipo de agente muy común en entornos profesionales: aquel en el que existe un flujo programático claro, y el LLM se utiliza en puntos concretos como motor de traducción, síntesis o generación. Ahí el framework brilla porque “engancha” la búsqueda al programa: el agente tiene estructura, y la búsqueda explora alternativas dentro de esa estructura.
El propio Li matiza un límite importante: esta versión es menos aplicable a agentes controlados por completo por un LLM, donde no hay un flujo predefinido y el modelo decide qué hacer en cada paso sobre la marcha. Si el LLM es el director, el guionista y el actor improvisando en tiempo real, hay menos “puntos estables” del programa donde insertar backtracking y clonación de ejecución. En ese escenario, las técnicas de búsqueda suelen aplicarse directamente a la inferencia del modelo, no a la ejecución de un workflow.
Qué significa para el día a día de programar con IA
Detrás de EnCompass hay una lectura práctica de algo que muchos equipos ya han vivido: los LLM son útiles, pero su fiabilidad no se consigue pidiéndoles “por favor que no se equivoquen”. Se consigue diseñando sistemas que asumen el error como parte del proceso y lo gestionan con mecanismos parecidos a los que usamos los humanos: repetir, comparar, retroceder, probar otra vía.
El coautor Armando Solar-Lezama, profesor de EECS e investigador principal en CSAIL, lo enmarca como una necesidad creciente: a medida que los LLM se vuelven piezas habituales del software, se vuelve crítico construir sistemas que aprovechen sus fortalezas y rodeen sus limitaciones. Desde fuera del proyecto, Yiming Yang, profesora en Carnegie Mellon, destaca el valor de la abstracción: separar lógica del agente y estrategia de búsqueda ofrece una vía más “principiada” para mejorar tareas como generación, traducción y análisis de código.
Próximos pasos: tareas más grandes y colaboración humano-agente
El trabajo se presentó en NeurIPS en diciembre, y el equipo plantea extender EnCompass hacia marcos de búsqueda más generales y probarlo en tareas más complejas, con foco en usos reales en empresas. También quieren evaluar cómo ayuda cuando el agente colabora con personas, por ejemplo al idear diseños de hardware o al traducir bibliotecas de código mucho más extensas. En el artículo de MIT se menciona la ambición de apuntar a retos de gran escala, desde gestionar enormes bases de código hasta ayudar a planificar experimentos científicos o diseñar componentes de hardware.
Si esa línea madura, EnCompass podría terminar siendo para los agentes de IA lo que los buenos sistemas de control de versiones fueron para el desarrollo: no “evitan” los errores, pero convierten el proceso de corregirlos y elegir el mejor camino en algo repetible, medible y menos doloroso.
