Agent 调工具返回值可能「绑错」,CAGE 给了一种可证明安全的认证方案
搭 Agent 系统绕不开授权问题:Agent 调用外部工具拿到返回值,系统根据这个值决定下一步能不能执行。arXiv 上周挂出来的一篇论文指出了这类方案的一个盲区——返回值在绑定上下文的过程中可能出现小错误,分类搞混或数值偏移,而当前的权限门对这些错误几乎没有防御。
这篇论文来自 Blaise Delattre、Cong Wang 和 Yang Cao,标题是 CAGE: Certified Authorization under Typed-Return Uncertainty for Tool-Using Agents,7 月 31 日提交,代码已开源。它解决的具体问题是,当 LLM Agent 调工具拿到结构化返回值(比如一个分类标签加一个数值),而这个返回值可能存在「绑定不确定性」时,如何让授权决策仍然是可证明安全的。
现在的 Agent 系统里,工具返回的数据通常是带类型结构的记录——既有分类字段(比如操作类型是 read 还是 write),也有数值字段(比如转账金额、查询频次)。Agent 在执行下一步操作前会过一个权限门,基于当前观测到的返回值来做授权。这个机制默认了一个假设:看到的返回值准确绑定到了来源;如果绑定过程出了小偏差,门禁就不设防了。
论文的核心发现是,分别独立地认证分类通道和数值通道,并不能保证组合后的安全。单独看分类不出问题、单独看数值也不出问题,但两个方向的小误差联合起来,同一个动作可能就变得不安全了。结论有点反直觉——分类和数值看起来是正交维度,各查各的就行,但证明表明安全不可简单叠加。
CAGE 的做法是直接对「联合邻域」做认证:同时考虑分类上的离散扰动和数值上的连续漂移,把离散分支全部枚举完,在每个分支内部对连续扰动进行认证。论文给出了三种变体——安全策略本身就是可执行代码时,用 CAGE-Exact 直接认证策略;策略不能直接执行时(比如只能用学出来的门控函数),用 CAGE-Lip 或 CAGE-RS,基于一个有明确保真度假设的学习模型来做认证。
实验覆盖了合成数据、政策即代码(policy-as-code)、监管规则和真实交易场景。结果是 CAGE 能消除基于精确逐点门控(pointwise gate)产生的误放行,同时保留相当比例的自主决策权限。代码已开源,论文主页有链接。
搭建涉及工具调用的 Agent 系统——让 Agent 读写数据库、调用内部 API、操作文件——这篇论文指出的攻击面值得纳入考虑。目前的授权方案大多基于逐点检查,但 CAGE 表明安全边界不能只从一个观测点来画,分类和数值上的小误差会叠加,联合认证是必要条件。
CAGE 也有自己的边界。它解决的是「返回值绑定不确定性」这一特定问题,不是通用授权方案。CAGE-Lip 和 CAGE-RS 依赖对 learned gate 的保真度假设,这个假设在实际部署中能不能站住,要看具体场景。论文也没有声称覆盖所有类型的授权错误。这是把一类工程直觉层面的担忧翻译成了形式化可验证的方案。对于正在搭建 Agent 安全基础设施的团队,值得花时间细读论文和对应的代码。