dsh-engram:DeepSeek Harness 跨会话长期记忆插件

前言

DeepSeek Harness (DSH) 的插件生态强调模块化与可组合性。在使用 DSH 构建 Agent 时,一个常见痛点是会话间的上下文断层——对话结束后,Agent 便失去了对过往信息的记忆。dsh-engram 是一个旨在解决这一问题的插件,它为 DSH 提供了跨会话的长期记忆能力。该插件采用“记忆宫殿”的信息架构设计,将这一心理学方法转化为机器可落地的数据结构,结合混合检索、间隔重复复习与知识飞轮机制,帮助 Agent 建立稳定的长期记忆库。

安装

插件默认配置将分库与模型缓存存储在 ~/.dsh/engram 目录下。安装时使用官方提供的 npm 包名:

dsh plugin --profile web add @kenz1117/dsh-engram

安装完成后无需额外配置即可启用基础功能。

核心架构:记忆宫殿

插件的核心设计不依赖于生物学的神经科学隐喻,而是利用信息架构学原理构建存储与检索系统。主要包含以下四个原则:

  • 位置当索引:每条记忆被写入时会被钉在特定的“房间#桩位”坐标上。房间容量为 9,桩位只增不回收,满员时自动开启新房间。
  • 固定路线定顺序:系统维护一个 tour_routes 列表,按照桩位的顺序对记忆进行巡游。这种顺序一旦确定便不再修改,利用顺序而非重新检索来召回记忆。
  • 骨架长期复用:同一主题的内容永远落在同一房间、同一序号,利用稳定的物理位置确保记忆的连贯性。
  • 标记独一无二:写入时进行 0-1 评分,基于全库唯一性、日期锚点、同房前 6 字不重复等规则,低分记忆进入翻新清单。

主要功能

双层分库与混合检索

插件采用双层数据库结构:
* 全局库 (user.db):存储跨项目通用的个人偏好、经历等。
* 项目库 (project-<hash>.db):按 git 仓库标识隔离,存储项目特定的技术选型与约定。

检索采用混合模式,结合 FTS5(支持中文 2-gram 预切词)与本地向量模型 Xenova/bge-small-zh-v1.5(512 维,q8 量化)。当离线嵌入模型下载失败时,系统会自动降级为纯关键词检索。

走廊路由与间隔复习

为了减少全库检索的压力,系统引入“走廊”概念。用户画像中包含房间目录,engram_search 支持传入 room 参数,先缩小检索范围再进行精确查找。检索结果会附上同房相邻桩位作为线索。

系统内置 SM-2 算法 的间隔重复机制。engram_review 工具仅展示记忆的坐标与线索,不展示正文,迫使模型先进行主动回忆。通过自评(0-5 分)推进复习调度,未通过复习的记忆不会参与自动衰减。

知识飞轮与自动摄取

插件构建了一个知识飞轮闭环:
1. 摄取:开启 ingest 配置后,系统自动从会话日志中提取事实。
2. 强化:高相似度的近邻记忆会建立 contradicts 边,由用户或外部 Jev 模型裁决。
3. 蒸馏:相似记忆簇合并为高层规律,置信度继承。
4. 衰减:低重要性且长期未访问的记忆会被归档。

实体词典与来源审计

系统会自动从摄取内容和 engram_save 的输出中抽取实体(人物、项目、工具等),并与现有实体词典进行消解。每条记忆均记录来源会话、轮次与事件 seq,支持完整的操作日志回溯。

安全与合规

插件内置了多层防护机制:
* 提示注入防护:所有记忆召回出口均包裹在 <engram_memory_context> 协议标签中,明确告知模型其历史属性。
* 摄取脱敏:入库前会使用正则清洗常见密钥(如 API Key、GitHub Token)与个人信息(手机号、身份证),替换为 [REDACTED:<类型>]。
* 证据门:检索结果仅标记为“相关”,只有当模型判定为“足以回答”且提供了有效证据时,才算作最终确认。

Web 管理面板

插件提供了一个功能完备的 Web 管理面板,支持多视图浏览:
* 今日:查看待复习条数、记忆健康分。
* 实体:按类别筛选、搜索实体及其关联记忆。
* 裁决:查看 Jev 系统的冲突判定与搁置记录。
* 日志:审计操作记录与检索证据。

典型用法

保存记忆

使用 engram_save 工具保存条目。系统会自动清洗数据,并根据四态回报策略处理内容(复述并入强化、疑似矛盾、全新写入、低熵丢弃)。

// 示例调用
engram_save({
  items: [
    { content: "用户偏好使用 Python 而非 Node.js 处理数据分析。" }
  ],
  scope: "project" // 按当前会话 cwd 归属项目库
});

检索记忆

通过 engram_search 进行检索,可使用 room 参数限定范围。

// 在特定房间内检索
engram_search({
  query: "数据分析偏好",
  room: "preference" // 偏好阁
});

复习记忆

查看今日需要复习的条目,进行回忆测试。

engram_review();

生态与限制

  • 环境要求:依赖 Node.js 版本 ^22.19.0 或 >=24.0.0。
  • 技术栈:纯 TypeScript 实现,不依赖外部进程或 Python 环境。
  • 生态定位:DSH 插件生态中属于“AGI 架构探索”类别,与 MemGPT 等同层叙事。

参考资料

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