跳到主内容

dsh-memento 使用指南

为 DeepSeek Harness 补上有界、分层、带审批门、可审计的跨会话记忆:本地 SQLite 存储、memory 工具与每次会话启动注入的冻结快照。

本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。

本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。

快速上手

dsh-memento

— 源: plugin_wiki.wiki_content

安装与验证

dsh plugin --profile web add dsh-memento

复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。

— 源: plugins.install

关键要点

  • 模型可见 ⟺ 已记录。 注入的快照逐字进入 request/header.system;每次写都能从 approval/asked + approval/decided + 插件自有审计表重建。
  • 有界且诚实。 每轨每层硬字符预算(默认 user 2000 / agent 4000)。写满返回结构化错误(用量 + 上限)——绝不截断、绝不自动压缩。
  • git channel(最新 main):dsh plugin --profile web add git+https://github.com/PerryLink/dsh-memento.git。
  • npm channel(发布版本):dsh plugin --profile web add dsh-memento。
  • tarball channel:在本仓库执行 npm pack,然后 dsh plugin --profile web add ./dsh-memento-<version>.tgz。

— 源: plugin_wiki.readme_zh (fallback readme_raw)

常见问题

这个插件和官方推荐的 MCP 记忆服务器是什么关系?

两者可以共存。dsh-memento 是 DSH 原生的本地第一方记忆方案(本地 SQLite、零网络),MCP 记忆是官方文档建议的外部服务器路线;本插件不排斥 MCP,定位是同目标、不依赖外部进程的替代实现。

记忆数据存放在哪里?会上传网络吗?

默认存放在 $DSH_HOME/dsh-memento/memory.db,POSIX 权限 0600,纯本地 SQLite。插件在 manifest 中显式声明 network:none / credentials:none,整个生命周期不发起任何网络请求。

模型能绕过写入审批吗?

绕不过。审批门做在 ctx.memory 服务的写方法内部(不是工具层),任何调用 add / replace / remove / seed 的路径都必须经过 approval waterfall;writePolicy 是模型不可见的配置。

写满了会怎样?会自动压缩吗?

不会自动压缩,会抛结构化 BUDGET_EXCEEDED 错误并附带当前用量与上限。模型应当先整合(consolidate)或删除条目再重试,Provider 层绝不静默截断。

会话中途修改记忆,模型的快照会立刻更新吗?

不会。快照在每个会话首次组装提示时冻结一次,会话中途记忆变更只落盘和审计,不回写到已注入的 system 段;这是为了稳定前缀缓存,也是设计上"模型可见即会话日志可重建"的一部分。

卸载插件会丢失记忆数据吗?

不会丢失。卸载命令执行后,SQLite 数据库与会话日志均保留,旧会话可以正常加载(因为插件从未向会话日志 append 未注册类型的事件)。

支持中文(CJK)记忆条目的子串搜索吗?

支持。检索引擎使用大小写不敏感的 instr 而非 FTS5,正是因为 SQLite 内置的 trigram / unicode61 分词器对单字 CJK 字符索引失败;instr 对中文场景天然正确。

同一个 $DSH_HOME 下两个 DSH 进程同时写会怎样?

SQLite 通过 busy_timeout 串行化写入,但跨进程一致性不保证,先写者赢。这与 Hermes 等终端记忆的官方警告一致,插件文档明确给出该限制。

— 源: plugin_wiki.faq_json

兼容性

  • DSH: 0.1.0-rc.6+
  • Node: ^22.19.0 || >=24.0.0
  • Platforms: macOS, Windows, Linux
  • Native modules: node:sqlite

— 源: plugin_wiki.compatibility_json

踩坑提醒

安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。

— 来源:通用规则