【论文阅读】Agent 记忆机制(17):MSCE——让记忆结晶为可验证、可进化的 Skills
文章目录
- 前言
- 零、论文基本信息
- 一、为什么记忆还不能直接变成 Skill?
- 二、相关工作
- 三、背景与问题定义
- 四、MSCE 框架总览
- 五、L1 Trace Memory:证据层
- 六、L2 Policy Memory:程序策略层
- 七、Policy Gain:策略收益
- 八、L3 Environmental Cognition:环境认知层
- 九、为什么 L2 Policy 不能直接当成 Skill?
- 十、Skill 如何结晶?
- 十一、Skill 如何验证?
- 十二、Skill 的可靠性和生命周期
- 十三、Skill 如何调用?
- 十四、双信号值回填解决什么问题?
- 十五、基于双信号的值回填
- 十六、反思权重如何计算?
- 十七、文本反馈如何转成最终奖励?
- 十八、在线更新闭环
- 十九、实验设置
- 二十、EvoAgentBench 主要结果
- 二十一、LoCoMo 长对话记忆结果
- 二十二、跨领域泛化
- 二十三、长期累积演化
- 二十四、消融实验
- 二十五、模拟人类反馈
- 二十六、MSCE 的局限性
- 二十七、我的理解和启发
- 二十八、总结
- 参考资料
前言
前面已经阅读了 A-MEM、Mem0、RMM、TrustMem、GAM、HORMA、Proactive Memory Agent、HiMem 等不同类型的 Agent 记忆方法。
这些方法分别从不同角度改进 Agent 的长期记忆:
A-MEM:
让记忆根据新事件动态建立链接并持续演化。
Mem0:
从交互中提取事实,并管理记忆的新增、更新、删除和忽略。
TrustMem:
逐步验证记忆更新,减少遗漏、破坏和幻觉。
GAM:
同时保存轻量 Memo 和完整 Page,
在请求到来后动态构造当前任务需要的上下文。
HORMA:
将执行历史组织成可导航、可追溯的层级工作空间。
Proactive Memory Agent:
判断记忆是否需要在当前时刻进入行动循环。
HiMem:
使用 Episode Memory 保存具体情节,
使用 Note Memory 保存抽象知识,
再根据检索反馈修正知识记忆。
这些方法都在回答一个问题:
Agent 应该如何保存、组织、召回和更新过去的经验?
但是,仅仅“记住过去”并不代表 Agent 已经学会了可复用的能力。
假设一个编程 Agent 多次处理 Python 依赖安装问题。
第一次任务中,它经历:
1. 执行 pip install lxml。
2. 安装失败。
3. 发现 Alpine 容器缺少系统级 C 依赖。
4. 使用 apk 安装开发库。
5. 再次运行 pip install。
6. 安装成功。
第二次任务中,它又经历:
1. 执行 pip install psycopg2。
2. 安装失败。
3. 发现 Debian 容器缺少系统依赖。
4. 使用 apt-get 安装开发库。
5. 再次运行 pip install。
6. 安装成功。
传统记忆系统可能保存两段成功轨迹。
未来遇到类似问题时,再把其中一段轨迹检索出来,让 Agent 重新阅读并推理。
但两段经验背后真正可复用的是一项能力:
触发条件:
容器内安装带有本地扩展的 Python 包失败。
操作流程:
解析缺失组件
→ 识别操作系统和包管理器
→ 安装对应系统开发库
→ 重试 pip install。
验证方式:
确认 Python 包能够成功导入。
适用边界:
适用于容器内缺少编译依赖的问题,
不适用于 Python 版本冲突或网络错误。
这已经不只是一段记忆,而是一项可以直接调用的 Skill。
因此,Agent 从长期记忆走向自我进化,需要解决:
如何从嘈杂轨迹中发现可复用策略?
什么样的经验有资格升级为 Skill?
如何保证 Skill 有真实证据支持?
Skill 在什么场景下可以调用?
失败后如何修正或淘汰 Skill?
任务最终反馈如何分配到中间步骤?
本文提出 MSCE:Memory-Skill Co-Evolution。
MSCE 不直接从原始轨迹生成 Skill,而是在记忆和 Skill 之间加入一套证据治理机制。
它首先将经验组织成三级记忆:
L1 Trace Memory:
保存可审计的步骤证据。
L2 Policy Memory:
从多个任务中归纳可复用的操作策略。
L3 Environmental Cognition Memory:
抽象环境结构、行为规律和约束。
只有具备充分证据、正向收益和稳定适用边界的 L2 Policy,才会被“结晶”为可调用 Skill。
与此同时,MSCE 将局部反思和任务最终反馈结合起来,为每个步骤估计价值,再使用这些价值共同管理:
记忆检索;
策略归纳;
环境认知抽象;
Skill 晋升;
Skill 修正和淘汰。
可以用一句话概括本文:
MSCE 将历史轨迹先组织成有证据、有价值的三级记忆,再把稳定且有效的操作策略晋升为可验证、可维护的 Skills。
零、论文基本信息
- 论文名称:From Memory to Skills: Evidence-Grounded Co-Evolution Governance for Long-Horizon LLM Agents
- 发表平台:arXiv preprint,2026
- 代码仓库:MemTensor/MemOS
- 作者信息:Bo Tang、Yang Zhang、Guomian Zhuang、Wenqiang Wei、Gaoyang Zheng、Lindong Xie、Yanchao Tan、Feiyu Xiong、Qingyu Yang、Edward Chung、Zhiyu Li,来自 MemTensor、中国科学技术大学、香港理工大学、福州大学和西安交通大学等机构
一、为什么记忆还不能直接变成 Skill?
1. 记忆通常只是被动上下文
传统 Agent 记忆系统通常采用:
执行任务
↓
保存历史轨迹
↓
未来遇到类似问题
↓
召回相关记忆
↓
将记忆放入上下文
↓
行动 Agent 重新推理
这种方法能够减少完全从零探索,但检索出的记忆仍然只是文本。
行动 Agent还要重新理解:
过去做了什么;
哪些步骤有效;
哪些步骤失败;
哪些内容只是环境噪声;
当前任务应该复用哪一部分。
如果历史轨迹很长,召回经验也可能重新带来上下文压力。
2. 原始轨迹中包含大量噪声
一条成功轨迹并不等于一项优秀 Skill。
原始轨迹通常包含:
错误尝试;
重复命令;
无效搜索;
环境特定路径;
临时文件名;
偶然成功的操作;
与最终结果无关的推理。
如果直接把完整成功轨迹蒸馏成 Skill,可能得到:
过度具体的命令;
只适用于某个仓库的路径;
错误的因果关系;
没有验证步骤的操作流程;
忽略失败条件的乐观策略。
因此,Skill 不能只回答:
过去成功时做了什么?
还必须回答:
为什么有效?
有什么证据?
什么情况下适用?
什么情况下不适用?
执行后如何验证?
失败后应该怎么办?
3. 最终奖励难以分配到具体步骤
长时任务通常只在结束时得到反馈。
例如:
任务通过隐藏测试:
奖励为 1。
任务失败:
奖励为 0。
但一个任务可能包含几十个步骤。
任务成功不代表每一步都是正确的;任务失败也不代表所有步骤都没有价值。
例如:
步骤 1:
正确定位了配置文件。
步骤 2:
错误修改了依赖版本。
步骤 3:
发现了真正的错误原因。
步骤 4:
执行了正确修复。
步骤 5:
忘记运行完整测试。
最终结果:
任务失败。
如果把最终的 0 平均分给所有步骤,就会错误地否定步骤 1、3 和 4。
如果只依赖 Agent 的局部反思,反思又可能:
过于笼统;
缺乏事实依据;
错误解释因果关系;
在失败后进行合理化。
MSCE 因此将两类信号结合:
局部、密集但可能不可靠的反思;
全局、可靠但稀疏延迟的最终反馈。
二、相关工作
论文主要从 Agent 记忆和 Agent Skills 两条研究路线展开。
1. Agent 记忆
现有 Agent 长期记忆可以大致分为两类。
事实记忆
事实记忆主要保存:
原始交互;
环境观察;
用户事实;
对话内容;
压缩上下文;
实体和关系。
这类方法擅长回答:
过去发生过什么?
用户说过什么?
环境中有哪些事实?
但大量事实和事件可能形成情节噪声,缺少更高层次的操作抽象。
经验记忆
经验记忆会从过去任务中提取:
反思;
任务摘要;
推理轨迹;
成功策略;
失败教训。
这类方法比事实记忆更接近“学会经验”,但召回结果通常仍然是一段自然语言上下文。
Agent 还需要在执行时重新推理如何使用。
MSCE 的区别在于:
它将记忆看作 Skill 产生之前的受治理证据层,而不是直接把召回文本当作最终复用形式。
2. Agent Skills
论文将 Skills 看成结构化、自包含、可直接执行的程序性知识。
Skill 不只是“过去成功经验的摘要”,还需要包含:
触发条件;
适用前提;
操作步骤;
参数;
验证规则;
适用边界;
失败模式;
可靠性;
证据来源。
现有 Skill 获取方法主要分为两类。
外部知识驱动
这类方法使用:
人类专家经验;
人工整理的工作流;
公开 Skill 数据集;
预先编写的操作说明。
优点是质量相对稳定。
问题是:
人工成本高;
难以覆盖开放环境;
难以适应单个用户和项目;
无法根据 Agent 自己的经历持续更新。
交互轨迹驱动
这类方法从 Agent 的试错轨迹中自动归纳 Skill。
优点是:
能够自主适应环境;
可以积累个性化经验;
不需要完整人工标注。
问题是:
原始轨迹存在大量噪声;
成功步骤和偶然步骤容易混淆;
Skill 可能过拟合单次任务;
缺少明确适用边界;
错误经验可能被长期放大。
MSCE 在轨迹和 Skill 之间增加三级记忆,让 Skill 先经过:
证据积累;
跨任务策略归纳;
价值估计;
稳定性检查;
确定性验证。
3. 记忆与 Skill 的关系
一些方法会把 Skill 直接看作程序性记忆,或者把记忆操作本身表示为 Skill。
MSCE 则明确区分:
Memory:
内部经验表示,可以不完整、可修订、不可直接调用。
Skill:
面向部署的标准化对象,可以被行动 Agent 直接调用。
因此,MSCE 研究的核心问题是:
哪些记忆可以升级为 Skill,以及升级后的 Skill 应该如何调用、验证、修正和淘汰?
三、背景与问题定义
1. Task、Episode 和 Step
论文区分三个概念。
Task
Task 是用户看到的任务目标,由查询 q q q 发起。
例如:
“帮我在这个 Alpine 容器中安装 lxml。”
Episode
Episode 是 MSCE 执行反馈回填和在线更新的基本单位。
单轮任务中:
一个 Task 通常对应一个 Episode。
多轮任务中:
一个 Task 可以包含多个 Episode。
例如,用户可能在第一次结果后继续:
补充要求;
纠正错误;
提出同一目标下的新步骤。
Step
Step 是最小的 L1 记忆单元。
一个 Episode 包含多个 Step。
2. Episode 边界
新用户消息到来时,MSCE 将其分为三类。
Correction:
用户纠正或拒绝上一结果。
处理:
扩展上一个 Episode,
让新证据能够修正同一个信用分配单元。
Follow-up:
用户继续同一个目标,
但没有否定此前结果。
处理:
关闭上一个 Episode,
在同一个 Task 下打开新 Episode。
New Task:
用户提出不相关的新目标或新领域任务。
处理:
创建新的 Task 上下文,
但长期记忆仍然可以被召回。
这种设计避免了两个极端:
把整个长任务看成一个无法精确分配反馈的整体;
把每一次工具调用都看成独立任务。
3. 步骤轨迹
论文考虑有序 Episode 序列:
E = { E 1 , E 2 , … , E n } E=\{E_1,E_2,\ldots,E_n\} E={E1,E2,…,En}
第 i i i 个 Episode 包含 H i H_i Hi 个步骤轨迹:
F i = { f i , 1 , f i , 2 , … , f i , H i } F_i=\{f_{i,1},f_{i,2},\ldots,f_{i,H_i}\} Fi={fi,1,fi,2,…,fi,Hi}
每个步骤表示为:
f i , t = ( s i , t , a i , t , o i , t , ρ i , t ) f_{i,t}=(s_{i,t},a_{i,t},o_{i,t},\rho_{i,t}) fi,t=(si,t,ai,t,oi,t,ρi,t)
其中:
- s i , t s_{i,t} si,t 表示当前语义状态;
- a i , t a_{i,t} ai,t 表示 Agent 执行的原始动作;
- o i , t o_{i,t} oi,t 表示环境返回的观察;
- ρ i , t \rho_{i,t} ρi,t 表示 Agent 对该步骤的自我反思。
4. Skill 调用
系统维护一个已经结晶的 Skill Library:
K \mathcal{K} K
如果当前状态满足某项 Skill 的触发条件,系统检索 Skill:
k = μ ( s i , t , K ) k=\mu(s_{i,t},\mathcal{K}) k=μ(si,t,K)
并使用 Skill 指导行动生成:
a i , t = π L L M ( ⋅ ∣ s i , t , k ) a_{i,t}=\pi_{\mathrm{LLM}}(\cdot\mid s_{i,t},k) ai,t=πLLM(⋅∣si,t,k)
如果没有 Skill 适用,Agent 根据当前状态正常生成行动。
每个 Episode 结束后,系统获得终止反馈:
R i R_i Ri
它可能来自:
环境验证器;
任务奖励;
用户评价;
文本形式的反馈。
MSCE 的目标是最大化累计 Episode 反馈:
∑ i = 1 n R i \sum_{i=1}^{n}R_i i=1∑nRi
四、MSCE 框架总览
为了理解三级记忆、Skill Library 和反馈回填之间的关系,可以先看论文 Figure 1。

