deepseek harness 进化方向5:长期记忆与统一 seam 思考、设计与实现

作者:DeepSeek Harness
地址:https://gitee.com/ZachPineappleman/dsh_memory.git

DeepSeek Harness Evolution 5: Long‑Term Memory & Unified Seam — Design, Theory, and Implementation


摘要

随着大语言模型(LLM)agent 从单次对话走向长期任务执行,长期记忆成为决定 agent 实用性的关键基础设施。本文针对 DeepSeek Harness(dsh)——一个"一切皆插件"的 agent harness 框架——提出其长期记忆能力的系统性设计与实现方案。我们首先通过源码级盘点发现:dsh 已具备记忆的七个"零件"(AGENTS.md 指令加载、跨会话引用、技能、溢出落盘、KV 存储、会话检索、上下文压缩),但缺乏统一的记忆抽象——社区 59 个记忆插件各自定义工具名、注入方式与存储格式,生态碎片化严重。基于此,本文提出并实现三大创新点:N1 统一 Memory Provider 抽象 seamctx.memory Definition/Provider/Consumer 三角色,收敛碎片化);N2 基于事件溯源的引用式无损记忆(以 sessionId + eventRange + contentHash/HMAC 索引指向原始会话日志而非复制内容,实现不重复存储、信息无损、全链路可审计、可展开回原文);N3 受操作系统存储层次启发的 L0–L4 分层记忆模型(注册表/会话内/工作区/跨会话库/远程,配 LRU 淘汰与分层召回)。此外设计了记忆治理接口(门控钩子、遗忘机制、审计日志、可信度评分)。我们实现最小原型插件 dsh-memory 验证 N1/N2/N3:统一 seam 接口、引用式 Provider(remember/recall/expand + HMAC 校验)、分层标签与 LRU 淘汰、治理接口,并通过单元测试与记忆保持冒烟测试。本文的贡献在于:(1) 首次将"事件溯源引用式记忆"系统化应用于 agent harness;(2) 给出统一记忆 seam 的完整接口设计以收敛生态碎片化;(3) 将 OS 存储层次理论映射为可落地的分层记忆模型。

关键词:agent harness;长期记忆;事件溯源;引用式记忆;统一 seam;分层记忆;记忆治理;DeepSeek Harness


1 引言

1.1 背景:agent 长期记忆的需求与碎片化现状

LLM agent 的能力边界正从"单次对话问答"扩展到"跨会话、跨任务、跨项目的长期执行"。[R4](ReAct)确立了推理-行动交错范式,[R9](MemGPT)则最早提出"记忆即操作系统"的比喻——将记忆视为 agent 的内存管理问题。然而,长期记忆的工程化落地仍面临根本性挑战:记忆应该存什么、怎么存、何时召回、如何保证可信与可审计

这一挑战在 dsh 生态中表现得尤为突出。dsh 社区(awesome-dsh-plugin)的"记忆"分类下已有 59 个记忆插件,方案分裂严重:文件型(Markdown/JSON)、SQLite+FTS、向量+图、引用式、生物仿生、协议桥接(MCP)、多层蒸馏……各插件自行定义工具名(remember/memorize/save_memory…)、注入方式(pre-step/工具调用/会话结束)、存储格式(互不兼容)。这种碎片化不仅让用户难以选择,更让"记忆"这一能力无法被 dsh 官方统一治理(安全、审计、权限)。

1.2 问题陈述

本文围绕四个研究问题展开:

  • RQ1(统一性):如何为 dsh 定义一个统一的记忆抽象(seam),收敛 59 个插件的碎片化,同时不排斥任何已有方案?
  • RQ2(无损与可审计):如何让记忆既"信息无损"(不经过有损摘要)又"全链路可审计"(每个记忆可回溯到原始证据)?
  • RQ3(分层管理):如何借鉴成熟理论(操作系统存储层次)设计记忆的分层模型与淘汰策略,平衡"快速入语境"与"精确回查"?
  • RQ4(治理):如何设计记忆的治理接口(门控、遗忘、审计、可信度),应对记忆投毒、隐私泄露与遗忘权等安全威胁?

1.3 主要贡献

本文的贡献可概括为三点创新 + 一个原型:

  • N1 统一 Memory Provider 抽象 seam:定义 ctx.memory 的 Definition/Provider/Consumer 三角色(对齐 dsh 的 skill/sandbox seam 范式),统一记忆原语(remember/recall/forget/expand)、工具名、注入时机与存储抽象——收敛 59 插件碎片化的"官方接口"。
  • N2 基于事件溯源的引用式无损记忆:记忆条目不复制内容,而是携带 sessionId + eventRange + contentHash + HMAC 指向 dsh 的 append-only 会话日志;召回时经 expand() 精确展开回原文。信息无损、不重复存储、可审计(HMAC 防篡改)、天然与 dsh 事件溯源架构契合。
  • N3 OS 存储层次启发的 L0–L4 分层记忆:将记忆组织为注册表(L0)→ 会话内(L1)→ 工作区文件(L2)→ 跨会话记忆库(L3)→ 远程(L4)五层,配 LRU 淘汰与分层召回(L2/L3 快速入语境、L1/L0 具体事实回查)。
  • 原型 dsh-memory:实现上述 seam 接口、引用式 Provider、分层/治理接口,通过单元测试与记忆保持冒烟测试验证。

