dsh-memory-pyramid:给 DeepSeek Harness 补上时间轴记忆

前言

对 DeepSeek Harness(dsh)的智能体开发者来说,记忆不只是“能不能记住”,还包括开局读取成本、记忆来源回溯,以及能否把记忆数据放进工作区管理。dsh-memory-pyramid 是一个 MIT 许可的 dsh 插件,用于给 dsh 提供带时间轴的记忆:用定宽只追加的事实日志保存事实,由 agent 自己维护摘要金字塔,在固定阅读预算下让 recall 成本不随记忆量增长。

下面介绍它的核心机制、安装方式、可用配置和使用注意事项。

这是什么

仓库为 33moren33/dsh-memory-pyramid,owner 为 33moren33。它给 dsh 提供记忆能力,核心思路是:

  • 事实按时间顺序写入,一行不超过 280 字节,只追加、不修改。
  • agent 自己维护摘要金字塔,不依赖后台进程和定时器。
  • 开局读取记忆视图时,使用固定阅读预算;记忆量增长时,开局读取行数不增加。

核心功能

事实日志与摘要金字塔

插件把记忆分成两层:底层是事实日志,上层是摘要金字塔。

事实日志用于记录具体事实,单行不超过 280 字节,写入后不修改。摘要金字塔由 agent 自维护,不依赖后台进程和定时器。目前插件仅串行运行,由 agent 自主决定工具调用。

固定阅读预算

记忆视图使用固定阅读预算。记忆量增长时,开局读取行数不增加。默认记忆视图只在会话开局注入一次;会话内新写入的记忆通过工具回执可见,新开会话可见全部。

数据位置与协同

默认数据落在当前工作区的 dsh_memory 目录,不写家目录。数据是纯文本,对 diff 友好,可配合 git 管理。

插件支持多进程共写同一份记忆,且无锁。若找到多份旧记忆,插件会拒绝启动,两份记忆不会被拼接。

原生插件与运行要求

插件是 DSH 原生插件积木,不是外部命令行或脚本,不需要 shell 权限。插件本体零 npm 依赖、零原生模块,无构建步骤。

运行要求如下:

  • Node.js ≥ 19
  • dsh 使用 pnpm 管理插件,需要已安装 pnpm
  • 支持 Windows / Linux / macOS / ARM64

记忆看板与示例库

插件提供记忆看板,可可视化摘要塔、热度、时间轴和当前注入内容。看板支持点击记忆回溯来源对话,或打开导入原文。

插件内置 50 / 100 / 500 / 1000 条示例记忆库。记忆看板依赖 web 界面;headless 场景下看板自动缺席,但记忆本体照常工作。

工具

插件提供以下工具:

memory_note
memory_summarize
memory_zoom
memory_recall
memory_open
memory_forget

这些工具用于事实写入、摘要维护、召回、打开来源和摘要处理。

安装与启用

安装

使用 npm 包安装:

dsh plugin --profile web add dsh-memory-pyramid

安装后重启 dsh web:

dsh web

新建会话后,如果开局出现 ### Memory view 段,即表示生效。

验证

可以用下面的命令确认插件已进入合成树:

dsh --profile web --dump-config

确认输出中包含 dsh-memory-pyramid

从仓库安装

也可以从 GitHub 仓库安装:

git clone https://github.com/33moren33/dsh-memory-pyramid.git
dsh plugin --profile web add "link:/绝对路径/dsh-memory-pyramid"

卸载

卸载插件:

dsh plugin --profile web remove dsh-memory-pyramid

然后重启 dsh web:

dsh web

典型用法

调整阅读预算

在 profile 的 cordis.patch.yml 中覆盖同一插件 id 的 wakeLines,例如:

wakeLines: 192

wakeLines 用于控制开局记忆视图的行数预算。

实时更新视图

默认情况下,记忆视图只在会话开局注入一次。若希望会话中途记忆变化时实时更新视图,可配置:

liveView: true

共享同一份记忆库

默认每个工作区使用自己的 dsh_memory 目录。若希望多个工作区读取同一份记忆库,可将 dataDir 配置为绝对路径:

dataDir: "/absolute/path/to/shared-memory"

配置为绝对路径时,所有工作区读同一份记忆库。

适用场景与注意

适合这类需求:

  • 希望在 dsh 中保留按时间顺序发生的事实。
  • 希望控制开局注入的记忆行数,而不是随记忆量无限增长。
  • 希望记忆数据落在工作区,便于查看、diff 和用 git 管理。
  • 希望在 web 界面中查看摘要塔、时间轴和当前注入内容。
  • 希望从记忆回溯来源对话,或打开导入原文。

注意以下几点:

  • 插件以当前 dsh 进程权限运行;安装前建议检查源码和 MIT 许可证。
  • 默认数据落在当前工作区,不写家目录。
  • 发现多份旧记忆时,插件会拒绝启动,不会拼接两份记忆。
  • 默认记忆视图只在会话开局注入一次;会话内新写入的记忆通过工具回执可见,新开会话可见全部。
  • 若出现 @deepseek-ai/cordis missing peer 警告,不要紧;资料称 v0.1.1 起已去掉该声明。

小结

dsh-memory-pyramid 的价值在于把“记住多少”和“开局读多少”分开:底层事实持续追加,上层摘要由 agent 维护,开局读取仍保持固定预算。

目录页 URL 未在已核实资料中确认;仓库地址如下:

https://github.com/33moren33/dsh-memory-pyramid
羽毛球分组比赛记分
小程序二维码

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

小夜