图源:Tang et al., 2026,Figure 1:Overview of MSCE with governed memory, skill crystallization, and dual-signal value backfilling。
MSCE 包含四个主要部分:
1. Interaction:
Agent 与用户和环境交互,产生步骤轨迹。
2. Three-Level Governed Memory:
将经验组织成 L1 Trace、L2 Policy 和 L3 Environmental Cognition。
3. Skill Library:
将满足条件的 L2 Policy 结晶为可调用 Skill。
4. Dual-Signal Feedback & Value Backfilling:
使用局部反思和最终反馈为步骤估值。
完整流程可以表示为:
用户任务
↓
Agent 与环境交互
↓
产生 State、Action、Observation、Reflection
↓
写入 L1 Trace Memory
↓
任务结束,获得最终反馈
↓
对每个步骤进行价值回填
↓
从高价值跨任务轨迹中归纳 L2 Policy
↓
从多个 Policy 中抽象 L3 Environmental Cognition
↓
检查 L2 Policy 的证据、收益和稳定性
↓
满足条件?
├── 否:继续作为内部 Policy 积累证据
│
└── 是:结晶为 Skill
↓
确定性验证
↓
进入试用期
↓
根据调用结果激活或归档
需要特别注意:
Skill Library 不是第四级记忆。
三级记忆是 Skill 产生和治理的内部基础,Skill Library 是面向行动 Agent 部署的可调用能力层。
五、L1 Trace Memory:证据层
L1 保存交互过程中产生的步骤级证据:
f i , t ( 1 ) = ( s i , t , a i , t , o i , t , ρ i , t , V ( f i , t ( 1 ) ) ) f_{i,t}^{(1)}= \left( s_{i,t}, a_{i,t}, o_{i,t}, \rho_{i,t}, V(f_{i,t}^{(1)}) \right) fi,t(1)=(si,t,ai,t,oi,t,ρi,t,V(fi,t(1)))
其中:
- s i , t s_{i,t} si,t:语义状态;
- a i , t a_{i,t} ai,t:行动;
- o i , t o_{i,t} oi,t:环境观察;
- ρ i , t \rho_{i,t} ρi,t:自我反思;
- V ( f i , t ( 1 ) ) V(f_{i,t}^{(1)}) V(fi,t(1)):该步骤的价值。
步骤价值最初为未确定状态,等 Episode 结束并获得最终反馈后再进行回填。
1. 为什么需要 L1?
高层策略和 Skill 都可能出现错误归纳。
如果只保留抽象结果,就无法回答:
这项策略来自哪些真实任务?
当时 Agent 看到了什么?
具体执行了什么操作?
环境返回了什么结果?
哪些证据支持这项 Skill?
因此,L1 是 MSCE 的证据层。
L2、L3 和 Skill 都需要保留指向支持证据的链接。
2. L1 不保存无限原始内容
为了控制存储成本和隐私风险,L1 不会无限保存完整观察。
它保存规范化证据:
截断后的状态文本;
Agent 行动文本;
结构化工具调用元数据;
限制长度的工具输入和输出;
反思;
证据标识符。
高层记忆只保存证据 ID,不重复复制完整原始观察。
这种方式可以减少:
记忆膨胀;
重复存储;
敏感内容扩散;
高层抽象与原始证据失去联系。
六、L2 Policy Memory:程序策略层
L2 保存从多个步骤轨迹中归纳出的可复用程序策略:
f ( 2 ) = ( ϕ , π , κ , B , { f ( 1 ) } ) f^{(2)}= \left( \phi,\pi,\kappa,\mathcal{B},\{f^{(1)}\} \right) f(2)=(ϕ,π,κ,B,{f(1)})
其中:
- ϕ \phi ϕ:触发条件;
- π \pi π:自然语言操作流程;
- κ \kappa κ:验证或回退规则;
- B \mathcal{B} B:适用边界;
- { f ( 1 ) } \{f^{(1)}\} {f(1)}:支持该策略的 L1 证据集合。
例如:
Trigger:
容器中 pip install 因缺少系统库而失败。
Procedure:
1. 解析报错中的缺失组件。
2. 识别操作系统和包管理器。
3. 安装对应的开发库。
4. 重新执行 pip install。
Verification:
确认安装成功,并执行 import 验证。
Boundary:
仅适用于缺少系统编译依赖,
不适用于网络、权限或 Python 版本错误。
Evidence:
来自 Alpine lxml 和 Debian psycopg2 两次任务的 L1 轨迹。
1. 哪些 L1 轨迹可以用于策略提取?
L1 获得步骤价值后,MSCE 检查:
V ( f i , t ( 1 ) ) ≥ v min V(f_{i,t}^{(1)})\geq v_{\min} V(fi,t(1))≥vmin
实验中的阈值为:
v_min = 0.1
只有达到阈值的轨迹才能进入:
已有 L2 Policy 关联;
新 Policy 候选池。
2. 如何匹配已有 Policy?
系统综合使用:
Embedding 语义相似度;
领域标签;
工具类型;
规范化错误签名;
结构化触发条件。
如果一条轨迹与已有 L2 Policy 匹配,就更新该 Policy 的支持证据和收益。
如果没有匹配,就按照确定性模式签名放入候选池。
3. 为什么必须来自不同 Episode?
新 L2 Policy 只有在同一个候选池中包含至少 n min n_{\min} nmin 个不同 Episode 的证据时才会生成。
实验设置为:
n_min = 2
也就是说,一次成功轨迹通常不足以直接产生可复用 Policy。
这种限制可以防止:
将单次偶然成功当成通用规律;
从一条很长的轨迹过度拟合策略;
把环境特定路径写入通用流程。
七、Policy Gain:策略收益
MSCE 会估计每项 L2 Policy 的收益:
G ( f ( 2 ) ) = V ‾ w i t h − V ‾ b l e n d ( S w i t h o u t ) G(f^{(2)})=\overline{V}_{\mathrm{with}}- \overline{V}_{\mathrm{blend}}(S_{\mathrm{without}}) G(f(2))=Vwith−Vblend(Swithout)
其中:
- S w i t h S_{\mathrm{with}} Swith 表示与该 Policy 关联的轨迹;
- S w i t h o u t S_{\mathrm{without}} Swithout 表示同一评估池中未关联该 Policy 的其他轨迹;
- V ‾ w i t h \overline{V}_{\mathrm{with}} Vwith 表示使用相关策略时的步骤价值;
- V ‾ b l e n d \overline{V}_{\mathrm{blend}} Vblend 表示未使用该策略时经过保守收缩的平均价值。
可以简单理解为:
使用这项策略的轨迹表现
-
没有使用这项策略的可比轨迹表现
当支持证据不少于 3 条时,MSCE 使用 Softmax 加权平均,更重视高价值轨迹。
证据较少时,使用普通算术平均。
未使用该 Policy 的对照侧会向保守基线收缩,避免样本太少时产生极端收益。
1. Policy Gain 用来做什么?
它影响:
Policy 是否继续保持活跃;
Policy 是否具备 Skill 结晶资格;
Policy 是否需要重新归纳;
Policy 是否应该退休。
2. Policy Gain 不是什么?
论文明确说明:
Policy Gain 是启发式效用信号,不是因果效应估计。
它不能证明:
正是因为调用了这项 Policy,
任务才成功。
关联 Policy 的任务可能本身更简单,也可能存在其他未控制因素。
因此,Policy Gain 更适合用于:
排序;
过滤;
治理;
修订;
而不是被解释成严格的因果贡献。
八、L3 Environmental Cognition:环境认知层
L3 保存环境级的陈述性知识:
f ( 3 ) = ( E , I , C , { f ( 2 ) } ) f^{(3)}= \left( \mathcal{E},\mathcal{I},\mathcal{C},\{f^{(2)}\} \right) f(3)=(E,I,C,{f(2)})
其中:
- E \mathcal{E} E:实体或结构事实;
- I \mathcal{I} I:行动与响应之间的规律;
- C \mathcal{C} C:环境约束;
- { f ( 2 ) } \{f^{(2)}\} {f(2)}:支持该认知的 L2 Policy 集合。
1. L2 和 L3 的区别
L2 回答:
遇到某类问题时应该怎么做?
L3 回答:
这个环境是如何组织的?
它有哪些结构和约束?
例如:
L2 Policy:
当 Python 包因为缺少系统库而编译失败时,
识别包管理器并安装对应开发依赖。
L3 Environmental Cognition:
Python C 扩展依赖通常包含三层:
Python 包;
系统开发库;
底层 C 运行环境。
Alpine 常用 apk;
Debian 和 Ubuntu 常用 apt-get。
L2 是程序性知识,L3 是陈述性环境知识。
2. L3 如何产生?
当多个活跃 L2 Policy 共享相同领域或环境上下文时,MSCE 触发环境认知抽象。
过程为:
多个活跃 L2 Policy
↓
按照领域和环境聚类
↓
提取共同的实体、结构、规律和约束
↓
排除命令式操作流程
↓
生成 L3 Environmental Cognition
实验中,形成 L3 抽象至少需要:
2 个相关 Policy。
3. L3 如何更新?
如果新认知与已有 L3 重叠,系统执行合并。
如果没有重叠,则创建新认知。
当后续证据削弱某条 L3 认知时:
降低置信度;
降低检索优先级;
从默认检索中排除。
低置信度认知不会立即删除,因为它还可能作为:
历史证据;
反例;
后续重新激活的候选知识。
九、为什么 L2 Policy 不能直接当成 Skill?
L2 Policy 和 Skill 具有一些相同字段:
触发条件;
操作流程;
验证规则;
适用边界。
但二者用途不同。
1. L2 Policy 是内部认知对象
L2 Policy 可能:
证据还不充分;
收益不稳定;
适用边界仍在变化;
操作流程尚未标准化;
暂时不适合暴露给行动 Agent。
它主要用于:
聚合证据;
持续修订;
计算收益;
生成更高层环境认知。
2. Skill 是部署对象
Skill 必须具有:
标准化调用接口;
明确触发条件;
有序操作步骤;
参数说明;
验证和回退规则;
适用边界;
证据锚点;
决策指导;
可靠性;
生命周期状态。
因此,Skill 结晶不是简单地修改 L2 Policy 的格式。
它是一次正式的晋升决策:
只有经过证据、收益、稳定性和确定性验证的 Policy,才能成为行动 Agent 可调用的能力。
十、Skill 如何结晶?
一项 Skill 表示为:
k = ( ϕ , π , κ , B , A , D , η ) k= \left( \phi,\pi,\kappa,\mathcal{B}, \mathcal{A},\mathcal{D},\eta \right) k=(ϕ,π,κ,B,A,D,η)
其中:
- ϕ \phi ϕ:触发条件;
- π \pi π:操作流程;
- κ \kappa κ:验证或回退规则;
- B \mathcal{B} B:适用边界;
- A \mathcal{A} A:证据锚点;
- D \mathcal{D} D:决策指导;
- η \eta η:可靠性。
1. 晋升条件一:有证据和正收益
源 L2 Policy 必须:
保留支持它的 L1 证据;
满足正向收益条件。
即:
G ( f ( 2 ) ) > θ G G(f^{(2)})>\theta_G G(f(2))>θG
实验设置为:
θ_G = 0
只有估计收益为正的 Policy 才具备 Skill 晋升资格。
2. 晋升条件二:近期表现稳定
近期证据必须与当前 Policy 的以下内容保持一致:
Trigger;
Procedure;
Boundary。
如果新证据迫使系统大幅重写触发条件、流程或边界,说明 Policy 还不稳定,不应该立即成为 Skill。
3. 正证据和反证据
MSCE 同时使用:
Positive Evidence:
用于归纳共同的成功流程。
Counter-Evidence:
用于识别失败模式和适用边界。
这意味着 Skill 不仅学习:
什么时候应该这样做?
还要学习:
什么时候不应该这样做?
例如:
正证据:
Alpine 和 Debian 容器中缺少系统开发库,
安装对应依赖后 pip 成功。
反证据:
一次 pip 失败实际来自 Python 版本不兼容,
安装系统开发库没有作用。
由此可以形成更准确的边界:
仅适用于缺少本地编译依赖,
不适用于版本冲突。
十一、Skill 如何验证?
Skill 草稿生成后,不会直接进入可调用库。
确定性验证器会依次检查:
1. Schema 检查
Skill 必须包含:
名称;
前置条件;
有序步骤;
示例;
工具列表;
验证规则;
决策指导。
2. 证据检查
Skill 声明的证据 ID 必须来自支持集合。
不能引用不存在或未参与归纳的轨迹。
3. 工具白名单检查
Skill 中声明的工具必须出现在支持轨迹的工具白名单中。
如果历史证据只使用过:
pip;
apk;
apt-get;
python;
Skill 就不能凭空增加一个未出现过的高权限部署工具。
4. 覆盖测试
系统还执行两个轻量覆盖测试,检查 Skill 是否:
发明了证据中不存在的命令;
偏离了保留轨迹所支持的流程。
任何检查失败的 Skill 草稿都会被丢弃,不会暴露给行动 Agent。
十二、Skill 的可靠性和生命周期
Skill 部署后,MSCE 使用平滑成功率估计可靠性:
η = n p a s s + 1 n t r i a l + 2 \eta= \frac{n_{\mathrm{pass}}+1} {n_{\mathrm{trial}}+2} η=ntrial+2npass+1
其中:
- n p a s s n_{\mathrm{pass}} npass 表示成功调用次数;
- n t r i a l n_{\mathrm{trial}} ntrial 表示总调用次数;
- 加 1 和加 2 用于拉普拉斯平滑,避免样本很少时可靠性直接变成 0 或 1。
例如,一项新 Skill 首次调用成功:
η = 1 + 1 1 + 2 = 2 3 \eta=\frac{1+1}{1+2}=\frac{2}{3} η=1+21+1=32
1. 三种生命周期状态
Skill 会经历:
Probationary:
试用状态。
Active:
可以参与默认检索。
Archived:
默认不再召回,但保留审计记录。
实验中的主要阈值为:
激活阈值:
η ≥ 0.6。
归档阈值:
η ≤ 0.2。
新 Skill 首先进入 Probationary。
经过足够调用并达到可靠性阈值后,才进入 Active。
如果出现:
重复失败;
用户明确拒绝;
源 Policy 收益持续为负;
频繁违反适用边界;
Skill 会被归档。
2. Skill 如何修正?
用户纠正或拒绝会:
降低可靠性;
缩小适用边界;
增加反模式;
更新决策指导。
如果源 L2 Policy 发生较大变化,系统不会继续在旧 Skill 上打补丁,而是根据新的证据集合重新构建 Skill。
十三、Skill 如何调用?
在推理阶段,MSCE 采用层级召回。
1. 优先检索 Active Skill
系统首先将当前状态与 Active Skill 的触发条件匹配。
匹配到的 Skill 按照以下因素排序:
触发相关性;
可靠性 η;
源 Policy Gain。
选中的 Skill 会向行动 Agent 提供:
操作流程;
前置条件;
验证规则;
适用边界;
证据锚点;
决策指导。
2. 使用 L3 解释环境
如果当前任务涉及环境结构不确定性,系统检索 L3 Environmental Cognition。
例如:
测试文件在哪里?
配置目录在哪里?
当前系统使用什么包管理器?
哪些文件是只读的?
L3 只提供环境先验,不会覆盖 Skill 的操作流程。
例如,同一项依赖安装 Skill 可以根据 L3 判断:
Alpine:
使用 apk。
Debian:
使用 apt-get。
macOS:
使用 brew。
3. Skill 不适用或失败时回退
如果没有 Skill 匹配,或者 Skill 调用失败,系统回退到 L1 Trace 和 Episode 级检索。
当前任务
↓
检索 Skill
├── 有适用 Skill:调用 Skill
│
└── 无适用 Skill:检索环境认知和历史轨迹
这使系统同时具备:
直接调用成熟能力;
在陌生场景中继续探索;
使用历史证据修复失败 Skill。
十四、双信号值回填解决什么问题?
MSCE 使用两种反馈信号。
1. 局部反思
几乎每个步骤都可能产生反思:
“这条命令失败是因为缺少系统库。”
“我选择先查看 package.json,
因为需要确认项目使用的包管理器。”
“刚才修改了错误的配置文件。”
优点是:
密集;
局部;
容易解释步骤作用。
问题是:
可能不忠实;
可能是事后合理化;
可能过于笼统;
可能没有因果价值。
2. 最终反馈
最终反馈可能来自:
测试是否通过;
任务验证器;
用户满意度;
任务完成分数;
明确的文本反馈。
优点是:
与最终结果直接相关;
通常比反思可靠。
问题是:
稀疏;
延迟;
难以分配到中间步骤。
因此,MSCE 不单独相信任何一类信号,而是用反思权重控制最终反馈如何回填到步骤。
十五、基于双信号的值回填
Episode 最后一步直接继承最终反馈:
V ( f i , H i ( 1 ) ) = R i V(f_{i,H_i}^{(1)})=R_i V(fi,Hi(1))=Ri
对于更早步骤,MSCE 使用:
V ( f i , t ( 1 ) ) = α i , t R i + ( 1 − α i , t ) γ V ( f i , t + 1 ( 1 ) ) V(f_{i,t}^{(1)})= \alpha_{i,t}R_i + (1-\alpha_{i,t}) \gamma V(f_{i,t+1}^{(1)}) V(fi,t(1))=αi,tRi+(1−αi,t)γV(fi,t+1(1))
其中:
- R i R_i Ri:Episode 最终反馈;
- γ ∈ [ 0 , 1 ) \gamma\in[0,1) γ∈[0,1):折扣因子;
- α i , t ∈ [ 0 , 1 ] \alpha_{i,t}\in[0,1] αi,t∈[0,1]:反思权重;
- V ( f i , t + 1 ( 1 ) ) V(f_{i,t+1}^{(1)}) V(fi,t+1(1)):下一步的回填价值。
实验设置:
γ = 0.9
1. 高反思权重
如果当前反思:
忠实对应实际步骤;
指出明确因果关系;
内容具体;
能够迁移到未来任务;
则 α \alpha α 较高。
当前步骤会更多地直接继承最终反馈:
高 α:
当前步骤被认为对最终结果具有局部解释力。
2. 低反思权重
如果反思:
为空;
只是重复结果;
缺少事实支持;
过于笼统;
无法迁移;
则 α \alpha α 较低或为 0。
当前步骤主要继承后续步骤的折扣价值:
低 α:
不相信当前反思对结果的解释,
更多依赖后续轨迹价值。
3. 论文示例
在 Alpine 容器安装 lxml 的案例中:
最终反馈:
R = 0.8。
关键发现步骤的反思权重:
α = 0.7。
折扣因子:
γ = 0.9。
下一步价值:
0.8。
则:
V = 0.7 × 0.8 + ( 1 − 0.7 ) × 0.9 × 0.8 = 0.776 V=0.7\times0.8+(1-0.7)\times0.9\times0.8=0.776 V=0.7×0.8+(1−0.7)×0.9×0.8=0.776
这条发现“缺少系统 C 依赖”的步骤因此获得较高价值,可以进入 L2 Policy 候选池。
十六、反思权重如何计算?
MSCE 使用 LLM 评分器根据步骤上下文和反思计算 α \alpha α。
评分考虑四个方面:
Faithfulness:
反思是否符合实际行动和观察?
Causal Insight:
是否解释了行动与结果的因果关系?
Transferability:
是否能迁移到未来相似任务?
Concreteness:
是否包含具体、可验证的信息?
以下反思应获得较高权重:
pip 安装失败是因为 Alpine 缺少 libxml2-dev 和 libxslt-dev,
下一步应先通过 apk 安装系统依赖,再重试 pip。
以下反思应获得低权重:
刚才的方法不太好,我应该尝试其他办法。
空反思和同义反复会获得:
α = 0
如果关闭反思评分,非空反思统一使用中性值:
α = 0.5
十七、文本反馈如何转成最终奖励?
Episode 最终反馈不一定是数值,也可能是用户文本:
“很好,这次成功了。”
“不对,我让你修改配置,不是删除文件。”
“已经能运行了,但你没有执行测试。”
MSCE 使用 LLM 从三个维度量化文本反馈:
Goal Achievement:
目标完成度。
Process Quality:
执行过程质量。
User Satisfaction:
用户满意度。
实验中的权重为:
目标完成度:
0.45。
过程质量:
0.30。
用户满意度:
0.25。
系统再将三个维度合成为 Episode 终止反馈 R i R_i Ri。
这让 MSCE 可以同时利用:
环境验证器给出的数值奖励;
用户提供的自然语言纠正和评价。
十八、在线更新闭环
MSCE 不更新基础 LLM 参数,而是更新外部认知状态:
C i = ( M ( 1 ) , M ( 2 ) , M ( 3 ) , K ) i \mathcal{C}_i= \left( M^{(1)},M^{(2)},M^{(3)},\mathcal{K} \right)_i Ci=(M(1),M(2),M(3),K)i
其中包括:
L1 Trace Memory;
L2 Policy Memory;
L3 Environmental Cognition;
Skill Library。
Episode 结束后,系统异步执行:
1. 提取并规范化 L1 Trace。
2. 截断过长文本。
3. 提取或生成步骤反思。
4. 计算反思权重 α。
5. 写入暂时没有价值的 L1 Trace。
6. 获得最终反馈 R。
7. 回填每个步骤的价值 V。
8. 将高价值轨迹关联到 L2 Policy 或候选池。
9. 满足跨 Episode 证据数量后归纳新 Policy。
10. 重新计算 Policy Gain 和状态。
11. 从多个活跃 Policy 抽象 L3 环境认知。
12. 检查 Policy 是否具备 Skill 晋升资格。
13. 结晶并验证 Skill。
14. 将 Skill 置于 Probationary 状态。
当出现大量工具失败或用户纠正时,系统还会生成对比式决策指导:
什么操作模式失败了?
什么替代模式更有效?
未来如何识别两种情况?
修复信息不会中断当前动作,而是在下一轮注入。
十九、实验设置
1. EvoAgentBench
主要实验使用 EvoAgentBench,覆盖五个领域:
| 缩写 | 领域 | 数据来源 |
|---|---|---|
| IR | Information Retrieval | BrowseComp-Plus |
| Math | Mathematical Reasoning | OmniMath |
| SE | Software Engineering | SWE-Bench |
| Code | Code Implementation | LiveCodeBench |
| KW | Knowledge Work | GDPVal |
这些领域覆盖:
信息搜索;
数学推理;
软件工程;
代码实现;
通用知识工作。
2. LoCoMo
论文额外在 LoCoMo 上评估长对话记忆。
LoCoMo 主要测试:
单跳记忆;
多跳推理;
时间推理;
开放领域问题;
长期对话一致性。
3. 对比方法
论文比较三类系统。
无长期记忆
Vanilla Agent
它使用相同基础模型和工具,但不保存长期记忆,也不构建 Skill。
记忆驱动方法
EverOS;
Memento;
MemSkill。
这类方法主要复用历史轨迹或存储案例。
轨迹到 Skill 方法
EvoSkill;
OpenSpace;
SkillFlow-Evolve。
这类方法从交互轨迹生成或维护 Skills。
4. 实现设置
所有方法运行在:
OpenClaw v2026.5.7
并使用相同的:
工具权限;
交互预算;
任务顺序。
基础行动模型为:
GPT-5.2
辅助 Prompt 操作使用:
GPT-4o
包括:
反思评分;
L2 Policy 归纳;
L3 环境认知抽象;
反馈量化;
Skill 草稿生成。
论文将 MSCE 称为 Training-Free,表示它不更新基础模型参数。
但这并不代表没有额外推理成本,因为在线更新仍然调用多个辅助 LLM 操作。
5. 评价指标
EvoAgentBench 使用:
Pass@1;
Cost。
Pass@1 是按任务宏平均的成功率。
Cost 在不同领域中的含义不同:
Math:
平均输出字符数。
其他领域:
平均交互轮数。
因此,不同领域的 Cost 不能横向比较,只能在同一领域内比较方法。
论文还特别提醒:
更低 Cost 不一定代表更高效率,也可能是 Agent 过早失败或提前停止。
二十、EvoAgentBench 主要结果
论文 Table 1 的核心结果如下:
| 领域 | 最强非 MSCE 方法 | 对比方法 Pass@1 | MSCE Pass@1 | 提升 | 对比 Cost → MSCE Cost |
|---|---|---|---|---|---|
| IR | EverOS | 21.54% | 26.15% | +4.61 pp | 14.0 → 8.7 |
| Math | EverOS | 43.00% | 47.00% | +4.00 pp | 1745.3 → 1140.9 |
| SE | MemSkill | 38.46% | 53.85% | +15.39 pp | 37.3 → 40.8 |
| Code | EvoSkill | 61.54% | 61.54% | 持平 | 3.9 → 2.0 |
| KW | EvoSkill | 48.28% | 53.45% | +5.17 pp | 15.3 → 15.0 |
MSCE 在五个领域中均达到最佳或并列最佳 Pass@1。
1. Information Retrieval
MSCE 从 21.54% 提高到 26.15%,同时平均交互轮数从 14.0 降到 8.7。
这说明复用搜索和验证 Skill 有助于减少重复探索。
2. Mathematical Reasoning
MSCE 从 43.00% 提高到 47.00%。
Cost 从 1745.3 个字符下降到 1140.9。
可能的作用是:
复用问题识别模式;
选择更稳定的解题过程;
保留验证规则;
减少无效推导。
不过,Math 的 Cost 是字符数,不等于模型总 Token 或实际计算成本。
3. Software Engineering
MSCE 的最大提升出现在软件工程:
38.46% → 53.85%
提高 15.39 个百分点。
但 Cost 从 37.3 轮增加到 40.8 轮。
这说明更高成功率并不是通过更快结束获得的。
成功的软件工程任务通常需要:
浏览仓库;
定位文件;
修改代码;
运行测试;
根据结果再次修复。
MSCE 可能让 Agent 更愿意完成验证流程,因此交互轮数反而增加。
4. Code Implementation
MSCE 与 EvoSkill 都达到:
61.54%
但 Cost 从:
3.9 轮 → 2.0 轮
说明在成功率不变的情况下,MSCE 的 Skill 更快引导 Agent 完成代码实现。
5. Knowledge Work
MSCE 达到 53.45%,比最强非 MSCE 基线提高 5.17 个百分点。
Cost 基本持平:
15.3 → 15.0
二十一、LoCoMo 长对话记忆结果
论文 Table 2 的结果如下:
| 方法 | Single | Multi | Temporal | Open | Overall | F1 |
|---|---|---|---|---|---|---|
| Vanilla Agent | 28.18 | 21.63 | 12.15 | 39.58 | 24.35 | 25.95 |
| Memento | 48.51 | 14.18 | 28.04 | 13.54 | 35.78 | 30.02 |
| EverOS | 59.93 | 46.10 | 38.32 | 29.17 | 50.97 | 41.58 |
| EvoSkill | 42.45 | 27.30 | 19.94 | 16.67 | 33.38 | 25.51 |
| OpenSpace | 54.93 | 37.59 | 34.89 | 21.88 | 45.52 | 36.94 |
| MemSkill | 52.91 | 29.43 | 31.46 | 13.54 | 41.69 | 34.00 |
| SkillFlow-Evolve | 74.08 | 46.81 | 41.43 | 25.00 | 59.22 | 48.71 |
| MSCE | 75.98 | 47.87 | 44.24 | 28.13 | 61.23 | 49.89 |
MSCE 的 Overall 为:
61.23
比 SkillFlow-Evolve 的 59.22 高 2.01 个点。
F1 从:
48.71 → 49.89
提高 1.18 个点。
1. 单跳、多跳和时间推理
MSCE 在三个类别中均取得最高分:
Single:
75.98。
Multi:
47.87。
Temporal:
44.24。
这说明三级记忆不仅适用于工具任务,也能保留长期对话中的事实证据和跨会话依赖。
2. Open-Domain 结果需要谨慎解释
MSCE 的 Open-Domain 得分为:
28.13
低于 Vanilla Agent 的:
39.58
如果排除 Vanilla Agent,EverOS 的 29.17 是最高记忆方法结果,MSCE 排名第二。
因此,不能写成 MSCE 在 LoCoMo 的每个类别中都最好。
更准确的结论是:
MSCE 在单跳、多跳、时间推理、Overall 和 F1 上领先,但在 Open-Domain 上没有领先。
二十二、跨领域泛化
为了理解不同领域积累的记忆和 Skill 能否迁移,可以看论文 Figure 2。

