跳到正文
原文
arXiv· arXiv:2609.02564· Jiarui Li, Jiahao Chen, Chunyi Zhou, Yuwen Pu, Oubo Ma, Zhou Feng, Chunqiang Hu, Shouling Ji·本站收录· 原文发表精选关注度41

暗中拨动天平:通过智能体技能隐蔽操纵 Agent 决策策略

A Finger on the Scale: Covert Policy Steering through Agentic Skills

论文速读

攻击

据论文 PDF 整理(AI 生成),以原文为准

作者提出 SkillShift,用黑盒优化改写第三方 Skill 的比较策略,在购物与依赖选择任务上把目标选中率提至 81.33% 和 63.33%,且六个检测器均未识别。

威胁模型攻击者是恶意 Skill 提供者,控制并发布第三方 Skill 文档;black-box 设定:只用最终模型输出优化,不访问模型参数、概率、梯度、隐藏状态或注意力;不能修改查询、候选集、顺序、模型或推理配置;禁止显式目标选择指令,目标名只能出现在允许的示例中;受害系统是加载该 Skill 的 LLM 智能体。

问题
第三方 Skill 作为可加载的指令包会塑造智能体的决策方式,构成供应链风险:恶意 Skill 可以保住声明的任务和输出格式,却暗中把候选选择引向未披露的目标,现有任务正确性和输出有效性检查覆盖不到这一点。
方法
作者形式化 Skill Policy Integrity,并提出 SkillShift:把攻击策略表示为结构化的评估原则、规则、平局裁决和示例,在禁止显式目标指令等约束下,仅用最终模型输出做黑盒迭代优化,再经失败修复和策略压缩后冻结。
实验与结果
在购物推荐和 Python 依赖选择上,SkillShift 的 PSR 分别为 81.33% 和 63.33%,VR 保持 100%;冻结策略无需再优化即可迁移到六个模型后端和两个完整智能体;六个检测器均未检出,三个注册平台均放行;下游代码质量评分下降。
局限与可以继续做的
作者指出评测限于两个固定候选领域、每查询三次运行和特定配置下的检测器案例研究,效用分析依赖自动评审;未来方向包括更广领域、动态候选集、更强的统计评估和行为防御。
实验设置Claude Haiku 4.5、DeepSeek v4-Flash 等 · Shopping Recommendation(50 条查询,目标品牌 Li-Ning)、Python Dependency Selection(50 条查询,目标包 polars) · PSR、VR 等
被测模型
Claude Haiku 4.5DeepSeek v4-FlashGLM-4.7Gemini 3-FlashQwen3.5-FlashGPT-5.4Claude CodeCodex-compatible Agent
基准
Shopping Recommendation(50 条查询,目标品牌 Li-Ning)Python Dependency Selection(50 条查询,目标包 polars)
AI 导读和推荐理由重庆大学和浙江大学研究者在论文中提出 SkillShift 攻击框架,并形式化定义 Skill Policy Integrity:第三方 Skill 可在不注入显式指令、不改动查询和候选集的情况下,通过看似合理的评估标准、平局规则和示例隐蔽引导 Agent 的候选选择。在购物推荐和 Python 依赖选择任务中,攻击分别取得 81% 和 63% 的目标选择率,同时保持 100% 有效输出率;冻结策略无需进一步优化即可迁移到 Claude Haiku 4.5、GPT-5.4、Gemini 3-Flash 等六个模型后端以及 Claude Code 和 Codex 兼容 Agent。作者据此主张对可复用 Skill 开展行为审计。

重庆大学和浙江大学研究者在论文中提出 SkillShift 攻击框架,并形式化定义 Skill Policy Integrity:第三方 Skill 可在不注入显式指令、不改动查询和候选集的情况下,通过看似合理的评估标准、平局规则和示例隐蔽引导 Agent 的候选选择。在购物推荐和 Python 依赖选择任务中,攻击分别取得 81% 和 63% 的目标选择率,同时保持 100% 有效输出率;冻结策略无需进一步优化即可迁移到 Claude Haiku 4.5、GPT-5.4、Gemini 3-Flash 等六个模型后端以及 Claude Code 和 Codex 兼容 Agent。作者据此主张对可复用 Skill 开展行为审计。