1.4 论文组织

第 2 章相关工作(记忆系统分类学/框架对标/引用式与事件溯源/治理与安全);第 3 章理论基础与 Gap(dsh 记忆设施盘点 + 四大研究 Gap);第 4 章系统设计(统一 ctx.memory seam 总体架构);第 5 章三大创新点详述;第 6 章实现(最小原型,含架构图);第 7 章记忆治理设计;第 8 章讨论(与经典理论/工业实践对照、局限);第 9 章结论与展望。


2 相关工作

2.1 LLM 记忆系统分类学

记忆系统的学术分类已趋成熟。[EV5-05](2026 记忆综述)提出"存储(trajectory preservation)→ 反思(trajectory refinement)→ 经验(trajectory abstraction)"三阶段演化框架,并给出 write-manage-read 操作分类;[EV5-06](Memory in the Age of AI Agents)从"记忆年龄"视角分析记忆的时效性;[EV5-07](长期记忆安全综述)提出"记忆主权(mnemonic sovereignty)"概念,强调写授权与溯源标签。主流的架构类型包括 Buffer-based(原始会话缓存)、Retrieval-based(向量/混合检索)、Generative(摘要/蒸馏)、Graph-based(知识图谱)与 Hybrid[EV5-05][EV5-08]。蒸馏路线的最新进展包括 NEMORI 的预测误差蒸馏[EV5-11]与 CoreMem 的 Fisher 引导蒸馏[EV5-13];跨模型蒸馏方面,Agent Memory Distillation 以分层教师记忆赋能小模型[EV5-14]。检索路线上,HippoRAG 以海马突触可塑性启发长期记忆固化[EV5-18],HetaRAG 验证了向量+关键词+RRF 融合的混合检索收益[EV5-19]。

对 dsh 的意义:分类学为统一 seam 的"记忆条目类型"设计提供了词汇(事实/决策/偏好/摘要);三阶段演化框架暗示记忆应支持从原始轨迹到经验抽象的渐进转换——这与 dsh 已有的事件溯源日志(原始)与 compaction(摘要)天然衔接。

2.2 主流框架的记忆系统

我们对主流框架做了九维源码级对标(分层模型/存储抽象/写入触发/召回策略/原语/注入时机/生命周期/溯源审计/缺陷),关键结论[EV5 工业实践对照]:

框架 分层 存储抽象 溯源审计 核心缺陷
LangChain BaseMemory 2 层(过简) 21 种后端 弱(无行级定位) 无自动溢出机制
LlamaIndex ChatMemoryBuffer 3 层流水 SQL+Vector 中(sessionId+FIFO) 并发竞态
MemGPT/letta 3 层(标杆) 纯内存结构 弱(无记忆→会话关联) 依赖 LLM 压缩、token 成本高
claude-mem 2 层 SQL(PG/SQLite) 行级溯源 SQL 复杂度
TencentDB-Agent-Memory L0–L3 三件套 core/hub/proxy 分层召回+RRF 依赖外部服务

共同缺陷溯源审计普遍弱——多数框架的记忆是"复制式存储"(蒸馏/摘要后存入独立库),丢失了与原始会话的关联;即使有 sessionId 标记,也缺乏"记忆 → 原始证据区间"的可校验引用。这是本文 N2 的出发点。

2.3 引用式记忆与事件溯源

事件溯源[EV5-01][EV5-02]:状态 = 事件流重放;dsh 的 SessionEvent 日志(44 个事件键、append-only、seq 连续)正是其工程实现(来源:packages/core/session)。

引用式记忆(reference-based memory):不复制内容,只保存指向原始内容的索引指针。代表工作:[EV5-23] Jesse-njx/dsh-memory(sessionId+eventRange,dsh 社区)、[EV5-26] Recall-Agent(引用指针原型)、[EV5-25] Cogito-ergo(93.4% R@1 验证指针有效性)、[EV5-24] BettyGuo/agent-memory(HMAC 签名至原始轨迹区间,可审计)。学术侧,[EV5-20] 提出区块链索引(Merkle+ECDH)的不可变记忆;[EV5-21] Eywa 提出溯源落地记忆;[EV5-22] Mem0 提供生产级可扩展记忆流水线。

空白:现有工作要么是"引用指针但无事件溯源底座"(Recall-Agent/Cogito-ergo),要么是"事件溯源但无引用式记忆接口"(dsh 自身日志)。将"事件溯源日志 + 引用式记忆 + HMAC 可校验"三者系统化整合的完整协议仍是空白——这正是 N2 的定位。