图源:Tang et al., 2026,Figure 2。
蓝色柱表示跨领域初始化带来的 Pass@1 提升,橙色折线表示相对 Cost 变化。
论文比较两种设置:
Intra:
只在目标领域中进行演化和评估。
Cross:
先加载源领域积累的记忆和 Skills,
再在目标领域继续演化和评估。
六组迁移结果如下:
| 迁移方向 | Pass@1 提升 | Cost 变化 |
|---|---|---|
| IR → Math | +4.00 pp | -2.7% |
| IR → KW | +3.45 pp | -5.7% |
| Math → Code | +2.56 pp | +4.6% |
| SE → Code | +5.13 pp | +8.1% |
| Code → SE | +3.84 pp | -3.0% |
| KW → IR | +4.62 pp | -4.2% |
六组迁移的 Pass@1 全部提高:
最小提升:
+2.56 pp。
最大提升:
+5.13 pp。
平均提升:
+3.93 pp。
其中四组迁移同时降低 Cost。
但两个迁移到 Code 的组合:
Math → Code;
SE → Code;
Cost 分别增加 4.6% 和 8.1%。
因此,更准确的结论是:
跨领域记忆和 Skill 在六组实验中都提高了成功率,但不保证同时降低执行成本。
二十三、长期累积演化
论文 Figure 3 展示了随着经验不断积累,Agent 的成功率和成本如何变化。