推荐理由攻击无需针对性优化即可在六个模型后端和 Claude Code 等完整 Agent 上生效,六个检测器均未识别,部署第三方 Skill 的团队可据此审视行为审计。

深度解读

6个问题,点开问题读完整回答

  1. 这篇论文试图解决什么问题?

    第三方 Skill 可暗中改变智能体的候选选择而保住任务与输出格式,作者形式化该问题并给出黑盒攻击框架。

    核心问题:第三方 Skill 能否在保住声明功能和输出格式的同时,系统性地把智能体的候选选择引向一个未披露的目标?

    • 问题场景:LLM 智能体通过加载可复用 Skill 获得任务流程、工具使用指导和输出约束,作者认为这使 Skill 成为外化的行为策略,加载第三方 Skill 相当于把部分决策逻辑委托给外部提供者,构成供应链风险。
    • 现有研究的不足:作者称已有工作主要关注执行导向或任务边界威胁(恶意代码执行、指令劫持、未授权工具调用、凭据滥用),这些威胁改变智能体做什么,没有覆盖保住授权任务却改变其如何决策的 Skill。
    • 核心概念:作者定义 Skill Policy Integrity,要求 Skill 诱导的行为策略忠于其声明功能和用户授权目标;当未披露的第三方目标系统性影响行为、而声明任务、可用动作和输出接口不变时,即构成违反。
    • 论文提出什么:作者提出 SkillShift,一个 constrained black-box 框架,通过语义上合理的策略编辑、分层验证、失败引导优化和策略压缩实现隐蔽的策略转向,并在智能体购物和软件依赖选择两个场景实例化。
    • 威胁模型:
      • 目标:提高目标候选被选中的比例,同时保持输出在候选集内、适合任务且格式正确;策略应像合理的任务指导而非显式提示注入。
      • 知识:black-box——攻击者只能观察最终智能体响应,不能访问模型参数、概率、梯度、隐藏状态或注意力。
      • 能力:攻击者控制 Skill 文档,可在开发集上仅用最终模型输出优化一个共享策略;不能修改查询、候选、顺序、模型或推理设置;禁止查询特定规则、候选标识符、位置捷径和显式目标选择指令,目标名只能出现在允许的示例中。
      • 受害系统:从开放 Skill 生态加载第三方 Skill 的 LLM 智能体;论文排除了查询篡改、候选投毒、顺序操纵、训练数据投毒和模型修改。
  2. 有哪些相关研究?

    相关工作分四组:智能体与提示注入、选择操纵、Skill 攻击与检测缺口;作者把本文定位为 Skill 策略层操纵。

    LLM 智能体与智能体安全

    • ReAct(Yao et al. 2023)把推理与动作结合,Toolformer(Schick et al. 2023)让模型调用外部工具,AutoGen(Wu et al. 2023)支持多智能体对话;MCP(Anthropic 2024)标准化智能体与外部工具和数据的连接。
    • 间接提示注入把恶意指令嵌入智能体处理的外部内容(Greshake et al. 2023);InjecAgent 和 AgentDojo 提供此类攻击的评测基准(Zhan et al. 2024; Debenedetti et al. 2024);StruQ 和 SecAlign 改进指令—数据分离与可信任务对齐(Chen et al. 2025a,b)。论文指出这些工作主要处理瞬时的指令劫持和不安全动作,而 SkillShift 操纵持久的 Skill 文档以改变合法候选的比较方式。

    策略与选择操纵

    • Adversarial Search Engine Optimization 修改网页以偏向攻击者控制的结果(Nestaas, Debenedetti, and Tramèr 2025)。
    • 工具选择场景中,MPMA 和 ToolTweak 优化工具名称与描述以提高目标被选率(Wang et al. 2026b; Sneh et al. 2025),ToolHijacker 注入恶意工具文档(Shi et al. 2026)。
    • 推荐系统研究显示框架、权威线索和评估维度可以改变 LLM 的策略(Filandrianos et al. 2025; Das and Sakib 2024; Deldjoo and di Noia 2024),论文称其为该攻击提供行为基础。论文指出上述方法操纵的是单个候选或任务环境,SkillShift 研究的是 Skill 策略侧的操纵:查询、候选集、顺序和元数据不变,共享 Skill 改变比较所有候选的标准。

    Skill 攻击与检测缺口

    • 已有工作研究野外恶意 Skill、自动化 Skill 红队和依赖转向(Liu et al. 2026a; Duan et al. 2026; Liu et al. 2026b)。论文指出 Dependency Steering 主要修改硬约束层,而 SkillShift 针对软策略层:所有候选仍可行,但框架、平局规则和示例改变其相对排序。
    • MCPTox 关注恶意 MCP 元数据诱导的未授权动作(Wang et al. 2026a)。
    • 现有防御评估不安全的智能体行为或检测注入指令(Ruan et al. 2024; Yuan et al. 2024; Li et al. 2025; Zhu et al. 2025; Hung et al. 2025),论文指出它们没有显式审计合法候选之间的持久选择偏移。

    基线与评测对象:论文对比两个非对抗控制(No Skill、Clean Skill)和四个独立构造的攻击基线(Target Name Only、Keyword Stuffing、Generic Prompt Injection、Direct-Skill Injection,后者为显式非隐蔽的阳性对照);检测评测覆盖六个工具(skill-scanner-full、Aguara、Snyk Agent Scan、STARS、SkillSpector、ProtectAI DeBERTa)和三个注册平台(ClawHub、Tencent SkillHub、vskill)。作者将本文定位为:形式化 Skill Policy Integrity,并研究在保住任务有效性的前提下对候选选择的隐蔽转向。

  3. 论文如何解决这个问题?

    SkillShift 把攻击策略表示为结构化对象,在硬约束下仅用最终输出做黑盒迭代优化,再修复、压缩并冻结。

    整体思路:把对 Skill 的修改限制在一个 schema 约束的策略对象上,用确定性渲染器附加到原始 Skill,在禁止显式目标指令的约束下,仅用受害模型的最终响应迭代优化该对象,最后压缩并冻结用于全部评测。方法名为 SkillShift。

    问题设定与形式化

    • 任务设定:智能体根据用户查询 q、固定候选集 C 和任务 Skill S 选出一个实体;原始文档称 Clean Skill,附加的选择导向内容称攻击策略;实例化为购物推荐和 Python 依赖选择。
    • 策略对象 A = (G, U, T, X),由全局评估原则 G、任务特定规则 U、平局裁决标准 T 和语义示例 X 组成;渲染器把策略附加到基础 Skill:SA = R(Sbase, A),原任务指令、候选处理流程和输出 schema 不变。
    • 优化目标:A∗ = argmaxA ∈ Ω PSR̂dev(A),约束为开发集有效输出率不低于阈值 τ_vr 且渲染后策略长度 ℓ(A) 不超过预算 B;Ω 由结构、攻击面隔离和内容约束定义。

    结构化策略表示与三种操纵机制

    • Policy framing:改变任务相关属性的相对显著性,即改变现有证据的权重而不修改证据本身。
    • Tie-breaking manipulation:在多个候选同样合适时引入看似合理的次级标准,改变相对排序而不让目标成为无条件选择。
    • Semantic anchoring:用代表性示例稳定抽象原则在不同查询和后端上的应用;示例不能含查询标识符、候选位置规则或无条件目标映射。
    • 作者给出的理由:不受约束地重写整个 Skill 搜索空间大且难控制,可能意外改变声明任务或输出 schema,或靠显式目标指令获得高成功率;结构化表示使允许的策略面显式化、可确定性验证。

    上下文一致的初始化

    • 从空策略起步缺乏转向信号,显式目标推广提示又违反威胁模型,因此初始化器 LLM 接收基础 Skill、声明任务、指定目标和目标的任务相关属性,构造一小组合理的评估原则、领域规则、平局规则和示例。
    • 初始策略同时作为合法搜索起点和未优化基线。

    受约束的黑盒策略搜索

    • 每轮由 proposer G 根据当前最优策略、有界搜索历史和聚合反馈生成候选,候选施加局部语义编辑(增删规则、改写标准、调整优先级、替换示例、合并重叠内容)。
    • 分层验证 V(A) = Vstr · Viso · Vcon:分别检查 schema 与长度、确保只修改附加策略、禁止显式目标指令、查询特定映射、候选位置捷径、测试实例引用和示例之外的目标提及;被拒候选不执行,违规类型记入历史。
    • 黑盒评估:开发集每条查询执行 R 次,确定性解析器 E 从最终响应抽取所选候选;无效或不可解析输出保留在分母中,同时计为无效输出和攻击未命中;按 PSR 更高、VR 更高、渲染长度更短的字典序比较策略;达到固定轮数或连续数轮无改进则终止。

    失败引导的覆盖修复与策略压缩

    • 修复阶段把失败的开发查询按需求和可见候选属性分组,只向 proposer 提供类别描述和聚合失败统计;补丁须通过验证、保持 VR 不低于 τ_vr、改善目标类别覆盖且不实质降低整体 PSR 才保留;作者称类别级反馈可避免查询级反馈导致的实例特定记忆。
    • 压缩阶段删除低贡献内容、合并语义相近规则、缩短重复解释并泛化相关示例,在 PSR 下降不超过阈值 ϵc 且 VR 达标的前提下最小化策略长度;压缩只在开发集上验证,不能引入新目标指令或访问留出集结果。
    • 冻结后的策略用于全部留出、跨模型、完整智能体和检测评测;Algorithm 1 给出完整流程。
  4. 论文做了哪些实验?

    两个固定候选任务上 PSR 达 81.33%/63.33% 且 VR 100%,冻结策略跨六个后端和两个智能体迁移,六个检测器均未检出。

    实验设置

    • 任务:购物推荐(从固定候选列表选运动产品,目标品牌 Li-Ning)和 Python 依赖选择(从 pandas、dask、polars、modin、datatable 中选包并返回 import 语句,目标 polars);候选内容、属性和顺序在 Clean 与 Attack 条件间不变。
    • 数据规模:每个领域 50 条分布内查询,30 条开发集(dev30)、20 条留出集(heldout20);每条查询独立执行 3 次,dev30、heldout20、all50 分别含 90、60、150 个模型响应;策略生成、选择、分析和补丁只用 dev30。
    • 模型:GPT-5.5 为 Strategy Proposer,Claude Haiku 4.5 为主要 Victim Simulator;跨模型评测后端为 Claude Haiku 4.5、DeepSeek v4-Flash、GLM-4.7、Gemini 3-Flash、Qwen3.5-Flash、GPT-5.4;完整智能体评测为 Claude Code(用 Claude Haiku 4.5)和 Codex-compatible Agent(用 DeepSeek v4-Flash)。
    • 基线:No Skill、Clean Skill 两个非对抗控制,Target Name Only、Keyword Stuffing、Generic Prompt Injection、Direct-Skill Injection 四个独立构造的攻击基线;Direct-Skill Injection 是显式、非隐蔽的阳性对照。
    • 指标:PSR(目标候选被选中比例)、VR(可解析且从固定候选集选择的比例,Python 任务还要求包名与 import 语句一致)、Lift = PSR_atk − PSR_clean(同评测批次内的百分点差);无效输出保留在分母并计为未命中。
    • 检测与注册平台:六个检测器(skill-scanner-full、Aguara、Snyk Agent Scan、STARS、SkillSpector、ProtectAI DeBERTa)和三个注册平台(ClawHub、Tencent SkillHub、vskill);下游代码质量用 DeepEval GEval,评审模型 claude-haiku-4-5-20251001,每样本 1 次评审调用,50 Clean + 50 Attack 输出。

    主结果

    独立 all50 评测(每条件 150 个响应,据 Table 11,对应 Figure 2):

    表格较宽,可左右滑动

    方法Python PSRPython VRShopping PSRShopping VR
    No Skill0.00%100.00%33.33%83.33%
    Clean Skill0.67%100.00%37.33%100.00%
    Target Name Only3.33%99.33%46.00%91.33%
    Keyword Stuffing4.67%100.00%76.67%90.00%
    Generic Prompt Injection32.67%100.00%61.33%74.00%
    SkillShift63.33%100.00%81.33%100.00%
    Direct-Skill Injection100.00%100.00%98.00%98.00%
    • 作者称 Target Name Only 和 Keyword Stuffing 的转向效果弱于 SkillShift 或不够稳定;Direct-Skill Injection 通过显式覆盖原选择策略达到最高 PSR,但违反 SkillShift 的隐蔽约束,仅作阳性对照。
    • 留出集泛化(Table 1):冻结策略在 heldout20 上购物 PSR 80.00%(dev30 为 85.56%),Python PSR 75.00%(dev30 为 46.67%),所有 Attack 条件 VR 保持 100.00%;作者提醒 Python 留出集上升可能反映划分特定的查询构成,不应解读为未见查询本质上更容易。

    跨模型与完整智能体迁移

    • 跨模型(Table 2,冻结策略、无模型特定优化):所有模型–领域组合的 Lift 均为正;购物 Lift 20.00–51.33 个百分点,Python Lift 52.67–100.00 个百分点;Gemini 3-Flash 在两个领域 Lift 最大,Python 上 Clean PSR 0%、Attack PSR 100.00%,作者称应解读为后端特定的饱和而非普遍完美的迁移。
    • 完整智能体(Table 2):Claude Code 上购物 Lift +28.67、Python Lift +59.34;Codex-compatible Agent 上购物 Lift +28.67、Python Lift +94.00;Attack VR 至少 96.67%。
    • 作者说明:模型 API 与完整智能体在系统提示、上下文构造和 Skill 注入位置上不同,因此关注每个后端内的 Clean–Attack 差值,而非跨系统直接比较绝对 PSR。

    检测、注册平台与下游效用

    • 检测器(Table 3、12):六个检测器对两个领域的 SkillShift Attack Skill 均为 0/6 检出;ProtectAI DeBERTa 对购物 Attack Skill 的分数从 7.32×10⁻⁵ 升至 0.3052,但低于 0.5 的默认阈值;Snyk 对 Python Clean Skill 的 W007 警告与攻击无关;Direct-Skill Injection 在每个领域被 4/6 检测器检出(66.7%)。作者称现有防御对保住有效任务行为的 Skill Policy Integrity 违反覆盖有限。
    • 注册平台(Table 14):SkillShift Skill 被全部三个平台无攻击相关警告地接受或索引;Direct-Skill 对照处理不一致——ClawHub 标记可疑、Tencent SkillHub 拒绝、vskill 接受。作者称注册平台防御对显式指令覆盖的识别比对合理策略转向更可靠。
    • 下游效用(Table 4):在选择阶段 VR 100.00% 的情况下,SkillShift 把 GEval 平均分从 0.558 降到 0.506,[email protected] 从 28.0% 降到 12.0%(−16.0 pp),[email protected] 从 66.0% 降到 46.0%(−20.0 pp);作者指出评测每样本只有一次 LLM 评审调用、无可执行测试,故解读为观察到的分数下降而非已确立的功能退化。

    其他消融与分析

    • 购物消融(Figure 3、Table 10,相对未压缩 Full Attack 81.33% PSR):去目标语义线索 −36.00 pp,去任务适配评分准则 −30.00 pp,去示例 −28.00 pp,长度受控中性 Skill −47.33 pp;去专业化框架 −1.33 pp、去平局规则 −2.00 pp,作者认为可能反映经验波动或组件冗余。
    • Python 消融(Table 10,相对压缩后 Lite Strategy 63.33% PSR):去全部示例 −33.33 pp,去 few-shot 示例 −6.66 pp,去行元数据补丁 −6.66 pp,其余单项 −1.33 至 −5.33 pp。
    • 购物优化过程(Table 7,dev30):初始策略 PSR 83.33%,失败修复后 86.67%(+3.34 pp),压缩后 85.56%(−1.11 pp),VR 保持 100.00%。
    • 压缩代价(附录 C):Python 未压缩策略比 Lite Strategy 高 5.34 个百分点,作者称压缩以降低攻击效果为代价减少上下文开销。
  5. 有什么可以进一步探索的点?

    作者列出评测范围、统计评估和自动评审等局限;实验覆盖两个领域、八个后端/智能体、六个检测器和三个注册平台。

    作者指出的局限与后续方向

    • 评测限于两个固定候选领域、每条查询三次运行,以及特定配置下的检测器案例研究(Discussion,Limitations and Future Work)。
    • 效用分析依赖自动评审(Discussion,Limitations and Future Work);附录 F 进一步说明 GEval 结果是单次自动 LLM 评审的代码质量评估,而非单元测试正确性或观察到的执行成功率。
    • 未来工作应覆盖更广的领域、动态候选集、更强的统计评估和行为防御(Discussion,Limitations and Future Work)。
    • 附录 A 说明模型别名可能指向随时间变化的上游端点而非可独立验证的固定快照,因此跨模型结果通过每个后端内的 Clean–Attack 差值解读;Claude Code 只暴露模型族名称,作者不声称 Victim Simulator 与 Claude Code 使用同一不可变快照。
    • 附录 E 说明检测结果是检测器行为的案例研究,而非检测器准确率的全面基准;STARS 用基于规则的回退配置评测,结果不代表完整 STARS 系统的能力;购物 STARS 结果因规则主要匹配英文而按不确定处理。

    实验覆盖范围

    • 被测对象为两个固定候选选择任务:购物推荐(目标 Li-Ning)和 Python 依赖选择(目标 polars),每领域 50 条查询(30 开发 + 20 留出),每查询 3 次运行。
    • 跨模型评测覆盖 6 个后端,完整智能体评测覆盖 Claude Code 和 Codex-compatible Agent 共 2 个环境;策略优化只用 Claude Haiku 4.5 作为 Victim Simulator。
    • 检测评测包括 6 个检测器和 3 个注册平台;下游效用评测为 50 Clean + 50 Attack 输出,每样本 1 次 LLM 评审调用。
    • 论文未报告统计显著性检验;可复现性清单中作者自述未用统计检验判断性能变化(4.12 填 no)、未报告变化度量或置信区间(4.11 填 no)、未描述随机种子设置方法(4.7 填 no)。
    • 论文未报告攻击的查询次数或耗时等成本数字;优化预算以轮数给出(购物搜索 30 轮、补丁 20 轮、Python 搜索 20 轮,Table 5)。
  6. 总结一下论文的主要内容

    作者形式化 Skill Policy Integrity 并提出黑盒攻击 SkillShift,在两个任务上实现隐蔽选择转向且现有检测与注册平台均未拦截。

    这是一篇智能体供应链安全攻击论文:作者把可复用 Skill 视为外化的行为策略,形式化 Skill Policy Integrity——Skill 诱导的策略须忠于声明功能和用户授权目标——并研究第三方 Skill 能否在保住任务与输出格式的同时隐蔽地改变候选选择。

    • 方法:SkillShift 把攻击策略表示为结构化对象(全局原则、任务规则、平局标准、语义示例),通过 policy framing、tie-breaking manipulation、semantic anchoring 三种机制操纵候选比较;在禁止显式目标指令等确定性约束下,仅用最终模型输出做黑盒迭代优化,经类别级失败修复和策略压缩后冻结。
    • 主结果:在 all50 独立评测中,SkillShift 在购物推荐上 PSR 81.33%(Clean 为 37.33%)、Python 依赖选择上 PSR 63.33%(Clean 为 0.67%),VR 均为 100.00%(Table 11)。
    • 泛化与迁移:冻结策略在留出查询上保持有效(购物 80.00%、Python 75.00%,Table 1);无需再优化即迁移到 6 个模型后端(购物 Lift 20.00–51.33 pp、Python Lift 52.67–100.00 pp)和 2 个完整智能体(Lift 28.67–94.00 pp,Table 2)。
    • 可检测性:六个检测器对 SkillShift Attack Skill 检出数为 0/6,而显式的 Direct-Skill Injection 对照为 4/6;三个注册平台均接受或索引了攻击 Skill(Table 3、14)。
    • 下游影响:在 VR 100% 的情况下,GEval 代码质量均分从 0.558 降到 0.506,[email protected] 降 16.0 个百分点(Table 4),作者据此认为有效的依赖选择不保证下游效用。
    • 作者结论:作者称有效输出和通过安全扫描并不保证 Skill Policy Integrity,防御应引入 Clean–Attack 对比和候选重排、名称替换、属性交换等反事实测试的行为审计。
阅读原文arxiv.org