论文
LACUNA:作为递归程序洞的安全智能体
LACUNA: Safe Agents as Recursive Program Holes
摘要
LLM智能体越来越多地通过编写代码来行动,但驱动智能体的运行时与模型编写的代码之间始终存在割裂。运行时掌控循环、上下文与控制流,而模型对其中任何一项几乎没有发言权。让模型编写的代码塑造运行时本身会提升智能体的表达力,但也会加剧安全问题。模型可能被提示注入带偏、调用错误的工具,或在中途失败并留下不一致的状态;当代码塑造运行时时,这类失败波及的范围比代码仅表达单个动作时更广。我们提出LACUNA,一种在弥合这一割裂的同时保持安全性的智能体编程模型。每个智能体动作都是一个带类型的调用 $\texttt{agent[T](task)}$,当执行到达时由LLM填入代码,且代码在运行前会针对外围程序进行类型检查。由于每个动作被整体接受或拒绝,被拒绝的动作不会触碰环境,其编译器诊断信息会驱动重试。同一检查还限定了动作可以使用哪些工具与数据,以及它们如何流动。我们的原语将ReAct循环、子智能体、技能、并行分解与多模型规划表达为普通的控制流。我们在一组测试用例、BrowseComp-Plus和 $τ^2$-bench 上评估LACUNA。在BrowseComp-Plus上,$8.6\%$ 的生成代码在执行前被拒绝,平均每次查询重试0.7次,智能体达到 $27.1\%$ 的准确率。在 $τ^2$-bench 上,使用一个能力强大的模型时,LACUNA解决了四个领域共 $392$ 个任务中的 $76.0\%$,与基线智能体持平。