图源:Tang et al., 2026,Figure 3。
左图展示 Pass@1,右图展示相对于初始阶段 p0 的归一化 Cost。
其中:
p0:
没有经验积累。
p25:
积累 25% 经验。
p50:
积累 50% 经验。
p100:
积累完整经验。
1. Pass@1 持续提高
| 阶段 | Math | SE | IR |
|---|---|---|---|
| p0 | 30.0 | 38.5 | 12.3 |
| p25 | 38.0 | 42.3 | 18.5 |
| p50 | 43.0 | 50.0 | 23.1 |
| p100 | 47.0 | 53.9 | 26.2 |
从 p0 到 p100:
Math:
+17.00 pp。
SE:
+15.39 pp。
IR:
约 +13.84 pp。
三个领域均表现出单调提升。
2. 成本不是一直下降
归一化 Cost 如下:
| 阶段 | Math | SE | IR |
|---|---|---|---|
| p0 | 1.00× | 1.00× | 1.00× |
| p25 | 1.38× | 1.32× | 1.78× |
| p50 | 1.08× | 1.16× | 1.55× |
| p100 | 0.88× | 0.99× | 1.27× |
早期积累阶段,成本明显上升。
可能原因包括:
Agent 调用更多验证步骤;
Skill 仍在试用和修正;
系统需要处理更多候选记忆;
早期经验尚未稳定形成成熟能力。
到 p100:
Math 成本低于 p0;
SE 成本略低于 p0;
IR 成本仍比 p0 高 27%。
因此,不能简单地说:
经验越多,成本一定越低。
更准确的说法是:
经验积累持续提高成功率,部分领域在 Skill 成熟后降低成本,但信息检索领域的长期成本仍高于初始设置。
二十四、消融实验
论文 Table 3 的 Pass@1 结果如下:
| 变体 | IR | Math | SE | Code | KW |
|---|---|---|---|---|---|
| Full MSCE | 26.15 | 47.00 | 53.85 | 61.54 | 53.45 |
| Flat Memory | 10.77 | 31.00 | 34.62 | 56.41 | 37.93 |
| w/o L3 | 23.08 | 43.00 | 50.00 | 58.97 | 48.28 |
| w/o Value Calibration | 24.62 | 44.00 | 50.00 | 58.97 | 50.00 |
| w/o Reflection Weighting | 21.54 | 40.00 | 46.15 | 56.41 | 46.55 |
| w/o Skill Crystallization | 20.00 | 39.00 | 42.31 | 53.85 | 44.83 |
1. Flat Memory
Flat Memory 将所有经验放入一个非层级记忆库,测试时直接检索。
它不包含:
L1、L2、L3 分层;
策略归纳;
适用性控制;
Skill 结晶。
相比完整 MSCE,Pass@1 分别下降:
IR:
-15.38 pp。
Math:
-16.00 pp。
SE:
-19.23 pp。
Code 的成功率下降相对较小,但 Cost 从:
2.0 → 5.3 轮
这说明:
仅仅检索过去经验不足以实现高效复用,关键在于层级抽象、适用性判断和 Skill 化。
2. 移除 L3 Environmental Cognition
移除 L3 后,五个领域均下降。
例如:
IR:
26.15 → 23.08。
Math:
47.00 → 43.00。
KW:
53.45 → 48.28。
这说明可复用操作流程之外,Agent 仍需要环境结构和约束作为执行先验。
3. 移除 Value Calibration
移除价值校准后,系统会直接注入召回的 Skills,而不根据价值判断适用性。
结果是五个领域的成功率全部下降,Cost 全部上升。
这说明:
找到语义相关 Skill 不等于应该调用这项 Skill。
Skill 仍然需要根据:
历史收益;
当前适用条件;
可靠性;
反证据;
进行过滤。
4. 移除 Reflection Weighting
移除反思权重后,反馈会更均匀地分配到步骤。
五个领域都出现下降:
IR:
26.15 → 21.54。
Math:
47.00 → 40.00。
SE:
53.85 → 46.15。
这说明,利用局部反思区分步骤贡献,比简单地将最终奖励平均传播到全部步骤更有效。
但该结果只说明当前反思评分机制在实验中有帮助,不代表获得了严格的因果信用分配。
5. 移除 Skill Crystallization
移除 Skill 结晶后,L2 Policy 不会转化为可调用能力。
五个领域分别下降:
IR:
-6.15 pp。
Math:
-8.00 pp。
SE:
-11.54 pp。
Code:
-7.69 pp。
KW:
-8.62 pp。
而且五个领域的 Cost 全部上升。
这是组件级消融中最稳定的下降。
它支持本文的核心观点:
将经验保存为记忆还不够,稳定程序策略需要进一步转化为可直接调用的 Skill。
二十五、模拟人类反馈
论文还使用 LLM 模拟 Episode 级人类反馈。
模拟导师不会直接提供:
最终答案;
完整代码;
针对测试样本的捷径。
它主要指出:
Agent 当时想做什么;
哪里偏离了正确路径;
为什么造成失败;
未来应该记住什么通用原则;
哪些证据应该优先检查。
在评估阶段不会生成模拟反馈,只使用在线演化阶段已经积累的记忆和 Skill。
结果显示,加入模拟反馈后,五个领域中有四个提高:
Knowledge Work:
+13.79 pp。
Software Engineering:
+7.69 pp。
Code:
+2.56 pp。
Information Retrieval:
+1.54 pp。
Math:
保持不变。
数学任务没有提升,可能说明其瓶颈更多来自精确符号推理,而不是缺少过程性反馈。
Cost 的变化并不一致:
部分工具任务成本下降;
Math 和 Knowledge Work 成本上升。
因此,文本反馈的作用更接近提供额外学习信号,而不是稳定降低成本。
二十六、MSCE 的局限性
1. 价值、收益和可靠性都是启发式信号
MSCE 使用:
步骤价值 V;
Policy Gain;
Skill Reliability η;
治理记忆和 Skill。
但这些信号都不是因果效应估计。
一项 Skill 具有正 Gain,并不能证明:
调用它一定导致任务成功。
任务难度、工具状态和其他策略都可能影响结果。
2. Training-Free 不等于没有训练成本
MSCE 不更新 GPT-5.2 的模型参数,因此被称为 Training-Free。
但在线演化需要 GPT-4o 执行:
反思评分;
文本奖励量化;
L2 Policy 归纳;
L3 环境认知抽象;
Skill 草稿生成。
这些操作会增加:
模型调用次数;
延迟;
Token 成本;
系统实现复杂度。
实验中的 Cost 主要是行动交互轮数或输出字符数,并不是完整系统成本。
因此,不能根据 Cost 表直接得出 MSCE 的总推理费用一定更低。
3. Prompt 操作仍然可能产生错误
虽然系统要求输出保留证据 ID,并通过确定性检查过滤 Skill,但辅助 LLM 仍可能:
错误理解轨迹;
生成不准确触发条件;
过度概括环境规律;
遗漏重要边界;
错误估计反思质量。
Schema 验证能够检查格式和引用,但不一定能发现所有语义错误。
4. 可能结晶出危险 Skill
历史轨迹中可能包含:
高权限命令;
敏感文件路径;
生产环境操作;
破坏性数据库命令;
用户隐私信息;
安全绕过方法。
即使一项操作过去成功,也不代表它应该被自动结晶和复用。
生产系统还需要:
危险工具黑名单;
权限分级;
人工审批;
参数安全检查;
沙箱验证;
Skill 发布审核。
5. 适用边界可能过度泛化
跨领域迁移实验全部提高成功率,但两个迁移到 Code 的组合增加了成本。
这说明跨域 Skill 有帮助,但也可能触发:
额外检查;
不必要的流程;
过度验证;
错误的领域类比。
Skill 的 Boundary 和记忆路由仍需更精细地校准。
6. 依赖具体运行时和模型
论文实验依赖:
OpenClaw v2026.5.7;
GPT-5.2;
GPT-4o;
特定工具接口;
固定任务顺序。
换成其他模型、Agent 框架或工具协议后,绝对结果可能发生变化。
7. 隐私风险
MSCE 保存:
规范化轨迹;
证据标识符;
程序策略;
环境认知;
可执行 Skills。
即使使用截断、去重和规则脱敏,也可能保留:
用户敏感信息;
环境密钥;
内部路径;
私有仓库结构;
不安全操作经验。
实际部署还需要更强的访问控制和数据治理。
二十七、我的理解和启发
1. 记忆和 Skill 的根本区别是执行性
记忆主要回答:
过去发生过什么?
过去发现了什么?
以前做过什么?
Skill 则回答:
什么时候触发?
具体应该怎么做?
需要哪些参数?
如何验证?
什么时候不能使用?
失败后如何回退?
因此:
Memory:
可供推理参考的信息。
Skill:
可直接进入行动控制流程的能力。
2. Skill 不应该直接从单次成功轨迹生成
一次成功可能来自:
正确策略;
偶然环境状态;
隐藏的人工干预;
宽松测试;
错误操作后的偶然恢复。
更稳妥的 Skill 生成流程应该是:
多次独立任务证据
↓
发现重复模式
↓
归纳触发条件和操作流程
↓
加入反证据和适用边界
↓
估计收益
↓
验证工具和证据
↓
进入试用期
这比“任务成功后自动生成 Skill”可靠得多。
3. 反例对 Skill 质量很重要
很多 Skill 系统只从成功轨迹提取共同流程。
但真正决定 Skill 能否安全复用的,往往是失败案例。
成功案例告诉系统:
应该做什么。
失败案例告诉系统:
什么时候不能这样做;
什么条件下会失败;
应该增加哪些验证;
边界应该缩小到哪里。
因此,自己的 Agent 项目中可以为每项 Skill 维护:
Positive Cases;
Negative Cases;
Known Failure Modes;
Applicability Boundary。
4. 环境认知和操作流程应该分开
MSCE 将 L2 Policy 和 L3 Environmental Cognition 分开,这一点很有工程价值。
例如:
环境知识:
项目的测试位于 tests/;
配置修改后需要重启服务;
生产数据库是只读的。
操作 Skill:
修改配置文件后运行测试并重启开发服务。
环境知识是陈述性的,Skill 是程序性的。
如果二者混在一起:
Skill 会过度绑定单个仓库;
环境变化后整个流程需要重写;
同一 Skill 难以跨环境复用。
5. Skill 需要生命周期,而不是生成后永久保留
生产级 Skill 至少应该经历:
Draft;
Probationary;
Active;
Deprecated;
Archived。
同时记录:
调用次数;
成功次数;
失败次数;
用户纠正;
最近使用时间;
源 Policy;
证据集合;
版本。
如果环境升级或工具接口变化,旧 Skill 不能继续默认调用。
6. 可以如何应用到自己的 Agent?
如果在自己的代码 Agent 中实现简化版 MSCE,我会使用以下结构:
L1 Trace:
任务、状态、工具调用、结果、反思、最终反馈。
L2 Procedure:
触发条件、步骤、验证、边界、正反证据。
L3 Project Cognition:
仓库结构、构建系统、测试路径、环境限制。
Skill:
面向 Agent 调用的标准化执行对象。
每项 Skill 可以设计成:
name:
install_native_python_dependency
trigger:
pip 安装失败,错误指向缺少系统头文件或本地库。
preconditions:
已经确认不是网络、权限或 Python 版本问题。
steps:
1. 解析缺失组件。
2. 识别操作系统。
3. 查询对应开发包。
4. 安装系统依赖。
5. 重试 pip。
6. 执行 import 验证。
verification:
Python import 成功。
boundary:
仅限开发或容器环境;
生产环境需要人工确认。
evidence:
trace_102、trace_245。
reliability:
0.82。
7. 与前面论文的联系
| 方法 | 核心关注点 |
|---|---|
| Mem0 | 事实记忆的生命周期管理 |
| A-MEM | 记忆之间的动态链接和演化 |
| TrustMem | 记忆更新的可靠性验证 |
| HORMA | 层级工作空间和主动检索 |
| Proactive Memory Agent | 记忆何时介入行动 |
| HiMem | 情节证据与抽象知识的层级组织 |
| MSCE | 从受治理记忆中晋升可调用 Skills |
可以把这些方法连接成一条发展路线:
保存历史
↓
抽取事实
↓
组织记忆
↓
验证更新
↓
主动召回
↓
介入决策
↓
结晶为可执行 Skill
MSCE 的核心增量不是又增加了一种记忆格式,而是:
为 Memory 到 Skill 的转化加入证据、价值、边界、验证和生命周期治理。
二十八、总结
本文提出 MSCE,一个不更新基础模型参数的 Memory-Skill Co-Evolution 框架。
它首先将 Agent 经验组织成三级记忆:
L1 Trace Memory:
保存步骤级证据和价值。
L2 Policy Memory:
从跨 Episode 证据中归纳程序策略。
L3 Environmental Cognition:
抽象环境结构、规律和约束。
在此基础上,只有满足以下条件的 L2 Policy 才能晋升为 Skill:
保留真实支持证据;
估计收益为正;
近期表现稳定;
触发条件和边界清晰;
通过 Schema、证据和工具白名单检查。
Skill 部署后还会通过可靠性管理经历:
Probationary;
Active;
Archived。
为了给长轨迹中的步骤分配价值,MSCE 将:
密集但可能有噪声的局部反思;
稀疏但更可靠的最终反馈;
结合为反思加权的值回填机制。
实验表明,MSCE 在 EvoAgentBench 五个领域中均达到最佳或并列最佳 Pass@1,并在 LoCoMo 的 Overall 和 F1 上领先。
跨领域迁移的六组实验全部提高成功率,长期演化实验也显示经验积累能够持续提高 Pass@1。
但需要注意:
跨领域迁移不一定降低成本;
早期经验积累会增加推理成本;
Information Retrieval 在 p100 时成本仍高于 p0;
Policy Gain 不是因果效应;
Training-Free 不代表没有额外 LLM 成本;
证据验证也不能完全消除错误或危险 Skill。
因此,更准确的结论是:
MSCE 验证了从证据记忆、程序策略到可调用 Skill 的分层晋升路线,但其长期成本、跨环境稳定性和安全治理仍需要更充分的实验。
这篇论文给我的最大启发是:
Agent 的自我进化不应该是把每次成功轨迹都写成 Skill,而应该让经验先经过证据积累、价值评估、边界识别和可靠性验证,再逐步晋升为可执行能力。
参考资料
- Bo Tang, Yang Zhang, Guomian Zhuang, Wenqiang Wei, Gaoyang Zheng, Lindong Xie, Yanchao Tan, Feiyu Xiong, Qingyu Yang, Edward Chung, Zhiyu Li. From Memory to Skills: Evidence-Grounded Co-Evolution Governance for Long-Horizon LLM Agents. arXiv, 2026.
- MemTensor/MemOS 代码仓库
更多推荐


所有评论(0)