2.4 记忆治理与安全

记忆安全已成为独立研究领域[EV5-07]:记忆投毒[EV5-28] MemoryGraft(检索-生成循环的持久损害)、[EV5-29] 防投毒的起源绑定权限、[EV5-32] 黑盒视觉假记忆攻击;隐私与遗忘权[EV5-30] 个人数据量化、[EV5-31] 多用户动态访问控制;可信与审计[EV5-34] MemMark 归因水印、[EV5-33] 执行证明记忆、[EV5-35] TRUSTMEM 可信巩固、[EV5-36][EV5-37] 记忆-遗忘基准。

对 dsh 的意义:治理接口设计(门控钩子、遗忘机制、审计日志、可信度评分)应吸收上述威胁模型——尤其是"引用式记忆天然携带溯源信息"这一特性,使记忆的审计成本远低于复制式存储。


3 理论基础与 Gap

3.1 dsh 现有记忆设施盘点(源码级)

依据对 packages/ 的逐行精读(详见 digests/A1-记忆设施盘点.md),dsh 已具备记忆的七个零件:

记忆职责 现有零件 记忆角色
宪法(AGENTS.md) agent-instructions 工作区指令加载(baseline 进上下文、fs 触碰触发投影)
引用(跨会话) session-reference 跨会话快照(URI 方案 + 投影 + 预算 + 安全注入)
工序(技能) skill 技能注册表(seam 范式范本)
溢出(临时) spill 超限输出落盘(SpillRef 引用模式)
持久(存储) storage KV 存储 hub(JSON/SQLite 后端)
检索 session-query 会话全文检索 + 精确事件读取
淘汰 compaction 上下文压缩(区间替换为摘要)

核心判断:dsh 的记忆零件已相当完整,且都遵循 seam 设计范式;但"记忆"作为独立概念没有统一 seam——无 ctx.memory、无统一工具名(remember/recall/forget)、无统一注入时机。方向5 不是"从零造记忆",而是"把 7 个现成零件用 ctx.memory seam 串成一条链"

3.2 四大研究 Gap

Gap 1(生态碎片化):59 个记忆插件各立门户,无官方接口标准(根源:无 ctx.memory seam)。→ N1

Gap 2(复制式存储有损且不可审计):主流记忆系统蒸馏/摘要后存独立库,信息有损、无原始出处回溯;"事件溯源引用式记忆"系统研究空白。→ N2

Gap 3(分层模型缺落地):学术界有分层理论(MemGPT 三层、TencentDB L0-L3),但"自动蒸馏 + 淘汰 + 分层召回"鲜有可落地实现;OS 存储层次未映射到 agent 记忆。→ N3

Gap 4(治理无统一框架):记忆投毒/隐私/门控/审计研究分散,无统一治理接口。→ 第 7 章


4 系统设计:统一 ctx.memory seam

4.1 设计原则

基于第 3 章的盘点与 Gap,dsh 记忆系统遵循四条设计原则:

  1. 复用不重造ctx.memory 是"串链层",不是新的存储/检索/压缩实现——持久化复用 storage seam,检索复用 session-query,注入复用 agent-instructions 的 pre-step 时机,淘汰参考 compaction
  2. seam 范式对齐:完全对齐 dsh 既有的 skill/sandbox seam 结构(Service Definition / Service Provider / Consumer),使官方记忆接口与既有生态同构。
  3. 无损可审计:默认 Provider 用引用式记忆(指向会话日志原文),信息无损、可展开、可校验(HMAC)。
  4. 分层可治理:记忆条目带 tier 标签(L1–L4),支持 LRU 淘汰与治理钩子(门控/审计/遗忘/可信度)。

4.2 总体架构

记忆系统的总体架构如下图所示(图 1):

在这里插入图片描述

图 1:统一记忆系统架构:模型工具(Consumer)→ ctx.memory(Service Definition)→ Provider 注册表(引用式默认 Provider + 可选增强 Provider)→ 底层复用 dsh 现有零件(storage/session-query/session 日志/agent-instructions)。

架构角色划分:

角色 包/职责 说明
Service Definition dsh-memory(service.ts) ctx.memory 服务:remember/recall/forget/expand + Provider 注册表
Service Provider provider-reference(默认) 引用式记忆:sessionId+eventRange+HMAC 索引
Consumer tool-memory(模型工具) memory_remember/memory_recall/memory_forget 工具(defineTool)
治理接口 governance.ts 门控钩子、审计日志、遗忘操作、可信度评分(可插拔)

4.3 seam 接口定义

// dsh-memory 核心类型(Service Definition 视角)
export type MemoryTier = 'L1' | 'L2' | 'L3' | 'L4'  // N3 分层标签

