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 的做法:三通道打分:
- Sim: 语义匹配(和向量方案一样)
- U(m|κ): 类别条件的效用——这个技能在同类临床场景下的历史表现如何?这是向量方案完全缺失的维度。
- h(m): 记忆强度带遗忘衰减(Ebbinghaus 曲线)——一个技能如果很久没被成功使用,它的记忆强度会自然衰减。这防止了”一个三周前有效但已经过时的技能”永远霸占 Top-K。
三个通道的权重 λ 是可调的,允许在不同场景下平衡”相关性”和”可靠性”。
公式 6: 基于意图的技能写入
原始问题:不是每条轨迹都应该变成一个新技能。有些轨迹只是已有技能的重复验证,有些是已有技能的增量改进,有些根本不值得记录。
文本/向量方案的局限:
- 原始轨迹方案:每条轨迹都存。导致大量冗余——同一个诊断模式出现了 50 次,就存了 50 条几乎一样的记录。检索时 50 条一起回来,token 预算被重复信息占据。
- 向量方案:可以 dedup,但 dedup 是静态的(基于文本相似度)。你没法区分”两条相似但一条成功一条失败的轨迹”——相似度 dedup 可能把失败的那条删了,留下成功的;也可能反过来。
SkeMex 的做法:
- CREATE: 这是一个新的、有价值的模式 → 新建技能
- PATCH: 这增强了一个已有技能 → 增量更新,不新建
- NONE: 这条轨迹没有信息增量 → 丢弃
决定权不在”文本相似度”,而在模式新颖性分析 + 质量门控。新颖性门控检查草稿是否和已有技能在语义和结构上都重复;质量门控检查是否包含”具体可执行的触发条件和步骤”。两者都是”内容质量”维度的判断,不是”文本距离”维度的判断。
优势估计与信用分配(无编号公式,第三节核心逻辑)
原始问题:一个技能被检索到了,但最终的临床结果是成功还是失败取决于很多因素(病人情况、当时检索到的其他技能、模型自身的推理能力)。怎么把”最终结果”公平地归因到”某个技能”上?
文本/向量方案的局限:
- 文本/向量方案完全没有效用追踪。你不知道哪个历史记录在哪个场景下帮了忙。即使你手动给每条轨迹打分,分数也和记忆库里特定条目的贡献没有对应关系。
- 这是整个系统中最根本的缺失——没有反馈闭环。记忆只进不出,质量不评估,效用不追踪。
SkeMex 的做法:
- 优势而非绝对奖励: A_τ = r_τ - r̄(κ)。不是因为 r_τ = 0.8 就说这轮做得好——难度校正后:如果这个类别的平均表现是 0.75,那 0.8 只是 barely better。如果平均是 0.3,那 0.8 是巨大进步。
- 只给”被采纳的技能”分配信用: 一个技能被检索到了但 agent 在推理中根本没用到(no adoption)→ 不奖不罚。避免把无关技能和决策结果错误关联。
- 窗口级而非样本级: 医学任务难度方差大,单样本评估噪声太高。窗口级聚合多个轨迹后评估,信号更稳定。
三、总结:一张对比表
| 维度 | 原始文本轨迹 | 向量库 (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) | 因为不是每条经验都值得变成新技能——有的是重复,有的是增量,有的是噪音 |
| 优势 + 信用分配 | 因为”最终结果好”不能平均归功于所有被检索的技能——只奖励真正被采纳的 |