DeepSeek Harness (DSH) 的生态以插件形式扩展功能。在构建长期运行的智能体时,跨会话记忆是一个核心痛点。传统的记忆方案通常采用追加文本的方式,容易导致文档膨胀、语义冗余且难以维护。yansera/dsh-living-memoir 解决了这个问题,它将记忆存储为一组 Markdown 文件,并在每轮对话结束后对记忆进行整体重写,而非简单的追加。
核心定位¶
这是一个跨会话记忆插件,由开发者 Yansera 维护,遵循 MIT 许可证。它不依赖数据库或私有格式,而是将记忆存储在本地 Markdown 文件中,利用宿主 LLM 的能力进行整理和改写。
安装¶
使用 DSH 自带的 CLI 安装插件。请将 --profile desktop 替换为你实际使用的 profile 名称(如 web)。
dsh plugin --profile desktop add @yansera/dsh-living-memoir
安装后必须完全退出客户端并重新打开,DSH 才会加载新安装的插件代码。
基本用法¶
安装完成后,侧边栏会出现「记忆册」入口,点击后可占满主区域。
1. 记忆管理¶
左侧为分类,右侧为条目。左上角「← 返回对话」回到会话。
- 自动记录:模型在对话中判断值得记录的内容时,会自动调用工具写入。
- 手动录入:点击「记一条」,或直接编辑
$DSH_HOME/memoir/目录下的 Markdown 文件。 - 即时生效:编辑文件后刷新页面即可看到更改。
- 停止写入:在页面右上角设置中关闭「记忆写入」,插件将不再读或写。
2. 数据存储¶
所有数据存储在本地目录 $DSH_HOME/memoir。插件不主动发起任何网络请求,数据完全本地化。
工作机制¶
三层结构¶
记忆库采用三层结构,便于分类管理:
- 分类层:一个分类对应一个
.md文件。分类按主题划分,不按信息类型(如决策或进展)。 - 小节层:通常一个项目对应一个小节。
- 条目层:一条记忆对应一行
- 内容。
自动改写¶
这是插件的核心功能。每轮对话结束(或静默 20 秒)后,后台会将「记忆册的全部内容」加上「本轮对话」作为输入,要求模型输出「改写后的完整记忆册」。
- 防呆机制:
- 按会话保存游标,只消费上次之后的新内容,防止重复改写。
- 改写失败会自动重试。
- 新内容少于 400 字符时跳过改写,但游标照常推进。
- 多会话并发收尾时请求排队。
- 若解析不出分类或条目总数骤减一半以上,拒绝改写。
- 长度限制:分类超过 12 条或整本超过 40 条会触发强制整理。
元数据标注¶
每条记忆条目末尾可以添加 HTML 注释形式的元数据:
- 用户要求所有下载前先问,并说清多少 GB
<!-- memoir id=8daa8849 | imp=5 | conf=high | at=2026-10-09 | src=用户明确说 | pin -->
- conf (置信度):
high(用户亲口说)、med(对话提炼)、low(模型推断)。改写时会优先丢弃低置信度条目。 - pin (钉住):标有
pin的条目在改写时必须原样保留,最多保留三五条。
配置¶
页面设置¶
在右上角齿轮设置中:
* 改写模型:从宿主已注册的 LLM 列表中选择,无需手动填写 Provider 和模型 ID。
* 思考程度:默认关闭。改写是整理而非解题,开启思考型模型会浪费输出预算。
* 语言:界面语言和记忆内容语言可分别设置。
部署级配置¶
在项目根目录下的 cordis.patch.yml 中配置:
- id: memoir
name: '@yansera/dsh-living-memoir'
config:
memoryDir: '' # 留空 = $DSH_HOME/memoir
injectIndex: true # 是否将记忆注入系统提示词
maxInjectEntries: 12 # 最多注入几条
autoDistill: true # 启用自动改写
distillDebounceMs: 20000 # 改写前的等待时间(毫秒)
distillMinChars: 400 # 跳过改写的最小字符数
distillMaxItems: 60 # 整本条目上限
distillMaxTokens: 8000 # 输出预算下限
distillReasoningEffort: off # 关闭推理
memoryLanguage: '' # 记忆内容语言限制
pageEntryLimit: 12 # 单类触发整理的条目数
bookEntryLimit: 40 # 整本触发整理的条目数
适用场景与注意¶
- 兼容性:需要 DSH >= 0.2.0-rc.2 且 < 0.3.0,以及 Node.js >= 20.18。
- 工具调用:插件提供三个工具函数供模型使用:
memoir_note(记)、memoir_recall(查)、memoir_forget(忘)。 - 纯文本格式:记忆库是纯文本,可用任何编辑器打开,支持版本控制。
插件代码仓库:https://github.com/Yansera/dsh-living-memoir