SkeMex 公式背后的原始问题:为什么文本/向量方案不够用

精读前的朴素问题:论文引入的每个公式、参数,解决的是什么原始问题?这些问题在用原始文本记录或向量库时为什么解决不了?


一、核心问题链

SkeMex 要解决的不是”如何让 agent 记住东西”——RAG 已经解决了这个问题。它要解决的是:

如何在不回训模型的前提下,让 agent 从交互中学到”什么经验对未来的任务真正有用”,并且这份经验能自我维护、不退化。

把这个拆开,每个子问题对应一个公式或机制:

子问题文本/向量方案的局限SkeMex 的解决
1. 经验该以什么形式存?原始轨迹太长、太吵技能单元 m_i = (k_i, c_i, u_i)
2. 检索时该召回哪些?只用语义相似度,与质量无关价值感知检索 (Eq.5)
3. 怎么知道一个经验好不好?没有反馈信号优势估计 + 信用分配
4. 好经验和坏经验混在一起怎么办?仓库无限制膨胀四阶段治理 (废弃/成熟/合并/归档)
5. 不同抽象层次的经验互相干扰?扁平存储三支分仓 (Eq.4)

二、逐公式分析

公式 1: Memory-based MDP

原始问题:如何形式化地定义”一个带着记忆的 agent”的行为空间?

文本/向量方案的局限

  • 原始轨迹方案把记忆当成”一段文本塞进 prompt”,没有一个形式化的框架来描述记忆和决策之间的交互。你不知道记忆是在 decision 之前还是之后被更新的,也不知道记忆的质量如何影响整体策略。
  • 向量方案把记忆当成”检索到的 top-K 文本块”,同样没有建模记忆的动态演化。

SkeMex 的做法:把记忆提升为一等公民 M,和状态 S、动作 A、奖励 E 并列。这迫使你回答:记忆在每一步如何参与决策?如何被更新?这为后续所有公式建立了形式基础。


公式 2: 记忆增强策略

原始问题:检索 (μ) 和推理 (p_θ) 是两个独立步骤,它们如何耦合影响最终行为?

文本/向量方案的局限

  • 原始轨迹方案没有”检索”这一步——所有历史都塞进 context window。耦合是隐含的(模型自己决定看哪部分),无法显式控制和优化。
  • 向量方案有检索步骤,但检索评分只用余弦相似度——和 p_θ 的质量无关。你检索到的东西”语义上相关”,但”对推理有没有帮助”是另一回事。

SkeMex 的做法:把检索 μ 显式建模为策略的一部分。这意味着检索可以被优化——不是优化”相似度”,而是优化”对最终决策的贡献”。


公式 3: 轨迹因式分解

原始问题:整个交互过程中的因果关系是什么?每个模块在哪个位置起作用?

文本/向量方案的局限

  • 文本方案没有 U(记忆更新算子)。轨迹就是 token 序列,做完就结束了。下次新 case,旧的轨迹要么全塞进去(token 爆炸),要么扔掉(经验浪费)。
  • 向量方案有一个隐式的 U(新向量插入数据库),但 U 是”无条件全量追加”——不管这个经验好不好,都往里塞。

SkeMex 的做法:把记忆更新 U 显式化为轨迹的一部分,并且 U 的输入包含奖励 r_t。这意味着:记忆更新是有条件的、被奖励信号校准的。不只是”存下来”,而是”根据结果决定怎么存”。


公式 4: 三支分仓

原始问题:一个关于”如何写搜索查询”的技能和一个关于”鉴别诊断的策略”的技能,应该放在同一个检索池里竞争吗?

文本/向量方案的局限

  • 文本方案:所有经验都是文本块,flat 存储。向量检索时,“如何格式化药物剂量”和”如何区分心梗和心绞痛”在语义空间中完全可能因为都含有”临床”一词而被同等对待。结果:细粒度的操作性技能被粗粒度的策略性记忆淹没。
  • 向量方案:可以按 metadata 分 namespace,但 metadata 是静态人工标注的。当一个技能在”鉴别诊断”类别中学到的东西也适用于”治疗规划”时,metadata 分仓反而会阻碍跨类别迁移。

SkeMex 的做法:按抽象层次分仓(通用 / 任务级 / 行动级),不是按内容标签分。通用分支里的技能可以被所有任务检索到(带类别条件效用),而行动分支里的技能天然被限定在具体的工具操作场景。分仓的维度是 抽象层次,不是内容标签。


公式 5: 价值感知检索打分

原始问题:检索不应该只回答”这个经验语义上相关吗”,还应该回答”这个经验在类似场景下真的帮到过忙吗”。

文本/向量方案的局限

  • 向量方案只有第一项 λ_sim·Sim —— 余弦相似度。这完全无法区分”一个看起来相关但历史上每次用都导致错误诊断的技能”和”一个看起来不那么相关但历史上用对了七次的技能”。
  • 文本方案连显式的 Sim 都没有——模型隐性判断相关性,完全黑箱。