export interface MemoryEntry {
  readonly id: string              // 记忆条目 id(品牌类型 MemoryId)
  readonly sessionId: SessionId    // 来源会话
  readonly eventRange: { start: number; end: number }  // N2 引用式:事件区间
  readonly contentHash: string     // SHA-256,校验引用完整性
  readonly hmac: string            // HMAC 签名(防篡改,吸收 [EV5-24][EV5-29])
  readonly summary?: string        // 可选摘要(供 L2/L3 快速入语境)
  readonly tier: MemoryTier        // 分层标签
  readonly tags: string[]          // 可检索标签
  readonly createdAt: number
  readonly trustScore: number      // 可信度评分(治理)
  readonly scope: ScopeKey         // 作用域(对齐 dsh scope)
}

export interface MemoryProvider {
  readonly name: string
  remember(input: RememberInput): Promise<MemoryEntry>
  recall(query: RecallQuery): Promise<RecallResult[]>
  forget(id: MemoryId, scope?: string): Promise<void>
  expand(id: MemoryId): Promise<ExpandedMemory>  // 解引用回原始日志
}

export class MemoryService extends Service {
  static inject = ['sessionQuery', 'storage', 'sessions']  // 复用现有零件
  constructor(ctx: Context) { super(ctx, 'memory') }
  registerProvider(name: string, provider: MemoryProvider): () => void
  remember(input: RememberInput): Promise<MemoryEntry>
  recall(query: RecallQuery): Promise<RecallResult[]>
  forget(id: MemoryId, scope?: string): Promise<void>
  expand(id: MemoryId): Promise<ExpandedMemory>
}

Consumer 工具(对齐 defineTool 范式,来源:packages/core/tools/src/schema.ts):

  • memory_remember(content, { tags?, tier? }) → 记忆条目(带 sessionId+eventRange 引用)
  • memory_recall(query, { tier?, tags?, limit? }) → 相关记忆列表(含引用,可展开)
  • memory_forget(id) → 删除记忆(支持作用域)

注入时机:记忆召回结果在 agent/pre-step(waterfall)之后、system-prompt/assemble 之前注入(对齐 agent-instructions 的 pre-step 时机,来源:packages/context/agent-instructions/src/index.ts);显式 memory_recall 工具供模型按需召回。


5 核心创新点

5.1 N1:统一 Memory Provider 抽象 seam(收敛碎片化)

问题:59 个记忆插件各立门户,用户无法组合、官方无法治理。

方案:定义 ctx.memory 为可插拔 Provider seam(第 4.3 节接口)。任一既有插件只要实现 MemoryProvider 接口(remember/recall/forget/expand),即可被官方 seam 收纳;官方 Consumer 工具(memory_remember 等)对所有 Provider 提供统一的模型可见接口——模型不再需要知道底层是文件型还是向量型。

与既有 seam 的同构性(对齐 skill seam,来源:packages/skill/skill/src/index.ts):

  • registerProvider 对应 skill 的 provider 注册表;
  • 作用域分层(ScopeKey)对齐 skill 的 NamedEntries/ScopedLayers
  • Provider 可替换:默认引用式,可替换为混合检索(RRF)或远程(MCP)。

收敛效果:工具名统一(memory_*)、注入时机统一(pre-step + 按需工具)、存储抽象统一(Provider 接口),而不排斥任何已有存储方案——文件型/SQLite/向量/引用式均可作为 Provider 实现接入。

5.2 N2:基于事件溯源的引用式无损记忆

问题:主流记忆系统复制式存储(蒸馏/摘要后存独立库),信息有损、不可审计。

方案:记忆条目不复制内容,携带 sessionId + eventRange + contentHash + HMAC 指向 dsh 的 append-only 会话日志(图 2):

在这里插入图片描述

图 2:引用式记忆:memory_remember 在会话日志上建立带引用的索引(不复制内容);memory_recall 返回记忆条目;expand(id) 经 session-query 精确事件读取展开回原文;contentHash/HMAC 校验引用完整性。

核心机制

  1. 引用(Reference)sessionId 唯一标识会话,eventRange {start, end} 精确指向日志事件区间。dsh 会话日志 seq 单调连续(来源:packages/core/session),引用稳定。
  2. 无损(Lossless):不经过摘要/蒸馏,expand() 展开的是原始 user/messageassistant/messagetool/result 事件——信息零损失。
  3. 可审计(Auditable)contentHash = SHA-256(事件区间序列化) 校验引用完整性;hmac 签名(吸收 [EV5-24] BettyGuo 与 [EV5-29] 起源绑定)保证记忆条目未被篡改。expand() 时重算哈希比对,检测日志篡改。
  4. 复用:解引用复用 session-query 的精确事件读取(readFrom);索引持久化复用 storage seam(SQLite/JSON)。

与复制式的权衡(吸收 digests/A4 分析):

维度 引用式(本文) 复制式(主流)
存储成本 低(只存指针) 高(存内容)
信息保真度 无损(取原文) 有损(摘要/蒸馏)
可审计性 (可反查+HMAC) 弱(无原始出处)
检索延迟 高一次解引用
适合场景 事实/决策/偏好(需可追溯) 高频语义检索

