面向安全智能体系统的策略编译器
Policy Compiler for Secure Agentic Systems
论文信息
标题: Policy Compiler for Secure Agentic Systems
作者: Nils Palumbo, Sarthak Choudhary, Jihye Choi, et al.
发布日期: 2026-02-18
arXiv ID: 2602.16708v1
PDF 链接: 下载 PDF
3 分钟速览
- 研究问题:基于大语言模型(LLM)的智能体系统在部署时需要执行复杂的授权策略,但现有做法仅把策略写在提示中,没有任何强制保证。本文解决如何确定性地、独立于模型推理在多智能体系统中强制执行授权策略。
- 核心方法:将系统交互建模为一个因果依赖图,用类 Datalog 的声明式语言表达策略规则,并通过一个参考监视器在动作执行前拦截并阻断违规操作。编译器自动把已有智能体系统改造成策略合规的版本。
- 关键结果:在客户服务类任务上,相比前沿模型仅靠提示遵守策略的 48% 合规率,加装 PCAS 后合规率提升至 93%,且在所有工具化运行中未出现策略违规。
- 主要局限:自然语言策略到形式化 Datalog 规则的翻译仍需手动完成;依赖图只能捕获经检测的消息通道,无法保证覆盖所有旁路信息流;恢复过程依赖模型推理能力,策略合规不等于任务一定成功。
- 适合读者:从事LLM 智能体安全、授权与访问控制、运行时监控以及多智能体系统的研究者与工程师,尤其关注形式化策略实施和对抗性上下文防御的读者。
论文背景和研究动机
越来越多 LLM 智能体被赋予发送邮件、执行代码、查询数据库等能力,部署在制药、客服、金融等需要严格授权的环境中。组织通常用自然语言描述行为约束(如 “只有获得管理员批准才能查看医疗记录”),主流做法是直接把这类策略写入系统提示,指望模型自己遵守。这一方法存在两个根本缺陷:一是自然语言策略本身歧义大,无法进行独立分析;二是模型可能被对抗性注入(如间接提示注入)或自身推理错误所操纵,导致策略违规。
更关键的是,大多数真实授权决策不仅依赖当前请求,还依赖因果上下文:某个数据最初由谁提供、经过了哪些审批环节、是否受不可信来源影响等。单一线性的消息历史无法还原这种跨智能体的因果结构。因此,论文主张将多智能体系统的交互建模为一个依赖图,以捕获事件间的因果关联,并以此为基底进行策略检查。这一思路源自分布式系统中 “happens‑before” 关系的部分序思想,但要适应 LLM 异步交互的特点。
核心方法和技术细节
PCAS(Policy Compiler for Agentic Systems)的设计围绕三个核心组件:
-
系统状态的因果依赖图 系统中每一次消息、工具调用意图、工具结果都被记录为一个事件节点。当实体 接收到消息 并产生事件 时,会添加从 的相关事件到 的有向边,形成有向无环图 。依赖图随运行单调增长,无论事件属于哪个智能体,其信息流关系均被保留。 动作(如工具执行、外部 API 调用)在执行前必须被授权;动作被阻止时不会进入依赖图,避免了已发生的违规。
-
Datalog 派生策略语言 授权策略定义为依赖图上的 Datalog 规则。系统自动填充输入关系(如
Edge(src, dst)表示直接依赖边、Actions(a)表示待审批动作),并允许用户定义递归谓词以表达传递闭包。 例如,检测信息流污染的策略可以写成:
TaintedByUntrusted(id) :- ToolResult(id, "read_file", args),
contains_untrusted_path(args).
TaintedByUntrusted(id) :- TaintedByUntrusted(src), Depends(id, src).
这种递归能力使得 “动作是否间接依赖未可信数据” 这样的查询成为可能,而传统的 Rego 或 Cedar 等策略引擎因缺少用户定义的递归而难以表达此类条件。策略采用分层否定,允许反例规则(denylist)覆盖允许规则(allowlist)。最终授权判断由内置基规则 Authorized(a) :- Actions(a), AuthenticatedEntity(_), Allowed(a), not Denied(a). 完成。
- 参考监视器与编译器
编译器 接收一个现有多智能体系统 和 Datalog 策略 ,生成一个插装了参考监视器的系统 。其执行语义如算法 1:
- 实体每步产出一个动作提议 ;
- 参考监视器 根据 的后向切片(包含所有因果上游节点)和当前图状态 评估 ;
- 若
deny,则返回结构化反馈(原因、建议措施)给实体,不执行动作; - 若
allow,则执行动作并扩展依赖图。 这保证了完全中介:所有动作都经过策略评估,且评估独立于 LLM 的推理过程。
策略引擎采用 Differential Datalog 实现增量式求值,在依赖图动态增长时能高效重算授权决策,满足在线路径的低延迟要求。此外,规则可通过注解(如 @deny_message、@suggestion)为被阻动作生成可操作的反馈,帮助智能体调整行为。
创新点和贡献
- 首次将 ABAC 的依赖图概念引入多智能体系统授权:PCAS 的依赖图不仅记录 “谁做了什么事”,还捕获跨实体信息流的原因关系,从而支持 “数据是否受过未信任源影响”“是否在同一智能体的执行上下文内完成审批” 等高级策略。
- 独立的、可分析的策略语言:Datalog 规则构成可独立于模型推理的正式制品,可以静态分析覆盖率和正确性,也可用合成测试用例进行穷举测试,远比嵌入提示的模糊语句可靠。
- 确定性强制执行与对抗性抵抗力:即使智能体被提示注入攻击完全控制,参考监视器仍会阻断依赖了未信任数据的敏感操作(如向外发邮件),且决策不依赖模型是否 “理解” 提示。在三个案例中,所有仪表化运行均实现了 0 策略违规。
- 与现有运行时防护的量化对比:表 1 显示,PCAS 是现有方案中唯一同时满足 “表达性策略语言+递归查询+因果依赖+多智能体支持+确定性实施” 的系统。Progent 缺乏递归和因果追踪,NeMo Guardrails 不支持递归闭包和多智能体依赖,FIDES 仅聚焦信息流防御而不支持审批等通用授权。
实验结果分析
论文设计了三个案例研究(均采用非仪表化基线:将自然语言策略放入系统提示):
-
信息流策略防提示注入(GPT‑4.1‑mini):攻击者诱导智能体将绝密文件发送到外部邮箱。
- 基线:攻击成功率 100%;仪表化后:0%。所有配置(Bell‑LaPadula 多级安全、毒性流追踪)都正确阻断外泄,同时保留内部合法邮件。
- 延迟从 5.3 s 增加到 8.5~10.4 s(主要因重试被阻动作),成本仅增加 < $0.002。
-
客户服务策略(-bench 航空与零售):评估三家前沿模型(Claude Opus 4.5、GPT‑5.2、Gemini 3 Pro)。
- 基线平均合规率 48%,仪表化后升至 93%(表 5)。
- 典型故障模式被消除:对抗性重新措辞(如把 “误订” 说成 “改变计划”)、过犹不及的服务添加(擅自加行李)、选择方便的支付方式(礼品卡而非原支付方式)、遗漏前置检查。
- 任务成功率(pass^)在仪表化下保持稳定(图 4),未因强制策略而明显下降;少数失败来自模型本身推理错误,与策略无关。
-
多智能体药物警戒系统 MALADE(GPT‑4.1):涉及 FDA 数据访问审批。
- 基线:15 次运行中共发生 42 次未授权 FDA API 访问;仪表化后 全部授权,需要调用的
register_fda_usage审批工具在每次新会话时被强制执行。 - 预测准确率从 14/15 提升至 15/15,表明策略实施未破坏任务效果。
- 基线:15 次运行中共发生 42 次未授权 FDA API 访问;仪表化后 全部授权,需要调用的
实践建议
对于计划在真实多智能体系统上应用 PCAS 的团队,以下几点值得关注:
- 从关键策略入手,逐步形式化:先挑选风险最高、最需要确保合规的策略(如外发邮件、敏感数据访问),用 LLM 辅助生成 Datalog 规则草案,再经人工审查确认语义。论文指出,编写规则时借助现有的测试场景可以迅速发现遗漏和边缘情况。
- 利用结构化反馈设计恢复路径:当动作被阻止时,返回的 “@suggestion” 应具体指明可操作步骤(如 “请先调用 register_fda_usage 获取批准”)。这能帮助 LLM 快速转向合规行为,减少重试次数。在 MALADE 案例中,提示 “如果第一次被拒,重复调用” 就直接解决了多阶段审批的问题。
- 注意监控覆盖边界:虽然 PCAS 拦截了通过框架定义的消息和工具调用构建的依赖关系,但若智能体能执行任意代码,信息可能通过文件系统或网络套接字等旁路泄露。建议结合沙箱环境或进程级别的信息流监控来弥补。
- 策略可审计性带来运营收益:所有授权决策都可产生包含匹配规则和派生事实的审计记录,这在合规审计和事件调查中极有价值,远远优于仅靠提示的难以追溯的 “黑箱” 遵守。
- 将策略翻译纳入 CI/CD 流程:一旦完成 Datalog 规则的形式化,可以编写测试生成器,对策略引擎进行持续验证,确保系统升级或策略修改后仍符合预期——这对于依赖 LLM 能力的系统尤为关键,因为模型更新后行为可能变化,而严格执行的策略是稳定的安全锚点。