跳到正文
12 分钟阅读

如何去“偷”Agent 的能力?

但一个越来越现实的问题是:即使模型权重、系统提示词和私有 Skill 都没有泄漏,只要别人能够观察 Agent 是怎么完成任务的,它有没有可能把这种“做事能力”学走?

2026/09/24

过去讨论大模型能力泄漏时,我们首先想到的是偷模型、偷系统提示词,或者把 Agent 背后的 Skill 套出来。

但一个越来越现实的问题是:即使模型权重、系统提示词和私有 Skill 都没有泄漏,只要别人能够观察 Agent 是怎么完成任务的,它有没有可能把这种“做事能力”学走?

西安交通大学等机构近期发表的论文 AgentLeak: Cloning Stronger LLM Agent Capabilities onto Weaker Agents Beyond Skill Stealing,研究的正是这个问题。

图1

论文原文(arXiv)

论文发现,答案可能是肯定的。

攻击者不需要复制强 Agent 的模型,也不需要拿到它的内部思维过程,只需要观察有限的执行轨迹,再拿这些轨迹与自己的失败过程进行比较,就有可能找出自己“少会了什么”,再把这些经验重新写进 Skill。

最终,一个原本任务通过率只有约 20% 的弱 Agent,可以提升到 70% 甚至 80% 左右。

更值得关注的是,这篇论文真正要“偷”的并不是某个文件,而是一个更抽象的东西:

Agent 完成任务的能力。

拿到了 Skill,为什么还是不会做?

先从论文一个很有意思的实验说起。

作者使用 Codex + GPT-5.5 作为强 Agent,在实验任务上的通过率达到 80.44%;攻击者则使用 OpenHands + Qwen3.6-35B-A3B,通过率只有 21.13%。

那么,最直接的办法是什么?

把强 Agent 使用的 Skill 给弱 Agent。

结果弱 Agent 的通过率确实提高了,但只到了 30.64%。即使进一步使用 Trace2Skill,把执行轨迹总结成新的 Skill,也只有 34.96%。

也就是说:

把“高手的说明书”完整交给新手,新手依然做不好。

原因并不难理解。

假设一家公司的资深员工写了一份工作手册:

收集数据
↓
分析数据
↓
生成报告
↓
检查报告
↓
提交。

这份流程看起来已经很完整,但真正执行时仍然有大量没有写进去的经验。

比如遇到数据缺失时应该先补数据还是跳过?分析结果异常时需不需要重新计算?文件生成以后应该检查哪些字段?工具报错后是换工具还是修改参数?

这些行为对于熟练员工来说可能是“下意识”的,因此根本没有写进工作手册。

Agent 也是一样。

Skill 通常规定的是:

“应该做什么。”

但真正决定任务能不能成功的,还有:

“具体应该怎么做。”

论文把两者之间的差距称为 Skill Execution Gap,也就是 Skill 执行鸿沟。

图2

强模型在任务拆解、工具选择、环境反馈理解、结果验证和错误恢复等方面,可能天然比弱模型做得更好。这些知识没有明确写在 Skill 中,却真实存在于一次次执行过程里。

真正泄漏能力的,可能是 Agent 的执行过程

乍一看,这种“执行鸿沟”似乎反而是一种保护机制。

即便你偷走了我的 Skill,你的模型不够强,还是复制不了我的能力。

AgentLeak 恰恰发现:

这个鸿沟本身,也会泄漏信息。

假设强 Agent 和弱 Agent 都执行同一个任务。

强 Agent 的过程可能是:

读取文件
↓
检查格式
↓
清洗异常值
↓
计算
↓
生成文件
↓
重新读取文件
↓
验证结果
↓
提交。

而弱 Agent 是:

读取文件
↓
计算
↓
生成文件
↓
提交。

最后强 Agent 成功,弱 Agent 失败。

如果把两条执行轨迹放在一起比较,一个非常有价值的信息就出现了:

强 Agent 在生成结果后,多进行了一次验证。

如果这种现象在多个任务中反复出现,攻击者就可以逐渐推测:

“结果验证”很可能不是一个偶然动作,而是成功完成这类任务必不可少的能力。

于是攻击者可以把这条经验明确写进自己的 Skill:

生成结果以后,必须重新读取产物并检查关键字段;如果验证失败,则修正后重新执行。

原本只存在于强 Agent 行为里的隐性经验,就这样被“抄”了出来。

论文因此提出了一个很重要的判断:

可观察的执行行为,本身就是一种能力泄漏面。

攻击者不一定需要知道 Agent “脑子里想了什么”,只要能看到工具调用、工具输出、环境反馈以及最终结果,就可能逐步反推出它“为什么能把事情做成”。

图3

AgentLeak 怎么把这种能力“偷”出来?

AgentLeak 的整个攻击过程,其实很像一种针对 Agent 的自动化复盘与补课机制。

它不是简单记录强 Agent 每一步点了什么按钮,然后让弱 Agent照抄,而是试图回答:

强 Agent 为什么成功,而我的 Agent 为什么失败?

整个过程可以理解成四个环节。

第一步,是把成功轨迹抽象成工作流。

一次具体执行中可能出现某个文件名、某段代码、某个参数,这些信息换一个任务就没有意义。AgentLeak 因此首先把具体行为抽象成更通用的工作流,例如:

获取输入
↓
检查输入
↓
完成核心处理
↓
验证中间结果
↓
生成产物
↓
最终检查。

也就是说,它并不是复制一次操作录像,而是在试图整理出:

“这类事情通常应该按照什么结构完成。”

第二步,是比较强弱 Agent 的执行差异。

弱 Agent 自己执行同一个任务。如果失败,AgentLeak 就把它的轨迹与强 Agent 的成功轨迹进行对照。

关键不是寻找所有不同,而是找到那些真正导致任务失败的不同。

比如强 Agent 和弱 Agent 可能用了不同的命令,但最终效果完全一样,这种差异没有价值;真正值得记录的是:

弱 Agent 缺少输入校验,因此使用了错误数据。

或者:

弱 Agent 遇到工具报错后直接结束,而强 Agent 会尝试修复。

论文把这个过程称为差异化能力缺陷诊断。

第三步,是把失败原因提炼成可以复用的“行为原语”。

例如一次失败可以总结为:

“生成文件后没有检查文件内容。”

但真正可以复用的经验应该是:

对于包含明确验收条件的任务,在提交产物前重新读取结果,并逐项验证关键约束。

前者只是一次错误记录,后者才是一条可以迁移到大量任务中的程序性经验。

最后一步,是把这些经验写回 Skill。

AgentLeak 不会每次重新生成一整套 Skill,而是尽量进行局部修改:缺什么就补什么,哪个流程有问题就修改哪个流程。

修改后再次运行弱 Agent,如果仍然失败,就继续比较、诊断和修补。

于是形成一个循环:

执行
↓
找差距
↓
提炼经验
↓
修改 Skill
↓
再执行。

经过几轮以后,原来依赖强模型自己“悟出来”的隐式经验,被逐渐翻译成弱模型也能按照步骤执行的显式 Skill。

图4

实验结果

为了验证这种方法,论文从 SkillsBench 中选取了 20 类任务场景、共 600 个任务实例,覆盖办公、软件工程、金融、自然科学、工业系统和形式化推理等领域。

每个任务场景包含 30 个实例,但攻击者只使用其中 1 个实例来重构能力,剩下的 29 个实例全部留作测试。

换句话说,它并不是把某一道题的答案记住,再回来重复做这道题,而是要验证:

从一个任务里总结出来的经验,能不能迁移到同类型的新任务。

结果非常明显。

以 Qwen3.6-35B-A3B 为攻击者为例,它原本没有 Skill 时的通过率只有 21.13%;直接拿到 Skill 后是 30.64%;使用 Trace2Skill 后是 34.96%。

而使用 AgentLeak 后,根据被模仿的强 Agent 不同,通过率达到 71.94%~80.16%。

另一套 Gemma 4-31B 弱 Agent 也出现了类似结果,通过率从原来的 14.94% 提升到约 70%~84%。

论文还设计了一个指标叫 Capability Recovery Rate(能力恢复率,CRR),衡量的是:

强 Agent 比弱 Agent 多出来的那部分能力,到底被恢复了多少。

很多实验中的 CRR 超过了 100%。

这并不是说弱模型突然“比强模型更聪明了”,而是意味着:经过整理后的 Skill,把原来强 Agent 隐式完成的一些工作明确写了出来,因此在这个特定任务场景中,弱 Agent 反而可能获得一套更加清晰、稳定的执行流程。

消融实验

论文分别拿掉 AgentLeak 的几个核心模块,观察攻击能力会下降多少。

完整 AgentLeak 的能力恢复率约为 95.5%。

如果去掉差异诊断,下降到 61.77%;如果不用结构化 Skill 修改,则下降到 30.5%。

但最夸张的是:

去掉“工作流抽象”以后,能力恢复率只剩 2%。

这意味着 AgentLeak 真正学到的,并不只是:

“高手用了某一个工具。”

它更重要的是学到了:

高手是如何把整个任务组织起来的。

什么时候检查输入、什么时候调用工具、什么时候验证结果、什么时候判断失败、什么时候回退重做……

这些步骤组合起来,才形成真正的程序性能力。

从这个角度看,Agent 的核心资产可能并不只是几个 Skill 文件。

“如何组织任务”本身,可能就是最有价值的能力资产。

偷出来的能力,还可以换一个 Agent 使用

更值得警惕的是,这些重新整理出来的 Skill 并不完全依赖原来的弱 Agent。

作者把 AgentLeak 重构出的 Skill 冻结下来,不再访问强 Agent,然后尝试换模型、换 Agent 框架。