设计要点:对于高频语义检索场景(如"找上次讨论过 X 的内容"),N2 的引用式 Provider 可输出 summary 字段(可选,L2/L3 层)供快速匹配,命中后再 expand() 取原文——兼顾速度与无损。

5.3 N3:OS 存储层次启发的 L0–L4 分层记忆

问题:记忆分层理论(MemGPT 三层、TencentDB L0-L3)缺乏统一模型与淘汰策略;"一层一解"难以落地(Gap 3)。

方案:借鉴操作系统存储层次(寄存器→Cache→主存→SSD→远程,来源:reference/Computer-operating-system-notes/ 与 [EV5-09] “记忆即 OS”)与页面置换(LRU),定义 L0–L4 五层记忆模型(图 3):

在这里插入图片描述

图 3:分层记忆:L0 注册表(Provider 目录,常驻)→ L1 会话内(当前会话日志,自动)→ L2 工作区文件(AGENTS.md/记忆文件,按需)→ L3 跨会话记忆库(引用式索引,LRU 淘汰)→ L4 远程记忆(MCP/云,可选)。

内容 访问速度 容量 淘汰策略 dsh 对应
L0 Provider 注册表/技能目录 常驻 极小 ctx.memory 注册表、ctx.skills
L1 当前会话日志 上下文窗口 compaction session 日志
L2 工作区文件(AGENTS.md 等) 磁盘 手动 agent-instructions
L3 跨会话记忆库(引用式索引) 磁盘 LRU 本文 Provider
L4 远程记忆(MCP/云) 服务端 扩展接口

分层召回(tier-aware recall)recall(query) 默认在 L2/L3 快速匹配(用 summary/tags 关键词 + FTS),命中后如需细节再 expand() 取 L1 原文——"快速入语境、精确回查"双轨。L4 远程作为可选增强(对接 MCP 记忆服务)。

LRU 淘汰:L3 记忆库维护访问时间戳;超容量阈值时按最近最少使用淘汰(保留 tier=L3 且 trustScore 高的条目)。淘汰策略接口化(EvictionPolicy),可替换为其他策略。


6 实现:最小原型插件 dsh-memory

6.1 插件结构与构建

原型插件位于 dsh-memory/(工作区独立目录),对标已交付的 model-router/benchmark-plugin 插件结构(TypeScript + vitest + cordis bundle 声明):

dsh-memory/
├── package.json          # dsh.bundle 声明(cordis.patch.yml)
├── cordis.patch.yml      # 插件行(可被 profile 安装)
├── tsconfig.json
├── src/
│   ├── index.ts          # 插件入口(apply)
│   ├── service.ts        # Service Definition:ctx.memory(N1)
│   ├── provider-reference.ts  # 引用式默认 Provider(N2)
│   ├── layers.ts         # L0-L4 分层 + LRU 淘汰(N3)
│   ├── governance.ts     # 门控/审计/遗忘/可信度(治理)
│   └── tool.ts           # Consumer 工具(memory_remember/recall/forget)
├── tests/
│   ├── service.spec.ts
│   ├── provider-reference.spec.ts
│   ├── layers.spec.ts
│   └── governance.spec.ts
└── README.md

构建与测试pnpm build(tsc)+ pnpm test(vitest)。

6.2 核心实现要点

service.ts(N1 seam)MemoryService extends Servicesuper(ctx, 'memory') 注册 ctx.memoryregisterProvider(name, provider) 维护 Provider 注册表(对齐 skill seam 的 provider 注册);remember/recall/forget/expand 委托到当前 Provider,并提供默认治理钩子(门控检查、审计记录)。

provider-reference.ts(N2)

  • remember(input):接收 { content, sessionId, eventRange }(由调用方/工具提供引用目标),计算 contentHash = SHA-256(事件区间序列化)hmac = HMAC-SHA256(secret, contentHash),生成 MemoryEntry,索引持久化经 ctx.storage(SQLite/JSON)。
  • recall(query):关键词/FTS 匹配 summary/tags(默认 Provider 用简单子串+标签匹配,避免向量库依赖),按 trustScore 排序,返回带引用的条目。
  • expand(id):校验 contentHash/hmac(防篡改)→ 经 ctx.sessionQuery 精确事件读取 eventRange → 返回完整原始事件。

layers.ts(N3)tier 字段(L1–L4)强制标签;LRU 淘汰(维护访问时间戳,超容量阈值淘汰最久未用,保留高 trustScore);recall 分层策略(L2/L3 快速匹配 summary,命中后 expand() 回查原文)。

governance.ts(治理)gate 钩子(作用域/可信度检查,返回 {allowed, authority, provenance});audit 记录({timestamp, subject, action, objectId, provenanceHash, trustScore, reason});forget 知识隔离式删除(只删索引,日志保持 append-only);trustScore 计算(来源信誉 + 时间新鲜度 + 一致性,可插拔策略)。

6.3 与论文创新点的对应