SkeMex 的做法:三通道打分:

  1. Sim: 语义匹配(和向量方案一样)
  2. U(m|κ): 类别条件的效用——这个技能在同类临床场景下的历史表现如何?这是向量方案完全缺失的维度。
  3. h(m): 记忆强度带遗忘衰减(Ebbinghaus 曲线)——一个技能如果很久没被成功使用,它的记忆强度会自然衰减。这防止了”一个三周前有效但已经过时的技能”永远霸占 Top-K。

三个通道的权重 λ 是可调的,允许在不同场景下平衡”相关性”和”可靠性”。


公式 6: 基于意图的技能写入

原始问题:不是每条轨迹都应该变成一个新技能。有些轨迹只是已有技能的重复验证,有些是已有技能的增量改进,有些根本不值得记录。

文本/向量方案的局限

  • 原始轨迹方案:每条轨迹都存。导致大量冗余——同一个诊断模式出现了 50 次,就存了 50 条几乎一样的记录。检索时 50 条一起回来,token 预算被重复信息占据。
  • 向量方案:可以 dedup,但 dedup 是静态的(基于文本相似度)。你没法区分”两条相似但一条成功一条失败的轨迹”——相似度 dedup 可能把失败的那条删了,留下成功的;也可能反过来。

SkeMex 的做法

  • CREATE: 这是一个新的、有价值的模式 → 新建技能
  • PATCH: 这增强了一个已有技能 → 增量更新,不新建
  • NONE: 这条轨迹没有信息增量 → 丢弃

决定权不在”文本相似度”,而在模式新颖性分析 + 质量门控。新颖性门控检查草稿是否和已有技能在语义和结构上都重复;质量门控检查是否包含”具体可执行的触发条件和步骤”。两者都是”内容质量”维度的判断,不是”文本距离”维度的判断。


优势估计与信用分配(无编号公式,第三节核心逻辑)

原始问题:一个技能被检索到了,但最终的临床结果是成功还是失败取决于很多因素(病人情况、当时检索到的其他技能、模型自身的推理能力)。怎么把”最终结果”公平地归因到”某个技能”上?

文本/向量方案的局限

  • 文本/向量方案完全没有效用追踪。你不知道哪个历史记录在哪个场景下帮了忙。即使你手动给每条轨迹打分,分数也和记忆库里特定条目的贡献没有对应关系。
  • 这是整个系统中最根本的缺失——没有反馈闭环。记忆只进不出,质量不评估,效用不追踪。

SkeMex 的做法

  1. 优势而非绝对奖励: A_τ = r_τ - r̄(κ)。不是因为 r_τ = 0.8 就说这轮做得好——难度校正后:如果这个类别的平均表现是 0.75,那 0.8 只是 barely better。如果平均是 0.3,那 0.8 是巨大进步。
  2. 只给”被采纳的技能”分配信用: 一个技能被检索到了但 agent 在推理中根本没用到(no adoption)→ 不奖不罚。避免把无关技能和决策结果错误关联。
  3. 窗口级而非样本级: 医学任务难度方差大,单样本评估噪声太高。窗口级聚合多个轨迹后评估,信号更稳定。

三、总结:一张对比表

维度原始文本轨迹向量库 (RAG)SkeMex
存储形式完整对话记录文本块 + embedding技能单元 (k, c, u)
检索依据无(全量塞入)仅语义相似度语义 + 效用 + 遗忘
写入策略无条件追加全量入库(可去重)意图驱动: CREATE/PATCH/NONE
质量控制去重(按文本)新颖性门控 + 质量门控
效用追踪优势估计 + 信用分配
仓库维护无(无限膨胀)无(无限膨胀)废弃/成熟/合并/归档
抽象层次扁平扁平(metadata 可分 namespace)三支分仓(按抽象层次)
参数更新不需要(但也不进化)不需要(但也不进化)不需要模型更新,但记忆持续进化

四、一句话总结每个公式

公式/机制一句话回答”为什么需要它”
M-MDP (Eq.1)因为文本/向量方案把记忆当”附加上下文”,没有形式化它在决策中的位置
策略分解 (Eq.2)因为检索的质量直接影响推理质量,但不能只靠语义匹配来定义”质量”
轨迹因式分解 (Eq.3)因为记忆更新 U 不能是无条件的——它必须被奖励 r_t 校准
三支分仓 (Eq.4)因为操作技能和策略技能在同一个检索池里竞争是不公平的
检索打分 (Eq.5)因为”语义相关”≠“历史有效”,需要效用维度来区分”看似好”和”真的好”
技能写入 (Eq.6)因为不是每条经验都值得变成新技能——有的是重复,有的是增量,有的是噪音
优势 + 信用分配因为”最终结果好”不能平均归功于所有被检索的技能——只奖励真正被采纳的