ChatPaper.aiChatPaper

LACUNA: Agentes Seguros como Agujeros de Programa Recursivos

LACUNA: Safe Agents as Recursive Program Holes

May 27, 2026
Autores: Yaoyu Zhao, Yichen Xu, Oliver Bračevac, Cao Nguyen Pham, Frank Zhengqing Wu, Martin Odersky
cs.AI

Resumen

Los agentes de LLM cada vez actúan más mediante la escritura de código, pero persiste una brecha entre el entorno de ejecución que impulsa al agente y el código que el modelo escribe. El entorno de ejecución controla el bucle, el contexto y el flujo de control, y el modelo tiene poca influencia sobre ellos. Permitir que el código escrito por el modelo moldee el propio entorno de ejecución haría que los agentes fueran más expresivos, pero también agudizaría los problemas de seguridad. Un modelo puede ser desviado por una inyección de instrucciones, llamar a la herramienta equivocada o fallar a medio camino dejando un estado inconsistente, y cada uno de estos fallos alcanza un mayor alcance cuando el código da forma al entorno de ejecución que cuando expresa una única acción. Presentamos LACUNA, un modelo de programación para agentes que cierra esta brecha manteniendo la seguridad. Cada acción del agente es una llamada tipada agent[T](tarea) que el LLM completa con código cuando la ejecución la alcanza, y el código es verificado por tipos con respecto al programa circundante antes de ejecutarse. Dado que cada acción se acepta o rechaza en su totalidad, una acción rechazada deja el entorno intacto, y sus diagnósticos de compilación impulsan un reintento. La misma verificación también acota qué herramientas y datos puede usar una acción y cómo fluyen. Nuestra primitiva expresa bucles ReAct, subagentes, habilidades, descomposición en paralelo y planificación multimodelo como flujo de control ordinario. Evaluamos LACUNA en un conjunto de casos de prueba, BrowseComp-Plus y τ²-bench. En BrowseComp-Plus, el 8.6% de las generaciones se rechazan antes de la ejecución, con un promedio de 0.7 reintentos por consulta, y el agente alcanza un 27.1% de precisión. En τ²-bench, LACUNA resuelve el 76.0% de 392 tareas en cuatro dominios con un modelo capaz, a la par con el agente de referencia.
English
LLM agents increasingly act by writing code, yet a split persists between the runtime that drives the agent and the code the model writes. The runtime owns the loop, context, and control flow, and the model has little say over any of them. Letting model-written code shape the runtime itself would make agents more expressive, but it would also sharpen safety problems. A model can be diverted by a prompt injection, call the wrong tool, or fail partway and leave an inconsistent state, and each such failure reaches further when the code shapes the runtime than when it expresses a single action. We present LACUNA, a programming model for agents that closes this split while preserving safety. Each agent action is a typed call agent[T](task) that the LLM fills with code when execution reaches it, and the code is type-checked against the surrounding program before it runs. Because each action is accepted or rejected as a whole, a rejected one leaves the environment untouched, and its compiler diagnostics drive a retry. The same check also bounds which tools and data an action may use and how they flow. Our primitive expresses ReAct loops, sub-agents, skills, parallel decomposition, and multi-model planning as ordinary control flow. We evaluate LACUNA on a collection of test cases, BrowseComp-Plus, and τ^2-bench. On BrowseComp-Plus, 8.6% of generations are rejected before execution, with 0.7 retries per query on average, and the agent reaches 27.1% accuracy. On τ^2-bench, LACUNA solves 76.0% of 392 tasks across four domains with a capable model, on par with the baseline agent.