PACT: Provenance-Aware Capability Contracts --- Argument-Level Provenance for Agent Security (2026)
论文重点
本文提出了一种名为PACT(Provenance-Aware Capability Contracts)的运行时监控机制,通过将安全边界从工具调用层级下探到参数层级,从根本上解决了LLM智能体在混合信任场景中安全与效用的两难困境。核心洞察在于:间接提示注入之所以危险,并非因为不可信内容出现在上下文中,而是因为它能够绑定"权威承载型参数"(如收件人、URL、命令等);PACT通过为每个工具参数赋予语义角色并追踪跨步骤的数值溯源,实现了100%安全与100%效用的机制层突破。
核心研究内容
问题定义
工具型LLM智能体需要从不可信的网页、邮件、文件和API输出中读取信息,同时通过特权工具调用来执行操作。现有的防御手段通常在"整个工具调用"的粒度上做信任裁决------这形成了一个根本性的"粒度失配"问题:如果阻止任何受外部内容影响的调用,就会破坏大量合法的"检索-执行"工作流;如果允许调用,攻击者就能通过注入指令劫持目标地址或命令。以send_email(recipient, body)为例:网页内容理应决定邮件正文,但绝不应决定收件人------然而整调用级别的策略无法表达这种区分。
创新方法
PACT的核心创新在于将安全边界从工具调用层面下探到参数级别。具体设计包含三个层次:
-
参数级合约(Argument-Level Contracts) :为每个工具的参数定义语义角色(如
target、command、credential、content等),并设定该角色所需的最低信任级别。合约分为L0-L3四个精度级别,从"不透明阻塞"到"认证路由"逐级细化。 -
跨步骤溯源追踪(Cross-Step Provenance) :每个运行时值都携带溯源标签
π(v)=⟨O(v),τ(v),B(v)⟩,记录其来源集合、当前信任级别和未解决的义务。当多个值合并时,溯源信息保守合并:merge=⟨O₁∪O₂,min(τ₁,τ₂),B₁∪B₂⟩------信任永远不会自动提升。 -
认证路由(Certified Routing, L3) :允许通过可信的"认证过程"在限定范围内解除阻塞,但原始来源被保留且证书不可跨角色复用。
在执行每个工具调用前,PACT监控器检查每个参数的溯源是否满足其角色合约的要求。
研究成果
机制层验证(Oracle溯源) :在17个混合信任诊断场景中,PACT L2实现了100%效用 和100%安全,零误报、零漏报。而基线方法中,Vanilla保持100%效用但安全为0,CaMeL达到100%安全但效用仅33.3%,FIDES则两者皆不完美。
完整AgentDojo部署 :在五个模型上的完整部署中,PACT在三个最强模型上达到100%安全 ,同时恢复了38.1%-46.4%的效用 ,在同等安全水平下比CaMeL高出8-16个百分点。具体数据见表2。
消融实验:去除语义角色后效用暴跌60个百分点;去除跨步骤溯源则产生安全漏洞。单纯按参数检查(无角色区分)无法同时达到PACT的安全和效用水平。
实际落地应用的可能性
PACT的架构设计使其具备较高的实际部署价值:
-
无需修改底层模型:PACT是一个运行时监控器,不依赖模型本身的对抗鲁棒性,可插拔地集成到现有智能体框架中。
-
自动化合约合成:论文展示了从工具schema自动合成合约的pipeline,在20个真实MCP工具上达到87.1%的角色准确率和77.4%的溯源准确率。
-
适用场景广泛:适用于邮件智能体、浏览器智能体、文件操作智能体、API调用智能体等任何涉及工具调用的LLM应用场景。
-
低运行时开销:在线检查复杂度为参数数量线性级,仅涉及格比较、集合交集和证书范围检查。
技术细节
合约形式化定义
对于工具t,PACT定义合约:
C_t = (ℓ, {a_i}_{i=1}^k, o)
其中ℓ ∈ {L0, L1, L2, L3}为合约精度级别,o为输出溯源规格。
每个参数条目为:
a_i = (name_i, role_i, τ_i^min, F_i, R_i, D_i)
其中role_i为语义角色,τ_i^min为所需最低信任级别,F_i为禁止来源集合,R_i为义务集合,D_i为L3级别可用认证过程集合。
信任格(Trust Lattice)
信任值形成有序格:
TRUSTED > USER > TOOL_OUTPUT > EXTERNAL
用户指令获得USER信任,可信常量获得TRUSTED,工具输出按OutputSpec指定。
运行时检查算法
执行t(v₁, ..., v_k)前,监控器检查每个参数v_i是否满足:
τ(v_i) ≥ τ_i^min(信任级别达标)
O(v_i) ∩ F_i = ∅(来源不在禁止集合中)
B(v_i) ∪ R_i ⊆ Discharged(义务已解除)
在L3级别,失败的检查可通过认证过程解除,但必须满足:认证过程覆盖失败谓词且作用于该参数角色。
认证证书
认证过程返回范围限定的证书:
d = (r, s, ρ, τ^max)
其中r为被解除的失败谓词,s为认证过程,ρ为参数角色范围,τ^max为有效信任上限。
应用证书后生成派生值,原始来源被保留,仅解除指定范围的义务。
研究设定
实验环境
-
基准测试:AgentDojo v1完整运行时,包含97个良性用户任务和27个注入任务,涵盖银行、工作区、Slack和旅行四个场景。
-
模型:Owen-turbo、Owen-plus、Owen-max、Owen2.5-72B、GPT-4o-mini五个模型,分属三个模型家族。
-
基线对比:Vanilla(无防御)、FIDES、CaMeL。
合约与溯源推断pipeline
- 从工具schema(名称、参数名、类型注解、自然语言描述)自动合成合约。
- 确定性规则将
recipients、URLs、endpoints等映射为target;shell commands、executable queries映射为command;API keys、tokens、passwords映射为credential;message bodies、summaries映射为content。 - 溯源通过精确结构匹配、角色感知启发式和LLM分类器推断。
- 该pipeline合成了74个合约,在20个真实MCP工具上达到87.1%角色准确率和77.4%溯源准确率。
综合分析
理论贡献:重新定义问题边界
PACT最深刻的贡献在于重新框定了间接提示注入的本质问题。现有工作大多在问"如何检测或过滤恶意内容",而PACT问的是"无论内容是否恶意,它被允许决定什么?"------这是一个从"内容检测"到"权限绑定"的范式转换。
这一转换的价值在于:它承认了LLM智能体"必须消费不可信内容"这一现实约束,而不是试图让模型学会忽略所有恶意文本。正如论文所述,同一个网页可以决定邮件正文,但绝不应决定收件人------PACT用结构化的方式表达了这种语义上的区分。
机制设计的精妙之处
PACT的设计体现了几个深思熟虑的权衡:
-
分层合约(L0-L3) :不是要求所有工具的参数语义在一开始就完全明确,而是允许从粗粒度(L0整调用阻塞)逐步细化到L3认证路由。这既保证了"安全优先"的部署策略,又为后续效用优化留出了空间。
-
保守溯源合并 :公式
merge=min(τ₁,τ₂)确保了信任永远不会通过普通数据流自动提升。这是一个极其重要的安全属性------攻击者无法通过"污染-清洗-再污染"的链条来提升数据的信任级别。 -
认证路由而非信任升级:L3的认证不是简单地把不可信数据"变成"可信的,而是通过证书在限定范围内解除阻塞,同时保留原始来源信息。这保证了审计追踪的完整性。
理论保证的边界
论文通过三个定理给出了形式化保证:
-
Theorem 3(与整调用监控的分离):存在混合信任场景中,参数级合约可实现完全效用和完全安全,而任何整调用监控必然产生误报或漏报。
-
Theorem 4(安全细化的单调性):从L0到L3的安全细化保持安全属性不变,同时单调减少不必要的阻塞。
-
Theorem 5(前缀基可靠性):每个决策仅依赖于已累积的溯源,不依赖未来动作。
这些定理的前提是"保守溯源传播"和"正确指定的合约"------论文坦承,自动合约合成和溯源推断的准确性是部署阶段的主要瓶颈。
部署差距的本质
从Oracle机制(100%效用+100%安全)到完整部署(38.1%-46.4%效用+100%安全)的差距,清晰地揭示了当前技术栈的瓶颈所在。论文将剩余部署差距归因于"溯源推断和合约合成的保真度",而非运行时策略本身。换言之,PACT在"应该阻止什么、应该允许什么"这个决策层面已经做到了理论上的完备,但"如何知道某个值的来源是什么、某个参数的角色应该是什么"这两个前置问题仍有待解决。
实践应用
适用场景
-
邮件智能体 :用户让智能体读取外部网页后发送邮件------PACT允许网页内容填充邮件正文(
content角色),但阻止其填充收件人(target角色)。 -
浏览器智能体:智能体浏览网页并执行操作------PACT可区分哪些参数可受网页内容影响,哪些必须来自用户指令或可信常量。
-
代码执行智能体 :智能体读取文件后执行命令------PACT阻止文件内容决定命令本身(
command角色),但允许其决定命令的输入数据(content角色)。 -
API编排智能体:跨多个API的复杂工作流------PACT的跨步骤溯源能力确保攻击者无法通过多步数据流将不可信内容"洗白"后绑定到权威参数。
部署建议
-
渐进式部署:建议从L0或L1级别开始部署(保守安全),随着工具合约逐渐完善,逐步升级到L2和L3以恢复更多效用。
-
合约维护:自动合约合成的准确率(87.1%角色准确率、77.4%溯源准确率)意味着需要人工审核和持续优化合约库。
-
与现有防御互补:PACT可与内容过滤、提示注入检测等防御手段叠加使用------它解决的是"权限绑定"问题而非"内容检测"问题。
-
审计与可解释性:PACT的溯源标签系统天然支持安全审计------每个被阻止的调用都带有明确的失败原因(信任不足/来源禁止/义务未解除),便于调试和策略优化。