论文章节 插件模块 验证方式
N1(第 5.1 节) service.ts + tool.ts seam 接口可编译;Provider 可注册/可替换(单测桩)
N2(第 5.2 节) provider-reference.ts remember→recall→expand 闭环测试;HMAC 篡改检测
N3(第 5.3 节) layers.ts 分层标签 + LRU 淘汰单测
治理(第 7 章) governance.ts 门控/审计/遗忘单测

6.4 记忆保持冒烟测试

对标 benchmark-plugin 的评测思路,设计一个最小"记忆保持"冒烟:会话 A 中 memory_remember("用户偏好简洁回答", {tags:["偏好"]}) → 新会话 B 中 memory_recall("偏好") → 断言命中 m2 并 expand() 展开回原文。该测试验证"跨会话记忆保持"这一核心价值。


7 记忆治理设计

7.1 威胁模型(依据 2026 年记忆安全研究)

[EV5-28] MemoryGraft 实证了"经验记忆投毒"攻击:攻击者植入恶意"成功经验",agent 的语义模仿启发式会跨会话采纳不安全模式;[EV5-07](A8#9)提出记忆生命周期框架(Write/Store/Retrieve/Execute/Share/Forget × 完整性/机密性/可用性/治理),核心结论是 LTM 安全无法在检索或执行时事后修补,必须从存储时就锚定溯源(provenance)、版本化与策略感知留存;[EV5-29](A8#6 TMA-NM)形式化证明"写入时来源绑定"是防洗白攻击的必要条件;[EV5-32][EV5-33] 展示了黑盒假记忆攻击与伪造推理攻击。

A8 精读提炼的三条共性结论(溯源从可选项变安全刚需 / 写路径是攻防主战场 / 分层隔离是结构性方案)直接塑造本文治理设计:

7.2 治理接口(governance.ts

依据 A5 调研与上述威胁模型,设计四类治理接口:

  1. 门控钩子(Gating)check_access(subject, object, action) → {allowed, authority, provenance}。支持按 Agent 作用域、会话上下文、记忆敏感级别动态决策;门链模式(多层验证,最高权限决定)。写路径门控优先(吸收"写路径是攻防主战场"结论):remember 前校验来源可信度、内容敏感度。
  2. 遗忘机制(Forgetting)forget(id, scope) 知识隔离式删除(只删索引,日志保持 append-only——与事件溯源不可变语义一致);生命周期策略(TTL、activity-based expiration、LRU)。
  3. 审计日志(Audit):所有读写操作记录 {timestamp, subject, action, objectId, provenanceHash, trustScore, reason};记忆条目本身携带 provenance(sessionId+eventRange+contentHash+hmac),天然满足"存储时溯源"要求。
  4. 可信度评分(Trust):基于来源信誉、时间新鲜度、一致性计算 trustScore;低可信度记忆标记为"引用场景"而非"直接采纳"。

7.3 与 N2 的协同:引用式记忆天然可审计

本文的引用式设计(N2)在治理上具有结构性优势:每个记忆条目携带 contentHashhmacexpand() 时重算比对即可检测篡改——溯源不是附加字段而是记忆的本体。这与 [EV5-07] 的"存储时溯源"结论、[EV5-29] 的"来源绑定权威"主张、[EV5-34] MemMark 的"溯源可验证物化"方向一致。与复制式存储相比,引用式的审计成本更低(无需对内容副本做额外校验,校验对象就是原始日志本身)。


8 讨论

8.1 与经典理论的关系

  • 事件溯源 / CQRS[EV5-01][EV5-02][EV5-03]:dsh 会话日志是事件溯源工程实现("模型可见即已记录"不变量);本文 N2 将记忆定义为日志上的引用索引——写侧 append 事件、读侧投影记忆视图,与 CQRS 读写分离完全对应。
  • OS 存储层次[EV5-04][EV5-09]:L0–L4 分层 + LRU 淘汰直接借用虚拟内存/页面置换理论;"记忆即 OS"比喻(MemGPT)在本文落地为具体分层模型。
  • 能力 seam 范式(dsh 架构):ctx.memory 与 skill/sandbox seam 同构,确保与既有生态兼容。

8.2 与工业实践对照

  • claude-memreference/claude-mem):MemoryItem 四类(observation/summary/prompt/manual)+ facts/concepts/filesRead 结构化字段 + MemorySource 溯源——本文 MemoryEntry 的 tags/summary/eventRange 字段设计直接吸收其结构化思想。
  • TencentDB-Agent-Memoryreference/TencentDB-Agent-Memory):L0–L3 分层沉淀 + 分层召回 + RRF + 三件套(core/hub/proxy)——本文 N3 的分层召回与其高度一致,但引用式默认 Provider 避免了其对向量库的依赖。
  • AgentSys[EV5-15](A8#8):主/worker 进程隔离 + 确定性 JSON 边界——"隔离 + 结构化边界"思想与本文治理门控互补(AgentSys 防注入、本文防污染+审计)。

8.3 与 2026 年最新研究的定位

A8 精读的 10 篇论文揭示了本方向的最新竞争格局:

  • 溯源记忆:Eywa[EV5-21](证据先于信念,LoCoMo 90.19%)与本文 N2 同方向,但 Eywa 是"证据→规范事实"的自建存储,本文 N2 直接复用 dsh 会话日志(零额外存储),且提供统一 seam 接口——工程成本更低、生态兼容更强。
  • 分层记忆:TiMem[EV5-12](LoCoMo 75.30%)、HiMem[EV5-10] 各有分层方案,但均绑定自建框架;本文 N3 的分层是 seam 之上的"标签 + 策略",可跨 Provider 复用。
  • 防投毒:TMA-NM[EV5-29](攻击成功率 0%)证明"写入时来源绑定"必要性——本文 hmac 签名正是其轻量工程化(非形式化保证,标注为启发而非等价)。
  • 统一 seam:AgentSys[EV5-15] 的确定性边界思想最接近,但面向"隔离安全"而非"记忆抽象";本文 ctx.memory 是首个面向 dsh 的记忆统一 seam。

8.4 局限

  1. 原型验证深度:最小原型聚焦接口正确性与基本路径(remember/recall/expand + HMAC + LRU),未实现混合检索(D)、完整门控策略(E)、跨层自动蒸馏(F)——论文做理论、工程留扩展接口(与既有计划一致)。
  2. 评估基准:未在 LoCoMo/LongMemEval 等标准基准上做量化评测(原型阶段),后续可对接 benchmark-plugin 扩展记忆维度(对齐方向2 的评测闭环)。
  3. 安全保证级别:HMAC 签名是"防篡改检测"而非 TMA-NM 的"机器校验保证"(形式化)——定位为工程启发,不宣称形式化安全。
  4. 依赖会话日志可访问性:引用式记忆依赖 dsh 日志持久化可用;日志删除会失效对应记忆(可接受:日志是架构真源)。

9 结论与展望

9.1 结论

本文针对 dsh 的长期记忆能力提出系统性设计与实现:N1 统一 ctx.memory seam(收敛 59 插件碎片化)、N2 事件溯源引用式无损记忆(sessionId+eventRange+HMAC,不复制内容、可审计、可展开回原文)、N3 OS 存储层次启发的 L0–L4 分层记忆(LRU 淘汰 + 分层召回),并设计了记忆治理接口(门控/遗忘/审计/可信度)。最小原型插件 dsh-memory 验证了三项创新点的可实现性。

本文的核心主张可概括为:在事件溯源架构之上,记忆应当是被引用的"索引视图"而非被复制的"内容副本"——这一设计同时满足无损(信息零损失)、可审计(HMAC 防篡改 + 天然溯源)、低存储(只存指针)三重需求,且与 dsh 的"模型可见即已记录"架构红线天然契合。2026 年最新研究(Eywa/TMA-NM/AgentSys/MemMark)从溯源、防投毒、隔离、水印四个方向独立收敛到"溯源锚定 + 写路径治理 + 分层隔离"的共识,印证了本文方向的前瞻性。

9.2 展望

  • D 混合检索:为 Provider 增加 BM25+向量+RRF 融合(对接 dsh-memoria 社区方案),解决语义模糊查询。
  • E 完整门控:与 dsh-memory-gate 协同,实现可解释的采用/核验/忽略决策。
  • F 自动蒸馏:参考 NEMORI[EV5-11] 的预测误差蒸馏,实现 raw→summary→archive 的自动化跨层传递(吸收 compaction 机制)。
  • 评估闭环:将记忆维度纳入 benchmark-plugin(对接 LoCoMo/LongMemEval [EV5-37][EV5-36])。
  • 生态治理:作为官方 seam 发布后,推动 59 个社区插件迁移接入(吸收 [EV5-07] 的"存储时溯源"为强制要求)。

参考文献

[EV5-01] M. Fowler. Event Sourcing. 2005. martinfowler.com/eaaDev/EventSourcing.html

[EV5-02] M. Fowler. CQRS. martinfowler.com/bliki/CQRS.html

[EV5-03] M. Fowler. The Many Meanings of Event-Driven Architecture. 2017. martinfowler.com/articles/201701-event-driven.html

[EV5-04] 计算机操作系统笔记. reference/Computer-operating-system-notes/

[EV5-05] P. Du. Memory for Autonomous LLM Agents: Mechanisms, Evaluation, and Emerging Frontiers. arXiv:2603.07670, 2026.

[EV5-06] Memory in the Age of AI Agents. arXiv:2512.13564, 2025.

[EV5-07] Z. Lin, X. Hao, R. Fu, et al. A Survey on Long-Term Memory Security in LLM Agents: Attacks, Defenses, and Governance Across the Memory Lifecycle. arXiv:2604.16548, 2026.

[EV5-08] Toward Conversational Agents with Context and Time Sensitive Long-term Memory. arXiv:2406.00057, 2024.

[EV5-09] C. Packer, S. Woodruff, et al. MemGPT: Towards LLMs as Operating Systems. arXiv:2310.08560, 2023.

[EV5-10] N. Zhang, X. Yang, Z. Tan, et al. HiMem: Hierarchical Long-Term Memory for LLM Long-Horizon Agents. arXiv:2601.06377, 2026.

[EV5-11] W. Ma, J. Nan, W. Wu, et al. What Deserves Memory: Adaptive Memory Distillation for LLM Agents(NEMORI). arXiv:2508.03341, 2025.

[EV5-12] K. Li, X. Yu, Z. Ni, et al. TiMem: Temporal-Hierarchical Memory Consolidation for Long-Horizon Conversational Agents. arXiv:2601.02845, 2026.

[EV5-13] J. Chen, Y. Zeng, S. Chen, et al. CoreMem: Riemannian Retrieval and Fisher-Guided Distillation for Long-Term Memory. arXiv:2606.18406, 2026.

[EV5-14] T. Kim, K. Kim, S. J. Hwang. Agent Memory Distillation: Empowering Small LLM Agents with Hierarchical Teacher Memory. arXiv:2608.07169, 2026.

[EV5-15] R. Wen, H. Li, C. Xiao, et al. AgentSys: Secure and Dynamic LLM Agents Through Explicit Hierarchical Memory Management. arXiv:2602.07398, 2026.

[EV5-18] B. Stephan, et al. HippoRAG: Neurobiologically Inspired Long-Term Memory for Large Language Models. arXiv:2405.14831, 2024.

[EV5-19] Zhang, et al. HetaRAG: Hybrid Deep Retrieval-Augmented Generation across Heterogeneous Data Stores. arXiv:2509.21336, 2025.

[EV5-20] Wang, et al. On Immutable Memory Systems for Artificial Agents: A Blockchain-Indexed Automatic Memory System. arXiv:2506.13246, 2025.

[EV5-21] R. Joshi. Eywa: Provenance-Grounded Long-Term Memory for AI Agents. arXiv:2605.30771, 2026.

[EV5-22] P. Chhikara, D. Khant, S. Aryan, et al. Mem0: Building Production-Ready AI Agents with Scalable Long-Term Memory. arXiv:2504.19413, 2025.

[EV5-23] Jesse-njx. dsh-memory. github.com/Jesse-njx/dsh-memory, 2026.

[EV5-24] BettyGuo. agent-memory. github.com/bettyguo/agent-memory, 2026.

[EV5-25] Cogito-ergo(PyPI). pypi.org/project/cogito-ergo, 2026.

[EV5-26] joonspk-research. Recall-Agent. github.com/joonspk-research/recall-agent, 2025.

[EV5-28] S. Srivastava, H. He. MemoryGraft: Persistent Compromise of LLM Agents via Poisoned Experience Retrieval. arXiv:2512.16962, 2025.

[EV5-29] Y. Louck. Securing LLM-Agent Long-Term Memory Against Poisoning: Non-Malleable, Origin-Bound Authority with Machine-Checked Guarantees(TMA-NM). arXiv:2606.24322, 2026.

[EV5-30] Stauffer, et al. What Should LLMs Forget? Quantifying Personal Data in LLMs for Right-to-Be-Forgotten. arXiv:2507.11128, 2025.

[EV5-31] Gao, et al. Collaborative Memory: Multi-User Memory Sharing in LLM Agents with Dynamic Access Control. arXiv:2505.18279, 2025.

[EV5-32] H. Bouzidi, et al. Do Agents Dream of False Memories? Black-box Visual Attacks on Long-term Memory. arXiv:2607.15657, 2026.

[EV5-33] M. Rahman, J. Kim. Proof-of-Execution Memory: Defending LLM Agents Against Forged-Reasoning Attacks. arXiv:2608.16032, 2026.

[EV5-34] H. Zhang, X. Mao, G. Dong, et al. MemMark: State-Evolution Attribution Watermarking for Agent Long-Term Memory Systems. arXiv:2605.25002, 2026.

[EV5-35] T. Yang, S. Paul, V. Srinivasan, et al. TRUSTMEM: Learning Trustworthy Memory Consolidation for LLM Agents with Long-Term Memory. arXiv:2606.25161, 2026.

[EV5-36] M. Uddin, K. Shubham, E. Blanco. From Recall to Forgetting: Benchmarking Long-Term Memory for Personalized Agents. arXiv:2604.20006, 2026.

[EV5-37] A. Cherif. AgentMemBench: A Systematic Benchmark for Evaluating Long-Term Memory Management Strategies. arXiv:2608.00009, 2026.

项目参考:LangChain、LlamaIndex、MemGPT/letta、claude-mem、TencentDB-Agent-Memory、agentmemory、honcho、OpenHands、EverOS、MCP servers、awesome-dsh-plugin。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