结果发现:

  • 只换模型时,能力恢复率达到 86.16%
  • 只换 Agent Harness 时,达到 107.15%
  • 模型和 Harness 同时更换时,仍然达到 104.87%

这说明它提炼出来的很可能并不是:

“Qwen 在 OpenHands 里应该怎么操作。”

而是一种更加独立的:

“完成这类任务通常应该怎么做。”

一旦这些程序性经验被显式化,就可以像普通 Skill 一样迁移到其他 Agent 系统中。

这也是为什么“能力泄漏”比单纯的 Skill 泄漏更加值得关注。

Skill 是一个文件,可以加密、隐藏或者限制访问。

但能力是 Agent 在运行过程中表现出来的行为模式。

只要系统需要不断与外部环境交互,这些模式就很难做到完全不可见。

只保护 Skill,可能已经不够了

传统的 Agent 资产保护思路,大多关注静态对象:

模型权重不能泄漏

系统提示词不能泄漏

私有 Skill 不能泄漏

内部知识库不能泄漏

论文测试了多种类似防御手段,包括输入检测、SkillGuard 和输出语义过滤。

结果虽然能够降低 AgentLeak 的效果,却没有真正阻止能力重构。比如没有防御时能力恢复率为 95.44%,使用 SkillGuard 后仍然达到 77.22%,语义输出过滤后仍然有 88.34%。

原因很简单:

这些防御保护的是 Skill,而攻击者真正观察的是行为。

论文中效果最好的是直接隐藏一部分执行轨迹,例如删除中间工具调用信息。这样能力恢复率下降到了 73.23%。

效果明显更好,但依然没有解决问题。

这说明 Agent 安全可能需要增加一个过去并没有被特别重视的问题:

哪些执行信息真的应该暴露给用户?

因为 Agent 与传统聊天机器人不同。

聊天机器人的主要输出可能就是一段文字;Agent 却会执行一整串任务:

调什么工具、以什么顺序调用、遇到异常怎么办、如何验证、什么时候重新执行……

这些信息既是可观测性的一部分,也可能包含企业花费大量工程成本积累的“做事经验”。

图5

但 AgentLeak 还不能真的“一眼学会所有能力”

这篇论文的结果很亮眼,但也需要避免过度解读。

首先,AgentLeak 依赖一定程度的执行可观测性。如果一个商业 Agent 只返回最终答案,所有工具调用、中间状态和执行轨迹全部隐藏,那么这种差异诊断会困难得多。

其次,它能够复制的主要是程序性能力。如果一个 Agent 的优势来自独占数据库、专有 API、特殊硬件或者模型内部知识,那么光看执行过程并不能把这些资产一起复制走。

另外,论文虽然只用一个实例完成能力重构,再使用 29 个未见实例进行测试,但这 30 个实例仍然属于同一个任务场景,共享类似的流程和验收要求。

因此论文证明的更准确说法是:

观察少量执行过程,可以恢复同类任务中的大量程序性能力。

而不是看一次 Agent 工作,就能把一个通用 Agent 的全部能力完整复制下来。

还有一个容易忽略的细节:论文使用了 GPT-5.6 作为分析助手,负责工作流抽象、差异诊断、行为原语提取以及 Skill 修改。这个模型只在能力重构阶段使用,重构完成之后不再需要。

所以这里并不是简单的:

“一个弱模型自己学会了强模型的能力。”

更准确地说是:

攻击者可以临时借助强分析模型,把另一个强 Agent 的执行经验压缩成 Skill,之后再把这些 Skill 长期部署到成本更低的弱模型上。

论文给出的平均重构成本约为每个任务场景 6.32 美元,平均需要约 6.34 次攻击者执行和 7.34 次辅助模型调用,整个过程约一小时。

从“偷文件”,走向“偷做事的方法”

AgentLeak 真正有价值的地方,或许并不是又找到了一种 Skill 窃取方法。

恰恰相反,它说明:

即使 Skill 没有被偷,能力仍然可能泄漏。

过去,我们更习惯把模型、系统提示词、Skill、知识库看作 Agent 的核心资产,因为这些东西都能够被保存成某种静态内容。

但 Agent 时代出现了一类新的资产:

它知道该如何完成一件事情。

这种知识并不一定完整地写在任何一个文件中,而是分散在任务拆解、工具使用、结果验证、异常恢复和长期工程调优形成的执行习惯里。

它只有在 Agent 真正开始工作时才表现出来。

而 AgentLeak 告诉我们:

只要这些行为能够被持续观察,就可能被反向整理成新的 Skill。

因此,未来 Agent 的机密性边界可能需要从:

模型、Prompt、Skill

进一步扩展到:

执行行为和任务能力。

过去我们关心的是:

“攻击者能不能控制 Agent 的执行轨迹?”

现在还需要多问一个问题:

“攻击者能不能通过观察这条轨迹,把 Agent 的能力学走?”

这可能也是 Agent 逐渐进入真实业务之后,一个越来越难回避的新安全问题。

同专题推荐

查看专题