今天分享上海交大的 LatentSkill 论文——它回答了一个被长期忽视的问题:Agent 的技能到底应该存在哪里?
技能的三难困境
LLM Agent 做复杂任务需要"技能"——可复用的任务策略、工具使用模式、错误恢复方法。当前有两种存储方式,但都有硬伤:
放在 prompt 里(In-Context Skill):每一步决策都要把技能文本塞进上下文。一个技能几百 token,多步交互下来,token 消耗爆炸,而且技能内容以明文暴露在 prompt 中——任何有权限看上下文的人(或攻击者)都能读出你的专有流程。
融进模型参数(微调/内化):技能变成权重的一部分,不用每步注入了。但技能和模型焊死了——想更新一个技能就得重新微调,想移除一个技能几乎不可能,想组合两个技能更是无从谈起。
LatentSkill 提出了第三种方式:把文本技能通过 hypernetwork 转化为 LoRA adapter,即插即用。技能知识存在权重空间,但权重是模块化的——可以加载、卸载、替换、缩放、组合。
方案:hypernetwork 一次生成 LoRA
整体架构
LatentSkill 的核心是一个"技能编译器"(skill compiler)——一个 Transformer 结构的 hypernetwork G_φ。给它一段技能文本 s,它一次前向传播生成一组 LoRA 更新:
Δ_s = G_φ(s)生成的 LoRA adapter 装到冻结的骨干 LLM 上,模型就能凭"任务历史"(而非技能文本)做决策:
p(y_t | h_t, s) = p_{θ ⊕ αΔ_s}(y_t | h_t)技能文本被消耗掉了,不再出现在 prompt 中。α 控制注入强度。
两阶段训练
第一阶段:文档预训练
用 171K 去重技能文档(约 300M tokens,来自 GitHub),训练 hypernetwork 把文本编码进权重的能力。每个文档随机执行两种任务之一:
- 重建:读完整文档 → 生成 LoRA → 冻结 LLM + LoRA 重建原文
- 补全:读截断文档 → 生成 LoRA → 冻结 LLM + LoRA 补全缺失部分
关键约束:技能文档只给 hypernetwork,不给骨干 LLM。所以预测目标所需的信息必须通过 LoRA 权重传递——这迫使 hypernetwork 学会"把文本语义编码进参数"。
第二阶段:轨迹微调
用教师轨迹(ALFWorld 5 个技能 + Search-QA 3 个技能)做 SFT。每个技能生成一个 LoRA adapter,在整条轨迹中共享同一个 adapter。目标函数让 adapter 捕获技能级别的、轨迹一致的策略信息,而非单步适配。
骨干 LLM 始终冻结,只训练 hypernetwork 参数 φ。
推理时:编译一次,缓存复用
技能库中的每个技能编译一次,缓存为 adapter。推理时,技能选择器选一个或多个技能,加载对应 adapter,不用再注入技能文本。
三个发现
论文最有价值的部分不是效率提升本身,而是对生成 LoRA 权重空间的三个性质分析——这暗示"权重空间技能"是一种独立的知识表示,而非简单的 prompt 压缩。
性质一:结构化——同域技能自动聚类
用 MDS 降维可视化 LoRA 权重:
- 域内技能:5 个 ALFWorld 技能和 3 个 Search-QA 技能自动形成两个可分离的簇,域内余弦相似度 0.982,跨域 0.910
- 域外技能:来自 GitHub 的 Code(18 个)、Finance(13 个)、Writing(11 个)技能也各自聚类,域内相似度均高于跨域
这说明 hypernetwork 把程序性文本映射到了语义组织的权重空间,而非随机映射。训练时没给域标签,聚类是自发形成的。
SFT 后,簇间距离缩小 20.6%(0.0887 → 0.0704),同时域内和跨域相似度都上升——说明 SFT 注入了共享的 Agent 行为模式,同时保留了技能特异结构。
性质二:可控——α 系数精确调出倒 U 曲线
对注入系数 α 从 0 扫到 1.2:
- α=0:冻结骨干,无技能,ALFWorld 成功率 43.57%
- α=0.6:最优,74.29%
- α=1.2:过载,22.86%
关键发现:任务越难(骨干基线越低),最优 α 越大。Pick 和 Pick2 用同一个技能,但 Pick2 骨干基线只有 23.53%(Pick 是 54.17%),Pick2 最优 α=0.8(Pick 是 0.6)。更强注入下 Pick2 达到 88.24%。
这暗示 α 不是简单的"开关",而是一个连续的技能强度旋钮——可以根据任务难度自适应调节。
性质三:可组合——组件级合并 > 直接合并 > 文本合并
用 Look(目标技能)+ Pick(辅助技能)做组合实验:
| 方法 | Seen | Unseen |
|---|---|---|
| Look-Only | 61.5% | 72.2% |
| Direct Merging(完整 LoRA 相加) | 69.2% | 61.1% |
| Text Merging(文本拼接后编译) | 61.5% | 61.1% |
| Component Merging(组件级合并) | 84.6% | 77.8% |
Direct Merging 为什么失败?两个技能的共享组件(通用行为 + 错误避免)被双重计算,权重过大。Text Merging 为什么失败?拼接后的文本是分布外的,hypernetwork 没见过这种输入。
Component Merging 的做法:先把每个技能分解为语义对齐的组件(如"通用搜索行为"、“Pick 专用策略”、“Look 专用策略”),分别编译,共享组件只保留一次,技能特异组件相加。对齐文本分解粒度和权重加法粒度——这是技能组合的核心原则。
效果
指标展示
| 指标 | In-Context Skill | LatentSkill | 变化 |
|---|---|---|---|
| ALFWorld Seen 成功率 | 52.9% | 74.3% | +21.4 |
| ALFWorld Unseen 成功率 | 56.0% | 69.4% | +13.4 |
| ALFWorld Prefill tokens | 1.21k/步 | 0.44k/步 | -64.1% |
| Search-QA Avg EM | 32.6% | 35.6% | +3.0 |
| Search-QA Skill token 开销 | 1.10k/步 | 0.31k/步 | -72.2% |
省了 token 还提升了效果——这违背"信息越多越好"的直觉。解释:技能文本在 prompt 中重复注入可能引发注意力稀释(Lost-in-the-Middle),而 LoRA 直接修改模型行为,避开了这个问题。
LatentSkill 还缩短了交互轨迹:Seen split 平均步数从 Vanilla 的 35.0 步降到 28.4 步——技能存在权重里,模型决策更果断。
安全性
| 攻击类型 | In-Context Skill | LatentSkill |
|---|---|---|
| Hijack(恶意指令注入) | 52.9% → 8.57% | 74.3% → 38.6% |
| Extract(技能提取) | 技能文本直接可见 | 需从权重反推 |
Hijack 攻击下,In-Context Skill 几乎瘫痪(8.57%),LatentSkill 保留 38.6%。原因:技能不在 prompt 中,恶意指令无法直接覆盖技能行为。Extract 攻击下,技能文本不再以明文存在——从 LoRA 权重反推出原始技能文档极其困难。
对于有专有技能的企业场景,这个安全属性可能比效率提升更有价值。
与相关工作的关系
- SKILL0(渐进撤退 prompt,把技能内化到参数):LatentSkill 的互补方案——SKILL0 不可逆,LatentSkill 即插即用
- Skill0.5(一半写参数一半留 prompt):LatentSkill 更激进——完全写进权重,不留 prompt
- SHINE/Text-to-LoRA/Doc-to-LoRA:同类 hypernetwork→LoRA 技术,但 LatentSkill 首次系统分析了权重空间的结构化/可控/可组合性质
小扬总结
如果你的技能库有大量长文本技能,LatentSkill 可以显著降低推理成本,同时提升安全性和性能。
技能可以以 LoRA adapter 形式分发——用户买了技能,获得的是一个加密的权重文件,而不是可复制的文本。这可能是技能商业化的技术基础。
权重空间技能的语义几何结构值得深挖——也许未来可以通过权重空间的距离计算技能相似度,用向量算术做技能组合,甚至用权重空间的流形结构做技能检索。
学AI大模型的正确顺序,千万不要搞错了
🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!
有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!
就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋
📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇
学习路线:
✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经
以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!
我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~