前言¶
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 等同层叙事。