【论文阅读】Agent 记忆机制(86):Skill-Pro——用 Non-Parametric PPO 将交互经验演化为可复用技能

文章目录

  • 前言
  • 零、论文基本信息
  • 一、背景与问题:为什么保存轨迹还不等于学会技能
    • [1. Agent 的经验复用仍然很"费脑"](#1. Agent 的经验复用仍然很“费脑”)
    • [2. 从情景记忆转向程序性记忆](#2. 从情景记忆转向程序性记忆)
    • [3. 建立可复用程序性记忆的三个障碍](#3. 建立可复用程序性记忆的三个障碍)
      • [3.1 Executability:经验能否直接执行](#3.1 Executability:经验能否直接执行)
      • [3.2 Reusability:技能是否真的可复用](#3.2 Reusability:技能是否真的可复用)
      • [3.3 Non-Parametric Optimization:不微调模型如何学习](#3.3 Non-Parametric Optimization:不微调模型如何学习)
  • 二、相关工作:从保存经验到形成可执行程序
    • [1. 参数化经验学习](#1. 参数化经验学习)
    • [2. 原始轨迹记忆](#2. 原始轨迹记忆)
    • [3. 摘要、反思与经验原则](#3. 摘要、反思与经验原则)
    • [4. 结构化记忆与工作流](#4. 结构化记忆与工作流)
    • [5. 与 TokMem 的区别](#5. 与 TokMem 的区别)
  • 三、方法总览
  • 四、Skill-MDP:把程序性记忆放进决策过程
    • [1. 为什么需要 Skill-MDP](#1. 为什么需要 Skill-MDP)
    • [2. 分层决策](#2. 分层决策)
  • [ \\pi_{\\Omega}(\\omega_t,a_t\\mid s_t)](# \pi_{\Omega}(\omega_t,a_t\mid s_t))
    • [3. 优化目标](#3. 优化目标)
  • [ \\Omega_{\\mathrm{new}}](# \Omega_{\mathrm{new}})
  • 五、一项技能由什么组成
    • [1. 激活条件 I ω \mathcal{I}{\omega} Iω:什么时候使用](#1. 激活条件 I ω \mathcal{I}{\omega} Iω:什么时候使用)
    • [2. 执行过程 π ω \pi_{\omega} πω:激活后怎么做](#2. 执行过程 π ω \pi_{\omega} πω:激活后怎么做)
    • [3. 终止条件 β ω \beta_{\omega} βω:什么时候交回控制权](#3. 终止条件 β ω \beta_{\omega} βω:什么时候交回控制权)
    • [4. 三段式结构为什么重要](#4. 三段式结构为什么重要)
  • 六、技能选择:先匹配,再考虑预期收益
    • [1. 基于相似度](#1. 基于相似度)
    • [2. 基于价值](#2. 基于价值)
  • 七、语义梯度:把失败轨迹变成结构化修改方向
    • [1. 普通总结为什么不够](#1. 普通总结为什么不够)
    • [2. 单轨迹语义梯度](#2. 单轨迹语义梯度)
  • [ g_i](# g_i)
  • \nabla_{\mathrm{sem}}(\tau_i,\omega)
    • [3. 批量聚合](#3. 批量聚合)
  • [ \\bar g_{\\omega}](# \bar g_{\omega})
    • [4. 生成候选技能](#4. 生成候选技能)
    • [5. 语义梯度仍然不可靠](#5. 语义梯度仍然不可靠)
  • [八、PPO Gate:不用真正上线候选,也能先检查策略偏移](#八、PPO Gate:不用真正上线候选,也能先检查策略偏移)
    • [1. 验证问题](#1. 验证问题)
    • [2. 重要性比率](#2. 重要性比率)
  • [ \\rho_t(\\omega')](# \rho_t(\omega'))
    • [3. 优势估计](#3. 优势估计)
    • [4. PPO 风格裁剪目标](#4. PPO 风格裁剪目标)
  • [ L\^{\\mathrm{CLIP}}(\\omega')](# L^{\mathrm{CLIP}}(\omega'))
    • [5. Best-of- N c N_c Nc 与准入条件](#5. Best-of- N c N_c Nc 与准入条件)
  • [ \\omega_{\\mathrm{new}}](# \omega_{\mathrm{new}})
  • 九、在线评分:通过验证的技能也不一定值得长期保留
    • [1. 为什么 PPO Gate 之后还需要评分](#1. 为什么 PPO Gate 之后还需要评分)
    • [2. 技能收益](#2. 技能收益)
  • [ G(\\omega;\\tau)](# G(\omega;\tau))
    • [3. 在线分数更新](#3. 在线分数更新)
  • [ \\operatorname{Score}_{b+1}(\\omega)](# \operatorname{Score}_{b+1}(\omega))
    • [4. 淘汰规则](#4. 淘汰规则)
  • 十、实验设置
  • [ \\operatorname{Reuse}_{\\mathrm{in}}](# \operatorname{Reuse}_{\mathrm{in}})
  • 十一、主实验一:技能是否真的会被复用
    • [1. 复用率](#1. 复用率)
    • [2. 存储与执行开销](#2. 存储与执行开销)
  • 十二、主实验二:高复用和高压缩是否牺牲任务表现
    • [1. 跨任务结果](#1. 跨任务结果)
    • [2. 跨模型结果](#2. 跨模型结果)
  • 十三、消融实验:每个模块到底在防什么问题
    • [1. 去掉 Skill](#1. 去掉 Skill)
    • [2. 去掉 NP-PPO](#2. 去掉 NP-PPO)
    • [3. 去掉语义梯度](#3. 去掉语义梯度)
    • [4. 去掉 PPO Gate](#4. 去掉 PPO Gate)
    • [5. 去掉在线评分](#5. 去掉在线评分)
    • [6. 训练曲线](#6. 训练曲线)
  • 十四、技能如何演化:从多个候选分支收敛到稳定版本
  • 十五、技能能否跨难度、跨模型保持相同含义
  • [十六、函数调用实验:程序性技能能否迁移到 Tool Agent](#十六、函数调用实验:程序性技能能否迁移到 Tool Agent)
  • [十七、效率分析:816 Token 很小,但学习过程并非免费](#十七、效率分析:816 Token 很小,但学习过程并非免费)
    • [1. 部署时的记忆非常紧凑](#1. 部署时的记忆非常紧凑)
    • [2. 推理开销低于多数记忆方法](#2. 推理开销低于多数记忆方法)
    • [3. 学习阶段需要多次 LLM 调用](#3. 学习阶段需要多次 LLM 调用)
    • [4. PPO Gate 依赖 log probability](#4. PPO Gate 依赖 log probability)
  • 十八、失败案例与证据边界
    • [1. 抽象技能可能丢失任务细节](#1. 抽象技能可能丢失任务细节)
    • [2. 离线 PPO Gate 不能保证真实上线收益](#2. 离线 PPO Gate 不能保证真实上线收益)
    • [3. 语义梯度依赖 LLM 的错误归因能力](#3. 语义梯度依赖 LLM 的错误归因能力)
    • [4. 复用率容易受记忆粒度影响](#4. 复用率容易受记忆粒度影响)
    • [5. 技能选择器不是本文重点](#5. 技能选择器不是本文重点)
    • [6. 显式自然语言技能仍需模型重新解释](#6. 显式自然语言技能仍需模型重新解释)
  • [十九、与已有 Agent Memory 方法的横向比较](#十九、与已有 Agent Memory 方法的横向比较)
  • [二十、对 Coding Agent、Tool Agent 与 Multi-Agent 的启发](#二十、对 Coding Agent、Tool Agent 与 Multi-Agent 的启发)
    • [1. Coding Agent:从修复轨迹中演化仓库级技能](#1. Coding Agent:从修复轨迹中演化仓库级技能)
    • [2. Tool Agent:让工具经验成为有生命周期的程序](#2. Tool Agent:让工具经验成为有生命周期的程序)
    • [3. Multi-Agent:把协作协议作为技能](#3. Multi-Agent:把协作协议作为技能)
    • [4. 与显式规则和测试结合](#4. 与显式规则和测试结合)
  • 二十一、论文局限性
    • [1. 技能仍是显式自然语言](#1. 技能仍是显式自然语言)
    • [2. PPO Gate 的 API 兼容性有限](#2. PPO Gate 的 API 兼容性有限)
    • [3. 缺少完整学习成本](#3. 缺少完整学习成本)
    • [4. 基准仍然有限](#4. 基准仍然有限)
    • [5. 奖励归因较粗](#5. 奖励归因较粗)
    • [6. 技能池容量和粒度依赖设计](#6. 技能池容量和粒度依赖设计)
    • [7. 离线可信区间不是单调改进保证](#7. 离线可信区间不是单调改进保证)
    • [8. 安全、隐私和技能投毒尚未讨论](#8. 安全、隐私和技能投毒尚未讨论)
  • 二十二、我的理解与启发
    • [1. Skill-Pro 的本质不是"让 LLM 写工作流"](#1. Skill-Pro 的本质不是“让 LLM 写工作流”)
    • [2. Non-Parametric PPO 是"文本程序的版本控制器"](#2. Non-Parametric PPO 是“文本程序的版本控制器”)
    • [3. 程序性记忆需要双重证据](#3. 程序性记忆需要双重证据)
    • [4. 记忆压缩不是越强越好](#4. 记忆压缩不是越强越好)
    • [5. 与 TokMem 可以形成"学习---编译"流水线](#5. 与 TokMem 可以形成“学习—编译”流水线)
    • [6. 真正难点会从"记住什么"转向"什么时候固化"](#6. 真正难点会从“记住什么”转向“什么时候固化”)
  • 二十三、总结
  • 参考资料

前言

当 Agent 第一次遇到一个复杂任务时,从头分析、不断试错是合理的。

但如果它已经完成过几十次类似任务,仍然每次都重新阅读历史轨迹、重新推导行动步骤,那么过去的经验并没有真正变成能力,只是变成了一本越来越厚的"历史记录"。

例如,一个 Agent 曾经多次在冰箱中取出食材。它的记忆中可能保存着这样的完整轨迹:

text 复制代码
走到冰箱
尝试拿番茄
环境提示冰箱还没有打开
打开冰箱
再次拿番茄
成功

传统情景记忆系统会在下次遇到类似任务时检索这段经历,再让 LLM 重新理解:原来在拿取物品之前,应该先检查容器是否已经打开。

但人类熟练之后通常不会回忆整段经历,而会形成一项更短、更直接的程序性技能:

在执行动作前,先检查当前环境是否满足动作的前置条件;如果不满足,先完成前置动作。

两者的区别在于:

  • 情景记忆保存"过去发生了什么";
  • 程序性记忆保存"遇到这种情况应该怎么做"。

在此前的 Agent Memory 系列中,A-MEM、MAGMA 等方法主要改进事实、事件和经验的组织与检索;ReasoningBank、Expel 等工作开始将轨迹提炼为原则或经验;工作流记忆则尝试直接保存完成任务的路径。这些方法不断减少原始轨迹中的冗余,却仍面临一个关键问题:怎样确保由 LLM 写出的技能不仅看起来合理,而且能够在未来任务中稳定复用?

Skill-Pro 的重点正是在这里。

它先把技能定义为包含激活条件、执行步骤和终止条件的可执行单元,再提出一种不更新模型参数的 Non-Parametric PPO:从失败轨迹中生成自然语言"语义梯度",据此改写技能候选;随后利用冻结 LLM 对历史动作的 log probability 构造 PPO Gate,只允许通过可信区间验证的候选进入技能池;最后根据在线收益持续淘汰低质量和重复技能。

因此,这篇论文的唯一核心增量可以概括为:

Skill-Pro 将 PPO 的"提出更新---限制策略偏移---保留有效改进"思想迁移到外部文本技能上,使 Agent 能够在不更新 LLM 参数的情况下,从交互轨迹中生成、验证并持续维护真正可复用的程序性记忆。

Skill-MDP、语义梯度、PPO Gate 和在线评分并不是四个并列技巧,而是一条完整的技能学习链:Skill-MDP 定义要学习什么,语义梯度负责提出修改方向,PPO Gate 负责过滤不可信修改,在线评分则决定哪些技能值得长期留下。


零、论文基本信息


一、背景与问题:为什么保存轨迹还不等于学会技能

1. Agent 的经验复用仍然很"费脑"

很多记忆增强 Agent 使用相似的流程:

text 复制代码
存储过去轨迹
  ↓
根据当前状态检索相关轨迹
  ↓
把轨迹放进 Prompt
  ↓
LLM 阅读、解释并重新推理
  ↓
生成下一步动作

这种方法确实能利用历史信息,但每次复用都要重新解释大量上下文。即使过去已经验证过某种解决方式,Agent 仍要在决策时重新"想一遍"。

在长时程任务中,这会带来三个问题:

  1. 检索结果占用大量上下文;
  2. 复杂轨迹需要额外推理才能转化为当前行动;
  3. 每次重新解释都可能引入新的理解偏差和错误。

2. 从情景记忆转向程序性记忆

论文用 Figure 1 直观区分两种记忆形态。

Figure 1:情景记忆与程序性记忆。 情景记忆像一本历史书,需要经过"检索---解释---推理---行动";程序性记忆则像可执行脚本,能够把当前情境直接映射为行动策略。

这里的程序性记忆并不是模型参数中的隐式习惯,而是一段结构化、可读的自然语言技能。它比原始轨迹更短,也比抽象原则更接近实际行动。

3. 建立可复用程序性记忆的三个障碍

论文将问题归纳为三个挑战。

3.1 Executability:经验能否直接执行

原始轨迹只是对过去事件的描述。它可能包含失败、重复动作、环境反馈和无关探索,并没有明确说明:

  • 在什么状态下调用;
  • 应依次执行哪些步骤;
  • 什么时候结束并把控制权交回 Agent。

如果没有这些边界,所谓技能仍然只是一段参考材料。

3.2 Reusability:技能是否真的可复用

LLM 很容易生成一段"看起来正确"的总结,但语言合理不等于行为有效。由一次失败轨迹归纳出的技能可能过度拟合当前任务,也可能包含幻觉规则,甚至在新状态中降低性能。

因此,生成技能之后还必须回答:如何在真正加入记忆池之前验证它?

3.3 Non-Parametric Optimization:不微调模型如何学习

强化学习可以通过参数更新学习策略,但训练成本高,也可能损害通用能力。Skill-Pro 希望冻结 LLM,只修改外部技能文本。

于是,"优化"不再意味着计算模型参数梯度,而是要找到一种对自然语言程序进行稳定更新的方法。


二、相关工作:从保存经验到形成可执行程序

1. 参数化经验学习

RL、SFT、DPO 等方法把经验写入模型参数。优势是执行时无需检索长文本,但代价包括:

  • 训练与部署成本高;
  • 不同任务之间可能相互干扰;
  • 持续训练容易灾难性遗忘;
  • 很难解释某项技能究竟存在哪里。

Skill-Pro 完全冻结决策模型,把技能保存在外部池中,因此不会改变基础模型的通用参数。

2. 原始轨迹记忆

RAG 式 Agent 保存并检索完整交互轨迹。它保留细节最多,却也是最冗长的形式。检索到过去轨迹之后,模型还要自行判断哪些动作值得复用、哪些失败不应重复。

3. 摘要、反思与经验原则

Expel、ReasoningBank 等方法从成功或失败中提炼原则、反思或策略。它们比原始轨迹更紧凑,也能实现一定程度的跨任务迁移。

但高层原则往往只告诉模型"应该注意什么",未必明确说明何时触发、如何连续执行以及何时退出。

4. 结构化记忆与工作流

A-MEM、G-Memory 等方法通过关联网络或分层结构组织记忆;AWM 等方法保存显式工作流。它们提高了可检索性和流程复用能力,但预先构造的工作流可能僵化,自动生成的新工作流也缺少可靠的行为验证机制。

Skill-Pro 的区别不只是"也保存工作流",而是将每项技能放进一个持续优化过程:候选来自真实轨迹中的失败归因,进入记忆池前还要通过基于动作概率的 PPO Gate。

5. 与 TokMem 的区别

TokMem 同样研究程序性记忆,但它关注的是表示与调用:把一项程序压缩成一个专用 Token,通过模型生成该 Token 来路由和控制行为。

Skill-Pro 关注的是形成与演化:怎样从交互经验中自动发现技能、改写技能、验证候选并淘汰低质量版本。

两者分别回答:

text 复制代码
Skill-Pro:一项可靠技能应该怎样从经验中学出来?
TokMem:一项已经学会的程序应该怎样被紧凑表示和调用?

三、方法总览

在拆解公式之前,先看 Skill-Pro 的完整闭环。

Figure 2:Skill-Pro 方法总览。 左侧 Skill-MDP 负责选择并执行技能,中间技能池进行生成、改写和淘汰,右侧 Non-Parametric PPO 通过语义梯度提出候选,再由 PPO Gate 验证候选是否值得进入技能池。

整个系统可以分成四个阶段。

阶段一:选择并执行技能

Agent 根据当前状态匹配技能的激活条件。选中后,冻结的 LLM 按技能中的执行步骤连续生成底层动作,直到满足终止条件。

阶段二:收集交互轨迹

环境返回状态和奖励,系统保存本轮轨迹。轨迹不仅记录成功动作,也包含无效动作、失败反馈和技能参与的时间区间。

阶段三:演化技能

LLM 对每条轨迹进行事后归因,判断问题来自激活条件、执行步骤还是终止条件,并产生自然语言修改建议。多条建议经过聚合后,用来生成若干候选技能。

阶段四:验证与维护

PPO Gate 使用冻结 LLM 的动作 log probability 估计候选技能是否更偏向高优势动作,同时限制相对旧技能的剧烈偏移。通过验证的最佳候选进入技能池,在线评分随后淘汰低收益和重复技能。

这形成一个闭环:

text 复制代码
技能执行 → 产生轨迹 → 诊断问题 → 改写技能
   ↑                                  ↓
在线保留高收益技能 ← PPO Gate 验证候选

四、Skill-MDP:把程序性记忆放进决策过程

1. 为什么需要 Skill-MDP

如果技能只是一段放在 Prompt 中的建议,它何时生效、持续多久、什么时候退出都不明确。论文因此把技能提升为决策过程中的时间扩展动作。

Skill-MDP 定义为:

M Ω = ( S , A , Ω , P , R , γ ) \mathcal{M}_{\Omega}=(\mathcal{S},\mathcal{A},\Omega,P,R,\gamma) MΩ=(S,A,Ω,P,R,γ)

其中:

  • S \mathcal{S} S 是用自然语言表示的语义状态空间;
  • A \mathcal{A} A 是底层动作空间;
  • Ω = { ω ( 1 ) , ... , ω ( K ) } \Omega=\{\omega^{(1)},\ldots,\omega^{(K)}\} Ω={ω(1),...,ω(K)} 是最多包含 K K K 项技能的动态技能池;
  • P P P 是环境状态转移函数;
  • R R R 是奖励函数;
  • γ \gamma γ 是折扣因子。

相比普通 MDP,新增的核心对象是 Ω \Omega Ω。它既是 Agent 的程序性记忆,也是一组位于环境动作之上的时间扩展操作。

2. 分层决策

在时间步 t t t,系统先根据当前状态和技能池选择技能:

ω t ∼ μ ( ω ∣ s t , Ω ) \omega_t\sim\mu(\omega\mid s_t,\Omega) ωt∼μ(ω∣st,Ω)

然后由冻结 LLM 在该技能约束下生成底层动作:

a t ∼ π L L M ( a ∣ s t , ω t ) a_t\sim\pi_{\mathrm{LLM}}(a\mid s_t,\omega_t) at∼πLLM(a∣st,ωt)

因此,总策略可以分解为:

$$

\pi_{\Omega}(\omega_t,a_t\mid s_t)

\mu(\omega_t\mid s_t,\Omega)

\pi_{\mathrm{LLM}}(a_t\mid s_t,\omega_t)

μ \\mu μ 决定"调用哪项技能", π L L M \\pi_{\\mathrm{LLM}} πLLM 决定"在技能指导下采取什么动作"。 论文保持这两部分固定,主要优化技能池 Ω \\Omega Ω 本身。这一点与主要优化检索策略的记忆方法不同。 ### 3. 优化目标 系统仍希望最大化折扣累计回报: max ⁡ π Ω E \[ ∑ t = 0 T γ t r t \] \\max_{\\pi_{\\Omega}} \\mathbb{E}\\left\[\\sum_{t=0}\^{T}\\gamma\^t r_t\\right\] πΩmaxE\[t=0∑Tγtrt\] 但 Skill-Pro 不通过更新 LLM 参数来实现目标,而是反复执行技能池演化算子 E \\mathcal{E} E: ##

\Omega_{\mathrm{new}}

\mathcal{E}(\Omega_{\mathrm{old}},\mathcal{T}^{(B)})

T ( B ) \\mathcal{T}\^{(B)} T(B) 是当前策略采集的一批轨迹。演化算子根据这些轨迹生成新技能、改写旧技能并删除表现不佳的技能。 经过 N N N 轮演化后: Ω ∗ = E ( N ) ( Ω 0 ) \\Omega\^\*=\\mathcal{E}\^{(N)}(\\Omega_0) Ω∗=E(N)(Ω0) 所以,Skill-Pro 的学习对象不是模型权重,而是外部技能池的内容和组成。 *** ** * ** *** ## 五、一项技能由什么组成 Skill-Pro 将技能定义为三元组: ω = ⟨ I ω , π ω , β ω ⟩ \\omega=\\langle\\mathcal{I}_{\\omega},\\pi_{\\omega},\\beta_{\\omega}\\rangle ω=⟨Iω,πω,βω⟩ 分别对应激活条件、执行过程和终止条件。 ### 1. 激活条件 I ω \\mathcal{I}_{\\omega} Iω:什么时候使用 激活条件是一段可读的自然语言,描述该技能适用的观察模式。 例如: > 当任务刚开始,尚未获得任何反馈时。 技能选择策略可以使用向量相似度,也可以用 LLM-as-Judge 判断当前状态与激活条件是否匹配。 ### 2. 执行过程 π ω \\pi_{\\omega} πω:激活后怎么做 执行过程给出有序行动原则。LLM 在每一步同时看到当前状态和这段过程,然后生成具体环境动作。 论文中的 `StrategicPlanning` 技能包含: 1. 根据任务约束建立初始假设空间; 2. 生成能够最大程度减少不确定性的探索动作。 技能本身不直接硬编码某个 Mastermind 猜测,而是规定如何生成猜测。因此,同一技能可以在不同局面和不同模型上复用。 ### 3. 终止条件 β ω \\beta_{\\omega} βω:什么时候交回控制权 终止条件同样以自然语言表达,并在当前状态上判断: β ω ( s t ) = 1 当且仅当 s t 满足终止条件 \\beta_{\\omega}(s_t)=1 \\quad\\text{当且仅当}\\quad s_t\\text{ 满足终止条件} βω(st)=1当且仅当st 满足终止条件 若条件成立,当前技能结束,选择器重新从技能池中选择下一项技能;否则当前技能继续控制后续动作。 ### 4. 三段式结构为什么重要 仅有执行建议的技能很容易出现两类错误: * 在不适用的状态下被错误调用; * 已经完成目标后仍继续控制 Agent。 激活和终止条件给技能划定了时间边界,使其从一段"经验总结"变成真正可嵌入决策循环的程序单元。 *** ** * ** *** ## 六、技能选择:先匹配,再考虑预期收益 论文提供两种简单选择方式。 ### 1. 基于相似度 选择激活条件与当前状态最匹配的技能: ω t = arg ⁡ max ⁡ ω ∈ Ω t Sim ⁡ ( s t , I ω ) \\omega_t= \\arg\\max_{\\omega\\in\\Omega_t} \\operatorname{Sim}(s_t,\\mathcal{I}_{\\omega}) ωt=argω∈ΩtmaxSim(st,Iω) Sim ⁡ \\operatorname{Sim} Sim 可以是嵌入余弦相似度,也可以由 LLM 判断。 这种方式成本较低,但只判断"像不像",没有考虑调用后的预期效果。 ### 2. 基于价值 系统先按相似度得到 Top- k k k 候选: Ω t ( k ) = TopK ⁡ ω ∈ Ω t Sim ⁡ ( s t , I ω ) \\Omega_t\^{(k)}= \\operatorname{TopK}_{\\omega\\in\\Omega_t} \\operatorname{Sim}(s_t,\\mathcal{I}_{\\omega}) Ωt(k)=TopKω∈ΩtSim(st,Iω) 再选择预期回报最高的技能: ω t = arg ⁡ max ⁡ ω ∈ Ω t ( k ) Q ( s t , ω ) \\omega_t= \\arg\\max_{\\omega\\in\\Omega_t\^{(k)}}Q(s_t,\\omega) ωt=argω∈Ωt(k)maxQ(st,ω) 论文并不把技能选择器作为核心研究对象。它承认这里可以替换为更强的 RL 检索策略;当前工作主要研究怎样得到高质量、可复用的技能池。 *** ** * ** *** ## 七、语义梯度:把失败轨迹变成结构化修改方向 ### 1. 普通总结为什么不够 假设 Agent 在 Mastermind 中多次提交已经使用过的猜测,最终因无效动作受到惩罚。 普通轨迹摘要可能只写: > 玩家进行了多轮猜测,并在第十轮找到答案,最终奖励为 0.75。 它压缩了事实,却没有指出错误原因,也没有告诉技能应该怎样修改。 语义梯度则会明确诊断: > Agent 没有维护历史猜测集合;每次提交前应检查候选是否出现过,若重复则生成满足当前约束的新候选。 这就是"总结过去"和"为策略提供更新方向"的区别。 ### 2. 单轨迹语义梯度 对一项技能 ω \\omega ω 及使用该技能的轨迹 τ i \\tau_i τi,系统进行事后归因: ##

g_i

\nabla_{\mathrm{sem}}(\tau_i,\omega)

\left(

g_i^{(\mathcal{I})},

g_i^{(\pi)},

g_i^{(\beta)}

\right)

三个分量分别说明: * 激活条件哪里不准确; * 执行过程应该怎样修改; * 终止条件是否过早、过晚或缺失。 如果某个部分没有问题,对应梯度可以是空字符串,避免无目标改写。 这里的 ∇ s e m \\nabla_{\\mathrm{sem}} ∇sem 不是可微分的数值梯度,而是 LLM 生成的自然语言更新建议。它借用了"梯度指向改进方向"的概念。 ### 3. 批量聚合 单条轨迹可能存在偶然性。Skill-Pro 将一批轨迹的语义梯度聚合: ##

\bar g_{\omega}

\operatorname{Aggregate}

\left({g_i}_{i=1}^{B}\right)

聚合过程提取反复出现的失败模式和一致修改建议,同时过滤只对单条轨迹有效或互相冲突的信号。 ### 4. 生成候选技能 系统使用聚合后的语义梯度改写原技能: ω ′ = ω ⊕ g ˉ ω \\omega'=\\omega\\oplus\\bar g_{\\omega} ω′=ω⊕gˉω ⊕ \\oplus ⊕ 表示一次由 LLM 完成的语义更新。它修改激活、执行和终止三部分,同时保留技能结构。 论文把这一步类比为梯度上升:数值 PPO 沿参数梯度更新策略,Non-Parametric PPO 则沿自然语言诊断方向更新技能文本。 ### 5. 语义梯度仍然不可靠 LLM 可能根据有限轨迹提出过度概括的规则,也可能生成看似专业却无效的修改。因此,语义梯度只负责产生候选,不直接决定候选进入长期记忆。 这正是 PPO Gate 存在的原因。 *** ** * ** *** ## 八、PPO Gate:不用真正上线候选,也能先检查策略偏移 ### 1. 验证问题 一个候选技能 ω ′ \\omega' ω′ 若直接加入技能池,可能改变后续行为并污染新的训练轨迹。最稳妥的方式是为每个候选重新运行大量环境交互,但成本很高。 Skill-Pro 使用旧技能 ω \\omega ω 采集的历史轨迹,计算"如果当时使用候选技能,冻结 LLM 对实际动作的概率会怎样变化"。 ### 2. 重要性比率 对历史时间步 t t t: ##

\rho_t(\omega')

\frac{

\pi_{\mathrm{LLM}}(a_t\mid s_t,\omega')

}{

\pi_{\mathrm{LLM}}(a_t\mid s_t,\omega)

}

分母表示旧技能下执行历史动作 a t a_t at 的概率,分子表示换成候选技能后同一动作的概率。 * ρ t \> 1 \\rho_t\>1 ρt\>1:候选技能更支持该历史动作; * ρ t \< 1 \\rho_t\<1 ρt\<1:候选技能降低该动作概率; * 偏离 1 太远:候选可能造成剧烈行为变化。 ### 3. 优势估计 作者不训练价值网络,而是使用 return-to-go: G t = ∑ k = t T − 1 γ k − t r k G_t=\\sum_{k=t}\^{T-1}\\gamma\^{k-t}r_k Gt=k=t∑T−1γk−trk 再减去运行基线 R ˉ \\bar R Rˉ: A \^ t = G t − R ˉ \\hat A_t=G_t-\\bar R A\^t=Gt−Rˉ A \^ t \> 0 \\hat A_t\>0 A\^t\>0 表示这个历史动作出现在优于平均水平的轨迹位置,候选技能应尽量提高它的概率;反之,则不应强化该动作。 ### 4. PPO 风格裁剪目标 候选技能的验证分数为: ##

L^{\mathrm{CLIP}}(\omega')

\hat{\mathbb{E}}{\tau\sim\mathcal{B}}
\left[
\frac{1}{|\tau|}
\sum
{t\in\tau}

\min\left(

\rho_t(\omega')\hat A_t,

\operatorname{clip}(\rho_t(\omega'),1-\epsilon,1+\epsilon)\hat A_t

\right)

\right]

裁剪项限制候选技能与旧技能之间的概率偏移。即便候选极大提高某些高回报动作的概率,也不会因为一次激进变化获得无限高分。 它并没有像标准 PPO 那样对模型参数求梯度,而是把 PPO 目标变成一个**候选文本的离线验证函数**。 ### 5. Best-of- N c N_c Nc 与准入条件 对语义梯度生成的 N c N_c Nc 个候选,计算: J ( ω ′ ) = L C L I P ( ω ′ ) J(\\omega')=L\^{\\mathrm{CLIP}}(\\omega') J(ω′)=LCLIP(ω′) 选择得分最高的候选: ##

\omega_{\mathrm{new}}

\arg\max_{\omega'}J(\omega')

并且只有满足: J ( ω n e w ) \> 0 J(\\omega_{\\mathrm{new}})\>0 J(ωnew)\>0 才允许它进入技能池。 PPO Gate 的价值在于,它不要求候选重新在线运行,就可以利用历史动作和 log probability 判断候选是否倾向于强化高优势行为,同时避免过大策略偏移。 但它仍是离线、反事实的近似。候选对全新状态分布的影响无法由旧轨迹完全覆盖。 *** ** * ** *** ## 九、在线评分:通过验证的技能也不一定值得长期保留 ### 1. 为什么 PPO Gate 之后还需要评分 PPO Gate 只判断候选相对于当前技能是否具有正向的离线改进信号。技能真正上线后,仍可能: * 在新轨迹中表现不佳; * 与已有技能功能重复; * 随着其他技能改进而变得过时; * 很少被调用,占用有限容量。 因此,Skill-Pro 继续根据真实在线收益维护技能池。 ### 2. 技能收益 先定义每一步的优势式奖励: r \~ t = r t − r ˉ \\tilde r_t=r_t-\\bar r r\~t=rt−rˉ 若技能 ω \\omega ω 在轨迹 τ \\tau τ 中控制的时间步集合为 T ω ( τ ) \\mathcal{T}_{\\omega}(\\tau) Tω(τ),其平均收益为: ##

G(\omega;\tau)

\frac{1}{|\mathcal{T}{\omega}(\tau)|}
\sum
{t\in\mathcal{T}_{\omega}(\tau)}\tilde r_t

若环境只给出整条轨迹奖励,则将超出基线的部分平均分摊到各时间步。 ### 3. 在线分数更新 系统累计技能收益 G b G_b Gb 和调用次数 N b N_b Nb,并计算: ##

\operatorname{Score}_{b+1}(\omega)

\frac{G_{b+1}(\omega)}{\max(1,N_{b+1}(\omega))}

这不是简单统计成功率,而是衡量一项技能相对于动态基线带来的平均增益。随着整体 Agent 变强,过去有用但已经落后的技能可能逐渐失去正收益。 ### 4. 淘汰规则 技能池容量固定为 K K K。系统优先删除: 1. 在线分数不大于 0 的技能; 2. 语义重复的技能; 3. 若仍超过容量,则按分数从低到高继续删除。 于是,技能池不是不断膨胀的历史档案,而是一个受到持续竞争压力的程序性记忆集合。 *** ** * ** *** ## 十、实验设置 ### 1. 评测环境 论文使用三个方向的任务: * **TextArena / Mastermind-v0**:多轮文本推理游戏,并设置 Base、Hard、Extreme 三个难度; * **ALFWorld**:自然语言控制的具身任务,区分训练分布和 OOD 测试任务; * **BFCL v4**:函数调用基准,用于验证技能能否迁移到工具调用。 主实验中的每个设置以 50 个 episode 的结果求平均。 ### 2. 模型 * TextArena 使用 Gemma-2-9B 学习技能; * 同一技能池还迁移到 Gemma-3-4B、Qwen3-32B 和 Llama-3.3-70B-Instruct; * ALFWorld 使用 Qwen3-32B。 所有方法都保持决策 LLM 冻结,不进行参数微调。 ### 3. 基线 论文比较两类基线。 #### 推理基线 * State:只根据当前状态选择动作; * CoT:使用链式思考; * ReAct:交替进行推理与行动。 #### 记忆基线 * RAG:检索原始轨迹; * Expel:保存从经验中提炼的 insight; * A-MEM:保存简洁的动态笔记; * AWM:保存结构化工作流; * G-Memory:使用混合记忆表示。 ### 4. 三类评价指标 #### 任务表现 * TextArena 使用平均 episode return; * ALFWorld 使用任务成功率; * BFCL v4 使用函数调用准确率。 #### 复用率 设存储单元集合为 M \\mathcal{M} M。域内复用率为: ##

\operatorname{Reuse}_{\mathrm{in}}

\frac{

|{u\in\mathcal{M}\mid\operatorname{used}(u)\ge1}|

}{|\mathcal{M}|}

$$

Cross-task 与 Cross-agent 复用率分别统计记忆单元是否在不同任务或不同 LLM 上至少被调用一次。

需要注意:这个指标衡量的是"存储单元中有多少被用到",不是"有多少决策使用了记忆",也不直接保证每次复用都有效。

效率

论文统计:

  • 总存储 Token;
  • 每个记忆单元的平均 Token;
  • 每步新增 Prompt Token;
  • Retrieval Ratio,即发生检索或技能激活的决策步比例。

十一、主实验一:技能是否真的会被复用

论文的 Table 1 列数较多。为了保证 CSDN 可读性,这里拆成复用率和效率两个表。

1. 复用率

方法 域内 Mastermind-v0 Cross-task Hard Cross-task Extreme Cross-agent Gemma-3-4B Cross-agent Qwen3-32B
RAG 0.349±0.145 0.441±0.002 0.467±0.050 0.111±0.000 0.146±0.064
Expel 0.285±0.015 0.242±0.024 0.258±0.016 0.254±0.013 0.270±0.017
A-MEM 0.020±0.005 0.017±0.002 0.015±0.002 0.020±0.003 0.018±0.003
AWM 0.080±0.010 0.063±0.006 0.075±0.007 0.073±0.006 0.060±0.010
G-Memory 0.091±0.027 0.170±0.063 0.092±0.016 0.360±0.162 0.264±0.104
Skill-Pro 0.925±0.061 0.825±0.061 0.900±0.094 0.850±0.094 0.875±0.112

Table 1:记忆复用率。 Skill-Pro 在域内、跨任务和跨模型条件下均有 0.825 以上的记忆单元复用率,显著高于保存轨迹、笔记、Insight 或工作流的基线。

结果支持了程序性记忆的核心假设:一个有明确激活条件的技能比一条普通历史记录更容易在未来状态中再次被调用。

但高复用率不能独立证明高质量。若技能池非常小,每项技能都被调用一次,复用率也会很高。因此必须结合任务表现和在线收益一起判断。

2. 存储与执行开销

方法 总存储 Token 单元平均 Token 每步新增 Prompt Token Retrieval Ratio
RAG 116,527 2,675±414(轨迹) 2,698±414 1.000±0.000
Expel 294,447 642(Insight)+ 4,568±2,541(轨迹) 5,210±2,541 1.000±0.000
A-MEM 200,129 1,210±3(Note) 1,214±3 1.000±0.000
AWM 391,706 602(Workflow)+ 2,914±297(轨迹) 3,658±21 0.049±0.009
G-Memory 40,510 100±79(Insight)+ 334±2(部分轨迹) 434±79 0.097±0.027
Skill-Pro 816 102±0(Skill) 273±5 0.591±0.016

Table 1(续):存储与执行效率。 Skill-Pro 只保存 816 个 Token,比存储最少的基线 G-Memory 仍少约 49.6 倍;每步新增 Prompt 也降到 273 Token。

Skill-Pro 的 Retrieval Ratio 不是最低。AWM 和 G-Memory 检索频率更低,但每次插入的内容更长。Skill-Pro 的优势是技能在多个步骤中持续生效,不必每一步重新检索完整历史,同时单次技能文本也比较短。

这里的 816 Token 是最终技能池的文本存储量,不包含学习阶段收集的轨迹、生成语义梯度和执行 PPO Gate 所消耗的 Token。因此,它说明的是部署后的记忆体积,不能直接等同于完整学习成本。


十二、主实验二:高复用和高压缩是否牺牲任务表现

1. 跨任务结果

方法 ALFWorld Train 成功率 ALFWorld OOD 成功率 Mastermind v0 Hard Extreme
State 0.312±0.040 0.262±0.062 0.388±0.236 0.336±0.183 0.272±0.129
RAG 0.480±0.134 0.402±0.264 0.521±0.236 0.344±0.159 0.241±0.136
CoT 0.600±0.069 0.620±0.068 0.531±0.063 0.381±0.043 0.254±0.031
ReAct 0.580±0.070 0.640±0.068 0.557±0.059 0.405±0.074 0.263±0.048
Expel 0.680±0.065 0.740±0.063 0.424±0.033 0.305±0.031 0.239±0.024
A-MEM 0.520±0.071 0.640±0.068 0.471±0.042 0.310±0.038 0.253±0.026
AWM 0.700±0.065 0.900±0.042 0.546±0.052 0.299±0.036 0.294±0.040
G-Memory 0.681±0.079 0.812±0.017 0.577±0.052 0.406±0.056 0.356±0.036
Skill-Pro 0.900±0.105 0.909±0.287 0.606±0.234 0.463±0.210 0.333±0.118

Table 2:ALFWorld 与 Mastermind 跨任务结果。 Skill-Pro 在 ALFWorld、Mastermind v0 和 Hard 上取得最佳平均结果,但在 Extreme 难度上低于 G-Memory。

这张表支持"极小技能池仍能带来性能提升",但不能简单写成 Skill-Pro 在所有任务上全面最好。

最重要的反例是 Mastermind-Extreme:G-Memory 为 0.356,Skill-Pro 为 0.333。随着任务难度提高,少量抽象技能可能不足以保留复杂状态中的细节,而混合记忆仍能通过具体经验提供帮助。

此外,Skill-Pro 在多个结果上的标准差较大,例如 ALFWorld OOD 为 0.909 ± 0.287 0.909\pm0.287 0.909±0.287,Mastermind v0 为 0.606 ± 0.234 0.606\pm0.234 0.606±0.234。这说明不同 episode 或重复实验之间仍存在明显波动,不能只看平均值。

2. 跨模型结果

方法 Gemma-3-4B Qwen3-32B Llama-3.3-70B
State 0.414±0.101 0.497±0.159 0.613±0.201
RAG 0.404±0.191 0.558±0.204 0.620±0.211
CoT 0.417±0.120 0.470±0.153 0.542±0.206
ReAct 0.408±0.131 0.425±0.125 0.604±0.230
Expel 0.429±0.117 0.483±0.185 0.575±0.270
A-MEM 0.388±0.115 0.570±0.230 0.542±0.162
AWM 0.417±0.144 0.592±0.183 0.550±0.238
G-Memory 0.428±0.039 0.475±0.190 0.535±0.079
Skill-Pro 0.444±0.161 0.615±0.290 0.647±0.236

Table 2(续):Cross-agent 结果。 使用 Gemma-2-9B 学到的显式文本技能,可以迁移给 Gemma-3、Qwen3 和 Llama-3.3,并在三个主干上获得最高平均回报。

这正是显式技能相对于模型内参数记忆的优势:技能是自然语言协议,不绑定产生它的模型架构。

不过,不同模型对同一技能的理解可能不同。Cross-agent 成功说明这些实验中的技能具有较强可读性和通用性,但不能保证所有精细工具流程都能无损跨模型迁移。


十三、消融实验:每个模块到底在防什么问题

方法 复用率 任务表现 在线分数 PPO Gate 通过率
Skill-Pro 完整版 0.925 0.606 0.0406 59.49%
w/o Skill N/A 0.388(-36.0%) N/A N/A
w/o NP-PPO 0.563(-39.1%) 0.482(-20.5%) 0.0265(-34.7%) N/A
w/o Semantic Gradient 0.306(-66.9%) 0.530(-12.5%) 0.0015(-96.3%) 41.54%
w/o PPO Gate 0.222(-76.0%) 0.453(-25.2%) 0.0011(-97.3%) 100.00%
w/o Score,改用 FIFO 0.131(-85.8%) 0.439(-27.6%) -0.0064(-115.8%) 57.18%

Table 3:Skill-Pro 组件消融。 去掉技能、NP-PPO、语义梯度、PPO Gate 或在线评分都会降低复用率和任务表现;其中 FIFO 维护导致最终技能池在线分数为负。

1. 去掉 Skill

任务表现从 0.606 降到 0.388,说明收益并不只是来自更长推理 Prompt 或额外调用 LLM,显式程序技能本身确实提供了有效决策结构。

2. 去掉 NP-PPO

只使用初始技能种子时,表现为 0.482,说明初始技能已经有一定价值。但复用率和性能都明显低于完整方法,证明真实轨迹驱动的持续演化能够把通用种子变成更适合当前任务的技能。

3. 去掉语义梯度

论文没有直接把原始批量轨迹全部塞给模型,因为这会让 Gemma-2-9B 的上下文溢出;消融版本改用中性轨迹摘要生成候选。

PPO Gate 通过率从 59.49% 降到 41.54%,说明带有错误归因和明确修改方向的语义梯度,比普通摘要更容易产生有效候选。

4. 去掉 PPO Gate

所有候选都会"通过",因此表中通过率为 100%,但这并不是更好。任务表现降到 0.453,在线分数几乎归零,说明未经行为验证的技能会污染决策过程。

5. 去掉在线评分

使用 FIFO 保持相同技能池容量时,复用率只有 0.131,任务表现降到 0.439,在线分数为 -0.0064。

这表明候选通过一次 PPO Gate 并不足以保证长期价值。如果不根据真实上线收益保留优秀技能,新候选可能把已经稳定的技能挤出技能池。

6. 训练曲线

Figure 3:Skill-Pro 与消融变体的训练曲线。 完整方法在后期维持最高平均回报;去掉 PPO Gate 或在线评分的变体长期停留在较低水平,且波动较明显。

曲线说明三个模块承担不同职责:

  • 语义梯度提高候选生成质量;
  • PPO Gate 阻止不稳定候选进入技能池;
  • 在线评分防止长期维护过程丢失优秀技能。

它们不是重复过滤,而是分别作用于候选生成、候选准入和长期保留。


十四、技能如何演化:从多个候选分支收敛到稳定版本

论文可视化了 HypothesisElimination 和 StrategicPlanning 两项技能在 200 轮中的版本谱系。

Figure 4:技能演化谱系。 灰色横线表示技能版本的存续时间,虚线表示从父版本产生新候选,红色叉号表示版本被淘汰,蓝色箭头表示最终长期保留的技能。

图中并不是每次改写都会替换旧技能。系统会暂时保留多个候选,让它们经过实际调用和在线评分竞争,最终留下持续带来正收益的版本。

例如 HypothesisElimination 出现多条并行版本,随后大量分支被删除,最终保留到 v 12 v_{12} v12;StrategicPlanning 也经历多轮替换后收敛到 v 8 v_8 v8。

这种演化过程比"一次总结生成最终技能"更接近软件版本迭代:候选先经过离线检查,再接受线上效果验证,不合格版本可以回退或淘汰。


十五、技能能否跨难度、跨模型保持相同含义

Figure 5:跨 Agent 与跨任务的技能选择分布。 上半部分比较不同 LLM 对技能的调用概率,下半部分比较 Mastermind Base、Hard 和 Extreme 三个难度;柱上数字表示每个 episode 的平均调用次数贡献,图例中的 N N N 表示总平均调用数。

跨模型时,不同主干具有不同偏好。例如 Gemma-2-9B 更依赖 FBInference,而 Qwen3 和 Llama 的技能分布更均衡。这说明技能并不是对所有模型施加完全相同的行为,而是被不同模型以各自方式解释和组合。

跨任务难度时,整体分布相对稳定,特别是 FBInference、StratPlan 等技能始终占据重要位置。作者据此认为,学到的技能捕获了 Mastermind 的基础解题逻辑,而不是某个难度的表面模式。

但还可以看到,Gemma-2-9B 平均每局调用 7.1 次技能,而 Qwen3-32B 和 Llama-3.3-70B 约为 2.9 次。强模型可能用更少技能完成任务,也可能只是选择器与主干的交互方式不同。论文没有进一步拆分"少调用"究竟来自更强自主推理,还是某些技能未被触发。


十六、函数调用实验:程序性技能能否迁移到 Tool Agent

方法 BFCL v4 Accuracy
State 0.233±0.025
ReAct 0.383±0.023
CoT 0.367±0.023
Skill-Pro 0.433±0.050

Table 4:BFCL v4 函数调用结果。 Skill-Pro 的准确率为 0.433,高于 ReAct 的 0.383、CoT 的 0.367 和只看状态的 0.233。

这一结果说明,结构化参数验证、约束检查等程序可以作为技能影响工具调用,而不只适用于文本游戏或具身任务。

不过,BFCL 实验只比较了三种推理基线,没有与专门的函数调用记忆、工具检索或工具微调方法比较。0.433 的绝对准确率也仍然有限,因此它更适合作为"机制可以迁移到工具调用"的补充证据,而不是 Tool Agent 上的全面 SOTA 结论。


十七、效率分析:816 Token 很小,但学习过程并非免费

1. 部署时的记忆非常紧凑

最终技能池只有 816 Token,每项技能平均 102 Token。相比 RAG 的 116,527 Token 和 G-Memory 的 40,510 Token,压缩非常明显。

这来自两个原因:

  • 技能只保留可复用决策逻辑,不保留完整事件细节;
  • 在线维护限制池大小并删除低收益、重复技能。

2. 推理开销低于多数记忆方法

Skill-Pro 每步额外增加 273 Token,低于 RAG、Expel、A-MEM 和 AWM。技能一旦激活可持续多个步骤,因此不需要在每一步重新选择。

3. 学习阶段需要多次 LLM 调用

每轮演化至少包含:

  1. 收集一批环境轨迹;
  2. 对每条轨迹生成结构化语义梯度;
  3. 聚合多条梯度;
  4. 生成多个候选技能;
  5. 对旧技能和每个候选重算历史动作 log probability;
  6. 更新在线评分。

论文没有在正式结果表中完整报告端到端演化时间、货币成本或总生成 Token。因此,"Non-Parametric"表示不更新权重,不代表没有训练过程,也不代表计算成本可以忽略。

4. PPO Gate 依赖 log probability

该方法需要 API 返回输出 Token 的 log probability。开放权重模型可以直接计算,OpenAI、Gemini、Cohere 等部分服务也提供相应字段,但并非所有闭源 API 都开放。

论文建议在完全黑盒的 API 上使用 LLM-as-Judge 或 self-consistency 代替,但这只是未来方向,不能视为已经与 PPO Gate 等价验证。


十八、失败案例与证据边界

1. 抽象技能可能丢失任务细节

Skill-Pro 在 Mastermind-Extreme 上低于 G-Memory,说明高度压缩的技能不一定能覆盖复杂任务所需的全部具体信息。程序性记忆适合重复逻辑,情景证据仍可能对极难实例有价值。

2. 离线 PPO Gate 不能保证真实上线收益

Gate 根据旧轨迹估计候选技能对已发生动作的概率变化。当候选导致 Agent 进入历史中从未出现的状态时,离线分数无法覆盖其后果。

在线评分部分缓解了这个问题,却意味着不良候选仍可能在短期内参与决策。

3. 语义梯度依赖 LLM 的错误归因能力

如果模型错误判断失败来自执行步骤,而实际问题是激活时机,技能会沿错误方向修改。批量聚合只能减少偶然噪声,不能保证因果归因正确。

4. 复用率容易受记忆粒度影响

Skill-Pro 的技能池非常小,基线记忆单元数量很大。以"至少被调用一次的单元比例"计算复用率时,小而通用的单元天然更容易获得高分。

这不否定 Skill-Pro 的结果,但说明复用率同时衡量了记忆质量和记忆粒度,不能脱离任务表现及存储成本单独比较。

5. 技能选择器不是本文重点

论文主要使用相似度或价值式选择,没有系统研究路由错误、未知状态拒绝、多个技能冲突和置信度校准。一个高质量技能若没有被正确激活,也无法产生价值。

6. 显式自然语言技能仍需模型重新解释

Skill-Pro 比完整轨迹短得多,但仍依靠 LLM 阅读并执行文本步骤。它没有完全达到人类程序性记忆那种快速、隐式、自动化执行。


十九、与已有 Agent Memory 方法的横向比较

方法 主要记忆内容 记忆表示 核心改进环节 与 Skill-Pro 的差异
A-MEM 事实、事件与笔记 动态关联笔记网络 记忆组织与链接 A-MEM 让笔记持续关联;Skill-Pro 让技能持续演化并经过行为验证
MAGMA 多维长期记忆 语义、时间、因果等图结构 多维关系检索 MAGMA 主要回答"哪些记忆相关";Skill-Pro 回答"遇到这种状态怎样行动"
CoM 长上下文中的关键信息 压缩记忆 控制上下文冗余 CoM 压缩信息,Skill-Pro 形成带激活和终止边界的可执行程序
ReMemR1 阅读过程中的历史记忆 可回访外部记忆 写入时主动回看历史 ReMemR1 改进记忆形成时的信息保真;Skill-Pro 改进技能候选的生成与验证
Mem²Evolve 可持续更新的经验 演化式外部记忆 记忆自我更新 两者都关注演化;Skill-Pro 特别使用 PPO 风格概率门验证文本技能
ReasoningBank 成功与失败中的推理经验 可读策略与经验条目 经验提炼与检索 ReasoningBank 强调从轨迹提炼 reasoning;Skill-Pro 增加激活/终止结构和准入门
TokMem 程序性知识 一个可训练 Token 紧凑表示、路由与组合 TokMem 主要解决程序如何存与调;Skill-Pro 主要解决可靠程序如何从经验中学出
Skill-Pro 可复用行动程序 显式三元组技能池 无参数技能生成、验证与维护 以外部文本为策略单元,强调完整演化闭环

Skill-Pro 最接近 ReasoningBank、Expel 和工作流记忆,但它比一般"反思---写入"多了一层候选验证,并把技能长期维护纳入同一个优化框架。


二十、对 Coding Agent、Tool Agent 与 Multi-Agent 的启发

以下内容是基于论文机制的工程推演,不是论文已经完成的实验。

1. Coding Agent:从修复轨迹中演化仓库级技能

Coding Agent 可以把反复出现的工作流表示成技能:

text 复制代码
技能:回归缺陷修复
激活:已有明确故障现象,但缺少稳定复现
执行:定位相关测试 → 构造最小失败用例 → 修复实现 → 运行目标测试和回归测试
终止:新测试通过,且相关回归集没有新增失败

失败轨迹可以生成语义梯度。例如,Agent 修改代码后只运行了单个测试,最终破坏其他模块,语义梯度可要求执行步骤增加"识别受影响依赖并运行回归测试"。

PPO Gate 则可以根据历史成功操作的 log probability 检查新技能是否突然偏向高风险命令。不过,代码修改的真实正确性仍必须由测试、类型检查和代码审查验证,不能只看模型动作概率。

2. Tool Agent:让工具经验成为有生命周期的程序

Tool Agent 的技能可以包含:

  • 什么用户意图需要调用工具;
  • 参数提取和校验顺序;
  • 工具失败后的重试策略;
  • 什么情况下停止重试或请求人工确认。

Skill-Pro 的在线评分尤其适合工具生态持续变化的场景:旧 API 或低成功率工具的技能会逐渐失去增益,从技能池中淘汰。

3. Multi-Agent:把协作协议作为技能

多 Agent 系统可以将协作模式表示成程序性技能,例如:

  • 当证据冲突时启动独立复核;
  • 当任务可拆分时并行派发子任务;
  • 当两个 Agent 结论不一致时建立裁决流程;
  • 当外部操作具有风险时增加审批角色。

语义梯度可以从协作失败中定位问题属于角色激活、通信步骤还是终止条件。但多 Agent 还会遇到信用分配问题:最终奖励到底应归因于哪个 Agent、哪个技能,论文当前的平均优势分摊可能过于粗糙。

4. 与显式规则和测试结合

生产系统更适合采用混合验证:

text 复制代码
语义梯度:提出技能修改
PPO Gate:检查行为概率是否稳定
规则验证:检查权限、格式和禁止动作
环境测试:验证真实执行结果
在线评分:决定长期保留

PPO Gate 应被视为低成本预筛选,而不是安全审计或真实环境验证的替代品。


二十一、论文局限性

1. 技能仍是显式自然语言

作者明确指出,当前技能与人类隐式程序性记忆不同。它们仍然需要语言模型阅读和解释,只是比完整轨迹更紧凑、更有结构。

未来可以将高频成熟技能进一步压缩为可执行代码、参数化程序或潜在控制策略,同时保留显式版本用于学习、检查和调试。

2. PPO Gate 的 API 兼容性有限

方法要求获得输出 Token 的 log probability。部分闭源服务不提供这一信息,完全黑盒模型无法直接使用当前 Gate。

3. 缺少完整学习成本

论文重点展示存储 Token 和推理 Prompt 开销,没有完整报告 200 轮演化中所有候选生成、概率评估、环境交互的总成本。

4. 基准仍然有限

Mastermind、ALFWorld 和 BFCL 分别覆盖逻辑游戏、具身任务和函数调用,但距离开放世界的长期个人 Agent 仍有差距。真实环境的任务分布会变化,奖励也通常更稀疏、更延迟。

5. 奖励归因较粗

当一条轨迹中多个技能共同作用且只有最终奖励时,论文将轨迹优势平均分配到时间步。它难以准确区分哪个技能真正促成成功,哪个只是同时出现。

6. 技能池容量和粒度依赖设计

技能过粗会难以迁移,过细则会增加路由和维护成本。论文通过固定容量与语义去重控制规模,却没有系统研究最优粒度、容量敏感性和大规模技能池检索。

7. 离线可信区间不是单调改进保证

尽管方法借鉴 PPO 的裁剪思想,但它不进行标准 PPO 的参数优化,也没有给出真实环境回报单调提升的理论保证。Non-Parametric PPO 更准确地说是一套 PPO-inspired 候选验证机制。

8. 安全、隐私和技能投毒尚未讨论

如果交互轨迹包含恶意反馈或不可信环境指令,语义梯度可能把它们固化为长期技能。生产系统需要轨迹来源控制、技能审查、版本回滚和用户隔离机制。


二十二、我的理解与启发

1. Skill-Pro 的本质不是"让 LLM 写工作流"

LLM 写出一段工作流并不难。真正困难的是回答:

  • 这段工作流是否来自稳定失败模式;
  • 它相对旧版本是否更可靠;
  • 它上线后是否持续产生正收益;
  • 技能池有限时应该保留哪一个版本。

Skill-Pro 的主要价值是把这些问题串成闭环,而不是单独提出一种技能格式。

2. Non-Parametric PPO 是"文本程序的版本控制器"

从工程角度看,语义梯度像修改建议,候选技能像新版本,PPO Gate 像合并前检查,在线评分像生产监控,剪枝则像淘汰失效版本。

这个类比比"无需训练的强化学习"更准确,因为系统仍然有迭代学习、经验采样和候选评估,只是不更新神经网络权重。

3. 程序性记忆需要双重证据

一项技能值得长期保留,至少需要两类证据:

  1. 反事实证据:在历史状态中,它更支持高优势动作,且策略偏移不大;
  2. 在线证据:真正上线后,它持续带来超过基线的收益。

PPO Gate 与在线评分恰好对应这两层。只靠语言评价"看起来更合理"远远不够。

4. 记忆压缩不是越强越好

816 Token 的程序记忆非常紧凑,但 Extreme 任务上的退化提醒我们:抽象会丢失实例细节。

更完整的 Agent 可能需要同时保留:

text 复制代码
情景层:保存少量关键原始证据和异常案例
经验层:保存成功与失败的解释
技能层:保存高频可执行程序
参数层:保存足够稳定、值得固化的通用能力

Skill-Pro 证明技能层很有价值,但并不意味着其他层应该被删除。

5. 与 TokMem 可以形成"学习---编译"流水线

Skill-Pro 的显式技能易于演化、检查和跨模型迁移,但执行时仍要读取约 100 Token 的文本;TokMem 的单 Token 程序调用更紧凑,却需要监督示例训练专用嵌入。

一个自然的组合方向是:

  1. 用 Skill-Pro 从真实交互中生成并验证显式技能;
  2. 等技能长期稳定后,将其编译成 TokMem 式紧凑 Token 或代码模块;
  3. 保留显式版本作为审计记录和回滚依据;
  4. 当环境变化导致技能失效时,再回到显式演化阶段。

这会更接近人类技能形成过程:先用可解释规则刻意练习,成熟之后再变成低成本的自动行为。

6. 真正难点会从"记住什么"转向"什么时候固化"

并不是每条经验都值得变成技能,也不是每个暂时有效的技能都应该压缩成隐式模块。未来记忆系统需要判断:

  • 某种模式是否重复出现;
  • 证据是否足够稳定;
  • 技能是否跨任务、跨模型复用;
  • 是否仍需要保留原始轨迹以支持解释;
  • 何时应更新、回滚或彻底删除。

Skill-Pro 的在线评分已经迈出一步,但完整的技能生命周期治理仍是开放问题。


二十三、总结

Skill-Pro 研究的不是如何保存更多历史,而是如何让反复发生的经验逐渐变成可直接调用的程序性技能。

它首先通过 Skill-MDP 将技能定义为包含激活条件、执行过程和终止条件的时间扩展决策单元;然后使用语义梯度对失败轨迹进行结构化事后归因,生成技能修改方向;接着利用冻结 LLM 的动作概率构造 PPO Gate,过滤会造成过大策略偏移或无法强化高优势动作的候选;最后通过在线评分保留长期有效技能,删除低收益和重复版本。

实验显示:

  • Skill-Pro 的域内、跨任务和跨模型复用率达到 0.825--0.925;
  • 最终技能池只有 816 Token,比 G-Memory 的存储量小约 49.6 倍;
  • 在 ALFWorld、Mastermind 多数难度和三个跨模型设置上取得最佳平均结果;
  • 去掉语义梯度、PPO Gate 或在线评分都会严重降低技能质量;
  • 在 BFCL v4 上也能改善函数调用准确率。

但论文也留下了明确边界:Mastermind-Extreme 上没有超过 G-Memory;复用率受记忆粒度影响;PPO Gate 依赖历史轨迹和 log probability;端到端演化成本没有完整报告;自然语言技能仍然不是完全自动化的隐式程序。

最后用一句话概括这篇论文:

Skill-Pro 不再把 Agent Memory 仅仅视为可检索的过去,而是通过语义梯度、PPO Gate 与在线竞争,把交互经验持续演化为经过验证、可以直接指导未来行动的程序性技能。


参考资料

  1. Skill-Pro: Learning Reusable Skills from Experience via Non-Parametric PPO for LLM Agents
  2. Skill-Pro 正式 PDF
  3. Skill-Pro 官方代码仓库
  4. Shinn et al. Reflexion: Language Agents with Verbal Reinforcement Learning, NeurIPS 2023.
  5. Zhao et al. ExpeL: LLM Agents Are Experiential Learners, AAAI 2024.
  6. Xu et al. A-MEM: Agentic Memory for LLM Agents, 2025.
  7. Wang et al. Agent Workflow Memory, 2024.
  8. Schulman et al. Proximal Policy Optimization Algorithms, 2017.
  9. Yüksekgönül et al. TextGrad: Automatic Differentiation via Text, 2024.
相关推荐
旺仔Sec1 小时前
2026年江西省职业院校技能大赛人工智能大模型应用开发赛项样题
人工智能
新知图书1 小时前
【新书推荐】《让AI推荐你的品牌:GEO营销实践》
人工智能
AOI小白新手上路1 小时前
从 Keil 调试视角看 51 指针,到 Cortex-M 内存映射访问寄存器 · 学习笔记
笔记·学习
火山引擎和TA的超级拍档们1 小时前
产品情报局 04|客服Agent:大模型时代的智能客服新范式
大数据·人工智能
richard_first1 小时前
第19章 RAG(Retrieval-Augmented Generation)
人工智能·深度学习·语言模型·自然语言处理·transformer
别动我齐刘海1 小时前
简历技术栈全面复习——UDP / TCP / CAN / ZMQ / Protobuf 通信工程
网络·c++·python·tcp/ip·机器学习·udp·github
2301_801821711 小时前
推进语义文本相似性建模:一个具有平移ReLU和平滑 K2损失的回归框架
人工智能
IT_陈寒1 小时前
我花3小时debug,就因为JavaScript这个隐式转换坑
前端·人工智能·后端
我是小白呀1 小时前
23-AI说可以开通以后呢:权限、审批、审计与执行门禁
人工智能·workflow