SkillMarker:基于 KGW 水印的智能体技能所有权验证方法 SkillMarker: A KGW-Based Watermarking Method for Agent Skill Ownership Verification
用质量受限改写与信号导向候选搜索为智能体技能嵌入强水印,实现所有权验证与泄漏溯源。
前置知识
智能体技能(Agent Skill)
把领域专长打包成可复用的 Markdown 指令与资源文件(如代码块、API 标识符、判定条件),智能体按需加载即可特化行为,无需修改模型权重。典型代表是 Anthropic 的 Agent Skills 格式,其文本结构化、紧凑、对事实与流程准确性要求极高。
本文的保护对象就是这类技能文本;只有理解其结构化、紧凑、精度敏感的特性,才能明白为什么留给水印嵌入的改写空间极小、问题难在哪里。
KGW 水印
Kirchenbauer 等人 2023 年提出的生成期文本水印:用密钥 $k$ 和前一个词元哈希出绿名单 $G_t$(约占词表比例 $\gamma$),生成时给绿词加对数偏置 $\delta$,得到偏置分布 $Q_t(v)\propto P_t(v)\exp(\delta\,\mathbf{1}\{v\in G_t\})$;检测时只需分词器与密钥,统计绿词数即可,无需模型推理。
SkillMarker 是 KGW 的适配版,其公式、绿词率、z 统计量全部继承自 KGW;不看懂 KGW 的嵌入与检测机制,就无法理解本文所有技术细节与实验指标。
绿词率与 z 统计量
对待检文本的可评词元集合 $I$($N=|I|$ 个),绿词数 $G=\sum_{t\in I}\mathbf{1}\{w_t\in G_t\}$,绿词率 $r=G/N$,标准化统计量 $z=\frac{G-\gamma N}{\sqrt{N\gamma(1-\gamma)}}$,z 越大水印信号越强;也可报告标称上尾概率 $p=\Pr[\mathrm{Binomial}(N,\gamma)\ge G]$。
绿词率既是嵌入阶段给候选改写排序的首要依据,又是检测阶段的核心判定指标,贯穿嵌入、检测与全部鲁棒性实验。
束搜索与困惑度(PPL)
束搜索每步保留 $B$ 条最优前缀(本文 $B=5$)以并行探索多条生成路径;困惑度 PPL 是语言模型对文本平均负对数似然的指数(Bengio et al., 2003),衡量语言流畅度,数值越低越通顺。
SkillMarker 用束搜索在 KGW 偏置分布下产出多个候选改写,再用条件 PPL 在绿词率打平的候选中破平局,是信号导向候选搜索的两个基本组件。
受保护内容与豁免集 $E$
受保护内容指代码、结构分隔符、可识别字面量等必须逐字不变的部分,结构未定区域也一律保护;豁免集 $E\subset V$ 指不参与对数偏置与评分的 Markdown 符号、特殊与保留控制词元等格式词元。token 变体(仅前导空格或句号不同)共享同一代表词元的绿名单归属。
这两个机制保证水印不会改坏技能的可执行性与 Markdown 结构(如把 name 偏置成 _name),是本文功能保真承诺的技术落点。
研究动机
智能体技能以 Markdown 文本封装操作流程与领域专长,按需加载即可让智能体特化行为而无需修改模型权重,已成为组织与开发者的重要知识资产。但技能以明文分发,复制、转发或并入其他技能的成本几乎为零,所有权验证与泄漏溯源机制却严重缺位。最直接的防线是分发前给技能文本嵌入水印,可结构化、紧凑的技能指令带来两大耦合难题:其一(C1),技能文本编码了精确的操作要求——资源引用、判定条件、必需动作,哪怕改动一个比较符(如把代码里的 >= 改成 >)都会改变重试上限的生效时机,使智能体行为偏离,甚至把所有条件统一成任一条件也会改变决策规则;其二(C2),紧凑指令留给改写的余地极少,水印信号难以做强:对数偏置弱则绿词信号不足,偏置强则可能篡改关键指令。现有生成期水印面向模型服务商做输出归因,事后水印(PostMark、REMARK-LLM、SrcMarker)针对通用文本或代码,均未处理技能文本在严格功能约束下保真改写与强信号嵌入这对矛盾。
本文的目标是本文的目标是让技能开发者在分发前为技能嵌入密钥化水印,之后仅凭可疑文本、分词器与水印配置(无需模型推理)即可完成两件事:所有权验证——判断可疑文本是否携带某技能的水印信号;泄漏溯源——为不同分发版本分配不同密钥,当技能被整体复制或并入其他技能时也能定位来源版本。方法必须同时满足功能无损:水印化技能在下游任务上的表现与原技能相比退化可忽略,受保护内容逐字不变。论文把这一目标形式化为两个耦合挑战——C1 水印化过程中保留技能功能、C2 在有限改写自由度下嵌入强水印,并提出配套工具包,覆盖水印嵌入、独立质量审计与检测(支持全文与滑动窗口两种模式),覆盖从保护到取证取证全流程。
与已有工作不同的是,本文的独特切入是把 KGW 生成期水印从模型服务商侧的输出归因迁移到技能开发者侧的资产保护,并把水印问题重构为指令质量与水印信号强度的联合优化。与 REDACT(对已释放的智能体轨迹做选择性改写并加行为水印)、SkillTrace(用表达、实现、运行痕迹做多轨迹来源审计)、AgentMark(水印化规划决策)等事后或行为层方法不同,SkillMarker 把信号直接写入分发的技能文本本身,不依赖后续执行该技能的模型。方法上独有的组合是:先解析技能把受保护内容与可编辑散文段分离,用保留指令加成对示例的上下文学习约束改写忠实性,再在 KGW 偏置分布上做束搜索探索候选表达,并采用重构后全文的绿词率优先、困惑度破平局的字典序规则选择候选——评分对象是拼回完整技能后的文本,而非孤立的生成片段。
核心方法
直觉上,技能文本中真正不能动的只有代码、阈值、标识符这类字面内容,周边散文往往有多种等价说法;SkillMarker 的思路就是在这些可改写的缝隙里尽量多塞绿词,同时保证受保护内容逐字不变。技术路线分四步:(1) 质量受限改写:解析原技能,将代码、结构分隔符、可识别字面量及结构未定区域标记为受保护内容,剩余散文切成可编辑跨度,过短的跨度保持原样;用带保留指令与成对示例的提示词逐段改写。(2) 信号导向候选搜索:在软 KGW 偏置分布 $Q_t(v)=\frac{P_t(v)\exp(\delta\,\mathbf{1}\{v\in G_t\setminus E\})}{\sum_{u\in V}P_t(u)\exp(\delta\,\mathbf{1}\{u\in G_t\setminus E\})}$ 上做束搜索得到候选。(3) 候选选择:按绿词率优先、低 PPL 破平局的字典序规则,空候选集则回退保留原文。(4) 重建全文,做独立质量审计与检测。主实验配置:Qwen3-8B 嵌入,$\gamma=0.75$,$\delta=8$,束宽 5。
核心创新有三点。第一,重构文本评分:候选的生成序列与相邻内容拼接后重新分词会发生变化,孤立评分生成片段会偏好最终技能中不存在的水印信号,因此 SkillMarker 把候选插回当前技能、对完整重构文本分词后再统计绿词率 $r=G/N$,每个词元的绿名单由其在全文中的实际前驱词元决定——即使该前驱是受保护或豁免词元也照常使用。第二,token 变体分组与豁免集:仅前导空格或句号不同的变体共享代表词元的绿名单归属,防止硬水印偏向 _name 之类破坏 Markdown 排版的变体(下划线字面量变体仍受保留检查约束);Markdown 符号与特殊保留词元组成豁免集 $E$,不参与对数偏置也不贡献水印信号,避免格式被改坏。第三,软偏置、束搜索与字典序选择替代单纯加大 $\delta$:红词仍可用、模型可选强偏好表达,束搜索在同一保留约束下探索替代表达,绿词率优先、低 PPL 破平局,从而在指令保真与信号强度之间取得可验证的折中。
方法步骤详情
输入为技能 Markdown 正文 $x$、密钥 $k$、$\gamma\in(0,1)$、$\delta>0$。第 1 步解析划分:识别代码、结构分隔符、字面量为受保护内容,结构未定区域同保护;剩余散文切成可编辑跨度,跨越受保护边界的词元被保护,低于阈值的跨度不改。第 2 步逐段改写:提示词含系统级保留指令(含义、事实、条件、否定、数值、标识符与格式)加两个成对示例,输出经保留检查过滤。第 3 步束搜索:在 $Q_t$ 偏置分布上选最可能续写,得到完整候选。第 4 步重构评分:候选插回技能、全文分词,仅统计完全落在输出边界内且有前驱的非豁免词元,$G=\sum_{t\in I}\mathbf{1}\{w_t\in G_t\}$,按 $C_i^*\in\arg\max_{C\in\mathcal{C}_i}(r(C),-\mathrm{PPL}(C))$ 选择。第 5 步按原顺序重建并做独立质量审计。检测端只需可疑文本与配置:一次分词、逐 token 重建 $G_t$,支持全文 z 检验及 1024 窗、256 步长、$p\le 0.01$ 的滑窗检测(Bonferroni 校正)。
技术新颖性
与已有工作相比的技术新颖性体现在四个层面。相对 KGW 及其变体(Unigram-Watermark、SynthID-Text、SemStamp、textGrain),本文不是在解码器里加水印,而是把带偏置的解码当作受限改写引擎,用束搜索在保真约束内最大化绿词信号,这属于对 KGW 的复用式创新。相对 SWEET(保护低熵位置)和 STONE(保护语法代码 token),本文的处理对象是混合了代码、Markdown 结构与自然语言指令的技能文档,引入了结构感知的受保护内容划分与 token 变体分组。相对 PostMark、REMARK-LLM、SrcMarker 等事后水印,本文强调指令级保真:保留检查明确拒绝条件、否定、数值、技术标识符的变化,消融实验定量显示去掉保真约束虽然 z 从 3.01 升到 3.37 但质量分从 70.97 跌到 67.09,说明保真与强度是真实的权衡而非口号。重构文本评分虽在消融中收益有限(z=2.98 对 3.01),但其动机——防止拼接后词元漂移造成信号虚高——是水印文献中少被讨论的问题。
实验结果
下游性能:水印化技能相对原技能 −2.01% 到 +0.93%(agent-skills 97.46→98.25、awesome-skills 92.03→90.18、marketingskills 94.20→93.56、skill-use-bench 59.85→60.41)。代价:平均 token 增加 14.1%–29.3%(skill-use-bench −3.3%),时间中位数 +14.5% 至 −5.3%。复制粘贴(1024/4096 词元背景):窗口检测对全部 1536 词元拷贝 100% 检出(全文检测仅 55.6%),定位召回 98–99.1%、精度 65.4–69.6%,切成 8 段降至 77.8%。技能合并:多尺度检测于 1/2/4 技能达 91.7%/72.2%/77.8%,对照假阳性 0%/11.1%/16.7%。消融:质量 70.97、$z=3.01$;去保真约束 z=3.37 但质量 67.09;去束搜索/信号选择/对数偏置 z 跌至 0.65/0.69/0.83。案例中受保护内容逐字不变($p=4.62\times10^{-9}$)。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 下游任务性能(agent-skills,软件工程日常流程) | 通过检查比例 (%) | 98.25(水印化技能) | 97.46(原技能);89.83(无技能) | 相对原技能 +0.81%,功能无损 |
| 下游任务性能(awesome-skills,通用技能集) | 通过检查比例 (%) | 90.18(水印化技能) | 92.03(原技能);82.93(无技能) | 相对原技能 −2.01%,最大退化 |
| 下游任务性能(marketingskills,营销工作流) | 通过检查比例 (%) | 93.56(水印化技能) | 94.20(原技能);78.10(无技能) | 相对原技能 −0.69% |
| 下游任务性能(skill-use-bench,专业可执行任务) | 通过检查比例 (%) | 60.41(水印化技能) | 59.85(原技能);42.66(无技能) | 相对原技能 +0.93%,token 反降 3.3% |
| 复制粘贴检测(1536 连续词元拷入 1024/4096 词元背景) | 检出率 (%) | 窗口检测 100%(全部被测拷贝均检出) | 全文检测 55.6%(4096 词元背景) | 长背景下领先约 44 个百分点 |
| 复制内容定位(1536 词元,1–8 片段) | token 级召回/精度 (%) | 召回 98.0–99.1%,精度 65.4–69.6% | 不适用(本文新增评测设定) | 8 片段时检出降至 77.8%,碎片化是主要瓶颈 |
| 技能合并检测(1/2/4 个输入技能) | 检出率 (%) | 91.7/72.2/77.8(多尺度联合检测) | 58.3/47.2/44.4(单窗口检测) | 最高提升 33.4 个百分点;对照假阳性 0/11.1/16.7% |
| 消融:保真-强度折中(32 技能) | 指令质量(0–100) / 平均 z | 70.97 / 3.01 | 无保真约束 67.09 / 3.37;无束搜索 76.06 / 0.65;无对数偏置 73.06 / 0.83 | 在质量与水印强度间取得平衡而非全面占优 |
局限与改进
作者承认的局限:碎片化削弱检测与定位,同一 1536 词元内容切成 8 片后检出率从 100% 降到 77.8%;背景技能稀释水印,背景越多对照假阳性越高(1/2/4 输入技能对应 0%/11.1%/16.7%),可靠检测需要独立校准;重复上下文与共享绿名单成员关系会破坏二项零假设,名义 p 值不构成经验假阳性保证;合并检测器的参数(13 个成分决策的 OR 融合、单窗阈值 $p\le 0.03332253$)是在同一评测队列上选优的,没有留出测试集,存在过拟合风险;指令质量是盲评的模型整体分数,不是执行级功能正确性度量。我的补充观察:下游评测每例仅 1 次 DeepSeek-V4-Flash 裁判判断,未报裁判方差;token 开销最高 +29.3%、时间最高 +16.4%,按量计费场景成本不可忽略;逐跨度局部贪心选择不保证全文绿词率最优;消融中重构文本评分相比生成词元评分仅 +0.03 z,该组件必要性证据较弱;实验限于英文技能与 Qwen3-8B 一个嵌入模型,跨语言与更强攻击者场景未覆盖。
独立分析的弱点
弱点一:威胁模型只覆盖复制与少量合并,未测试对抗性释义——攻击者用另一个 LLM 逐句改写水印技能即可洗掉绿词序列;改进方向是叠加语义层信号或对改写鲁棒的低频搭配统计。弱点二:碎片鲁棒性差,8 片时检出降到 77.8%,而真实泄漏常以零散片段扩散;可研究段落级聚合统计、或把窗口检测与局部敏感哈希指纹结合。弱点三:背景稀释导致假阳性通胀,多尺度 OR 融合 13 个成分决策反而抬高误报(最高 16.7%),且阈值在评测队列上调出 0.03332253 这种非常规数字,提示应改为经验校准或共形 p 值。弱点四:检测依赖逐 token 重建绿名单与分词一致性,PDF 导出、代码块重排等格式转换可能破坏词元对齐;可加入正则化容错分词或字符级回退方案。弱点五:成本高——束宽 5 的逐段重写本身昂贵,下游 token 最高 +29.3%、时间 +16.4%;可按跨度信息熵分配搜索预算,短跨度直接跳过。弱点六:功能无损的结论依赖单一裁判模型且每例只判 1 次,对裁判选择敏感,应做多裁判一致性或执行级验证。
未来方向
作者明确提出的方向:把窗口检测的标称概率换成经验校准(他们反复强调 independent calibration 的必要性);研究更大规模背景合并与更强稀释下的检测;把质量审计从盲评分数升级为执行级功能等价验证。基于成果可延伸的方向:(1) 多密钥溯源体系——为每个分发副本分配独立密钥并结合秘密共享,实现细粒度泄漏者识别;(2) 抗释义鲁棒水印,例如融合 SynthID-Text 式锦标赛采样或语义水印双通道信号,抵御改写攻击;(3) 扩展到多语言技能与以代码为主体的技能,当前豁免集与保留检查以英文散文为中心;(4) 把 token 变体分组推广为基于分词器等价类的自动分组,减少手工规则;(5) 与 AgentMark 的行为水印互补成端到端保护链——文本水印保护分发资产、行为水印保护执行痕迹;(6) 理论侧推导有限样本下窗口检测的假阳性上界,替代 Bonferroni 标称校正;(7) 在真实技能市场生态中评测盗版检测效果,包括爬虫式全网监测场景。
复现评估
复现透明度较高但未见官方代码开源声明(项目主页 https://fuxi-ailabs.github.io/SkillMarker/)。关键超参齐全:Qwen3-8B 嵌入、束宽 5、$\gamma=0.75$、$\delta=8$、哈希密钥 15485863、种子 123;评测用 DeepSeek-V4-Flash 经 Open Code 执行,每例 1 次裁判,bootstrap 10000 次/种子 20261010;复制粘贴与合并实验的窗口/步长/阈值与三组种子在附录 A 列明,嵌入提示词与成对示例全文在附录 B 公开。数据集均为公开来源:agent-skills、awesome-skills、marketingskills 是 GitHub 仓库,skill-use-bench 是 arXiv 论文。难点:束搜索嵌入需要 Qwen3-8B 权重与 logits 访问,DeepSeek-V4-Flash 评测调用量大(每数据集数百例、数十万 token),算力与 API 成本不小。总体属于中高难度复现:细节充分,但工程量大且无官方实现可对照。
论文图表
动机示意图:明文分发的智能体技能把宝贵的领域专长暴露给未授权复制与泄漏,SkillMarker 通过分发前嵌入水印提供所有权验证与泄漏溯源两种能力。
一图点明论文要解决的问题与产品定位:技能是知识资产,水印是防御手段,帮助读者在进入技术细节前建立整体图景。
定位评测热图:随拷贝长度与片段数变化的 token 级精度与召回;1536 词元连续片段召回 98.0–99.1%、精度 65.4–69.6%,碎片越分散定位越难(8 片段时检出降至 77.8%)。
泄漏溯源不仅要知道有没有拷贝,还要定位在哪里;这张图量化了方法定位能力的边界与碎片化弱点。
消融折中曲线:以指令质量(0–100)为横轴、平均 z 分数为纵轴,对比完整 SkillMarker(70.97, 3.01)与去掉保真约束(67.09, 3.37)、束搜索(76.06, 0.65)、信号导向选择(75.50, 0.69)、对数偏置(73.06, 0.83)、重构文本评分(70.00, 2.98)五个变体。
定量揭示质量-强度权衡是真实的:每个组件贡献什么、去掉后滑向曲线哪一端,为方法设计选择提供数据支撑。