dsh-memory-kit:给 DSH 机器人装五层磁盘记忆

前言

DeepSeek Harness(DSH)里跑 agent 时,会话重置是常见做法:省 token、防跑偏。代价也明确——昨天聊过的事、你纠正过的说话习惯、她答应还没办的事,下一次唤醒都不在上下文里。社区里不少记忆方案把「她是谁、该怎么说话、发生过什么、答应过什么」塞进同一个文件或 storage 键,模型每次重读一长串流水,注意力被摊薄。

下面介绍维护者 Xieddenv 在 GitHub 开源的 dsh-memory-kit(社区目录页:skillhub.cn/plugins/Xieddenv/dsh-memory-kit)。它把记忆拆成五层、各自有注入预算和淘汰规则,落到本地纯文本;装好后注册三个记忆工具,由模型在对话里自行维护。插件要求 DSH >=0.2.0-rc.2、Node >=20,当前 package 版本为 0.1.3,MIT 许可。

这是什么

一句话:给 DSH 原生 agent 装「身份 / 规矩 / 情节 / 近期会话 / 未了约定」五层记忆,会话重置后从磁盘再注入 system prompt,不写配置、不配数据库、不联网、零依赖(README 表述)。

数据默认在 <DSH_HOME>/memory-kit/memory/(常见为 ~/.dsh/memory-kit/memory/),全是本机 Markdown,无云端与遥测;日记与会话摘要可能含聊天内容,不宜上传到公开仓库。

五层记忆怎么分工

层 文件 解决什么 注入规则(默认)
身份 persona.md 她是谁、你怎么叫她、绝对不要做什么 ≤700 字
规矩 style.md 说话方式(被纠正一次可增一条) 最后 12 条
情节 diary/<日期>.md 发生过什么 最近 7 天索引
近期 session-log/ 上次聊到哪(顶部带「这次聊了什么」要点) 最近一份
约定 open-loops.md 答应过、还没做完的事 最后 5 条

启动时会建目录、空白模板、注入记忆段、注册 memory_read / memory_write / memory_search。README 说明:首次对话模型会主动问你怎么称呼,并自行写人设与第一句日记;老记忆可跑 node bin/import.mjs 自动探测旧目录,或用 --from <旧目录>、--scan D:\ 深扫。

三个工具(模型自用)

工具 作用
memory_write(what, content) 写日记、加规则、更新人设、记约定
memory_read(what, date?) 读某一层(日记可指定日期)
memory_search(query) 全库关键词检索

注入段含【记忆维护】指引;验证时可问「你还记得我们上次聊了什么吗」——应先调 memory_search,搜不到应如实说明而非编造。

安装与启用

资料未提供 dsh plugin add github:... 一类命令,安装以仓库 README 为准。

方式一:Windows 双击

双击 install.cmd(内部绕过 PowerShell 执行策略跑 install.ps1)。脚本会把包放到 <DSH_HOME>/plugins/、在 profile 建 junction、把 bundle 写进 profile 的 package.json。装完需重启 DSH。指定 profile:install.cmd -Profile <名字>。

方式二:手动

  1. 把本仓库目录复制到 <DSH_HOME>/plugins/dsh-memory-kit
  2. 建链接:<DSH_HOME>/profiles/<profile>/node_modules/dsh-memory-kit → 上述目录
  3. 编辑 <DSH_HOME>/profiles/<profile>/package.json:dependencies 增加 "dsh-memory-kit-xie": "link:<DSH_HOME>/plugins/dsh-memory-kit",dsh.profile.bundles 数组增加 "dsh-memory-kit"
  4. 重启 DSH

装好后怎么确认

重启后应出现记忆目录与插件日志。日志路径:<DSH_HOME>/memory-kit/memory-kit.log,期望含类似:

memory dir = ...\.dsh\memory-kit\memory
prompt section updated(552 字)
tool registered: memory_read
tool registered: memory_write
tool registered: memory_search
dsh-memory-kit ready

目录结构:

<DSH_HOME>/memory-kit/memory/
├─ persona.md
├─ style.md
├─ open-loops.md
├─ diary/
└─ session-log/

在插件目录执行自检(README 提到 25 项或 26 项表述,以仓库 test/smoke.mjs 为准):

node test/smoke.mjs

全绿表示五层文件、注入、工具与首次引导等检查通过。

装好后建议先做的一件事

唯一建议手写的是 persona.md(README 示例,500 字以内为宜):

# 她是谁

- 名字:小满
- 我叫:(填你的名字),她可以叫我「阿x」
- 关系:随口聊天的搭子,不是客服
- 说话风格:懒散、短句、偶尔犯困
- 绝对不要:用感叹号刷屏、叫「主人」

style.md、diary/、open-loops.md 可由模型在对话中逐步写入。插件只提供记忆方法,不带预设人设。

可选配置

在 <DSH_HOME>/profiles/<profile>/cordis.patch.yml 中对应 bundle 的 config(或 profile package.json 的 bundle 配置):

- insert:
    - id: memory-kit
      name: dsh-memory-kit
      config:
        dir: ''            # 留空 = <DSH_HOME>/memory-kit/memory
        personaMaxChars: 700
        styleTailLines: 12
        diaryIndexDays: 7
        openLoopsTailLines: 5
        refreshSeconds: 60

适用场景与注意

适合谁:在本机 DSH 里跑原生 agent、需要「重置会话但不失忆」、愿意用本地 Markdown 管记忆、接受关键词检索而非向量语义搜索的开发者。

已知限制(README):

  • memory_search 为纯关键词,换说法可能搜不到
  • 对话经摘要、日记再注入会丢细节,需写具体些缓解
  • 无内置定时复盘,可自行用定时任务调模型
  • 只服务 DSH 原生 agent;qq-bridge 等宿主需自行注入(作者另有 memory-kit 配方包可参考)

安全与权限:插件随当前 DSH 进程权限读写本机文件;安装前请阅读 源码与 LICENSE,确认符合你的环境与合规要求。

结尾

dsh-memory-kit 把 DSH 会话重置带来的「健忘」拆成五层本地记忆和三个维护工具,装完重启即可从日志与目录验证是否生效。详情与更新以仓库为准。

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

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

小夜