技术摘要:SkillZip
1. 问题陈述
自我演进智能体通过在技能人工制品(skill artifacts)中追加成功的流程、失败修复和警告来进行改进。然而,这一过程导致了文本增长与程序增长之间的系统性失配。随着智能体的演进,相同的需求往往会在多个分支、示例和警告中被反复陈述,常见的动作序列也被直接复制而非复用。
这导致了“技能膨胀”现象,即即使在真正的程序性内容趋于稳定后,技能长度仍会显著增加(在实验中观察到平均增长 5.2 倍)。这种冗余增加了预填充(prefill)成本,并掩盖了关键指令。现有方案面临以下局限性:
- 通用提示词压缩(Generic Prompt Compression): 将技能视为扁平文本,未能考虑到技能的结构化特性(接口、工作流、契约和作用域规则)。它们通常基于查询相关性而非程序必要性来移除 Token。
- 评估引导的压缩(如 SkillReducer): 依赖任务展开(rollouts)、奖励和行为验证器来验证压缩效果。这引入了高昂的计算成本、延迟,并依赖于特定的压缩时评估集,存在丢失未测试但关键的防护措施或约束的风险。
核心挑战在于:如何在不依赖下游任务、展开或验证器的情况下,通过合并重复结构来压缩演进后的技能,同时严格保留稀有的规则和独特的约束。
2. 方法论:SkillZip
SkillZip 是一种无需评估(evaluation-free)的方法,它通过寻找其“最短忠实结构解释”来压缩技能。其直觉是“解释一次,引用多次”:在适当的作用域内陈述重复的规则,将重复的序列归纳为共享程序,并仅将差异保留为显式异常。
A. 契约表示(The Contract Representation)
SkillZip 将技能形式化为一个类型的契约,C(S)=⟨I,G,T,C,O,E⟩,由以下部分组成:
- 接口 (I): 名称、用途、触发条件和排除项。
- 工作流 (G): 动作、顺序、决策、循环和回退。
- 工具协议 (T): 工具名称、参数、前置条件和错误处理。
- 作用域规则 (C): 具有特定作用域和守卫(guards)的义务与禁令。
- 输出契约 (O): 响应类型、必需字段和验证。
- 证据 (E): 与契约元素相关的示例和原理。
系统将技能文本解析为类型化的单元。如果某个片段无法被置信地解释,则将其视为“锁定残差”(locked residual)并原样保留以确保安全性。
B. 优化目标
压缩目标被公式化为一个最小描述长度(MDL)问题。系统寻求一个可复用的契约元素库 (K) 和一个残差 (R),以最小化总成本:
(K∗,R∗)=arg(K,R)min[L(K)+L(R∣K)]
并遵循硬覆盖约束(hard coverage constraint):每个提取的规范性需求(接口、工作流边缘、工具需求、规则、输出字段)必须被压缩表示所覆盖。这确保了即使某些规则在采样任务中出现频率较低,其独特的或稀有的规则也不会被删除。
C. 运行模式
SkillZip 以两种模式运行:
- 单次压缩(One-Shot Compression): 用于现有的演进技能检查点。它涉及确定性扫描器、受模式约束的契约提取、类型兼容的复用候选方案提议,以及一个确定性优化步骤(使用动态规划和加权打包)来选择最短的覆盖解释。
- 写时压缩(Zip-on-Write, 持续进行): 集成到自我演进循环中。当新的补丁到达时,它会与当前的紧凑契约进行比较。系统决定是吸收(重述)、精炼(添加守卫/异常)、扩展(添加新需求)还是重构(创建新的抽象)。这避免了重新执行任务或重新解析完整的历史记录。当累积的补丁产生了新的跨作用域复用机会时,会进行周期性的“重打包”。
3. 核心贡献
- 无需评估的公式化: 本文将技能压缩定义为一个专为演进技能设计的契约表示问题,从而无需在压缩过程中使用下游任务、展开或验证器。
- 最短忠实解释目标: 一个统一的目标,平衡了语义共享、作用域提升、工作流复用和异常编码。至关重要的是,硬覆盖约束保证了即使不依赖任务频率也能保留稀有规则。
- 双模式架构: 设计了用于批量压缩的 One-Shot SkillZip 和用于持续演进的 Zip-on-Write,后者能够维持紧凑的状态并避免完整的历史重解析。
- 实证验证: 通过实验证明了与基准方法相比,在压缩性能、泛化能力和效率方面取得了显著收益。
4. 实验结果
作者在三个基准测试(BFCL-v4 Web Search, LiveMathematicianBench, SpreadsheetBench)上评估了 SkillZip,并使用了三种智能体骨干网络(Qwen3.7-Max, Qwen3.6-Plus, Kimi K2.6)。
- 技能增长 (RQ1): 自我演进导致技能长度单调增长,平均达到初始大小的约 5.2 倍,证实了压缩的必要性。
- 保真度与性能 (RQ2): SkillZip 实现了平均 31.2% 的压缩率(范围从 27.1% 到 36.9%)。尽管在压缩过程中未使用任何评估数据,但它保留或略微提升了任务性能(相比于未压缩的演进技能,宏平均分从 0.570 提升至 0.577)。它在压缩率和任务性能上均优于基准方法 SkillReducer。
- 效率 (RQ3): SkillZip 比 SkillReducer 快 3.5 倍。SkillReducer 需要针对每个压缩进行 40–80 次任务展开以进行验证,而 SkillZip 无需任何展开,而是依赖于结构化提取和确定性优化。
- 泛化性 (RQ4): 由 SkillZip 压缩的技能显示出更高的跨模型保留率(LiveMath 上为 0.97),高于 SkillReducer(0.91),这表明显式的结构化保留有助于实现模型无关的执行。
- 持续压缩 (RQ5): 从演进开始时激活 Zip-on-Write,将技能增长限制在种子长度的 1.6×–1.9× 之间,而如果不进行压缩,增长则为 2.5×–3.7×。这证实了预防冗余比事后移除冗余更高效,且不存在准确性权衡。
5. 重要性与主张
本文声称 Skill-Zip 解决了自我演进智能体的一个关键瓶颈:即积累了增加成本却不产生价值的冗余程序性文本。通过将范式从“内容过滤”转向“知识整合”,SkillZip 提供了一种让智能体实现“在不遗忘程序的前提下遗忘重复”的机制。
其重要性在于其无需评估的特性。通过依赖技能的内部结构而非外部任务分布,SkillZip 避免了与评估引导方法相关的成本和过拟合风险。它通过硬覆盖约束保证了稀有但关键约束的保留,确保压缩后的技能仍然是忠实的、可执行的且人类可读的人工制品。作者将其定位为在持续学习系统中维护可扩展技能人工制品的实用且可靠的方法。