dsh-tool-memory

DSH PLUGIN记忆与知识

仓库 sikwoxy/dsh-tool-memory · npm dsh-tool-memory

记忆与知识 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

DSH plugin 跨会话持久记忆,将 Hermes 式有界纯文本记忆注入 system prompt,支持增删改查与后台自动沉淀。

验证等级 L5 L5 · 运行验证通过
GitHub 星标 4 复刻 1 · 未关闭 issue 2
最近更新 2026-08-14 创建于 2026-08-14
README 10.6 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add [email protected]
兼容 DSH 版本0.2.0-rc.2 等 13 个版本版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖@deepseek-ai/cordis@^4.0.1、@deepseek-ai/dsh-agent@^0.1.0-rc.5 等 7 个需要同时安装的同级依赖
npm 包名dsh-tool-memory可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-tool-memory:为 DeepSeek Harness 带来跨会话持久记忆的 DSH plugin

  • 冻结快照注入
  • 记忆增删改查
  • 后台自动沉淀
  • 原子批量操作
  • 威胁扫描防护

适用场景

记忆文件读写

上游标签

deepseek-harnessdshdsh-pluginmemoryplugin

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度稳定按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

仓库档案

记忆与知识
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方sikwoxy仓库 dsh-tool-memory · 默认分支 main
分类记忆与知识memory
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言TypeScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue4 / 1 / 2收录时的数值,非实时
创建 / 更新2026-08-14 · 2026-08-14最后推送 2026-08-14
本站收录2026-08-27首次进入本站目录的时间

README 全文

10.6 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-tool-memory —— DeepSeek Harness 跨会话持久记忆插件

> 把 Hermes Agent 的 memory 工具
> 的机制移植到 DeepSeek Harness:有界、纯文本、跨会话的记忆。
> 插件加载与每个新会话开始时,把记忆以冻结快照注入 system prompt;
> 会话中途的写入立即落盘,但不改变 system prompt——保住 LLM prefix cache。

记忆机制(与 Hermes 对齐)

机制 Hermes 本插件(DSH)
存储 ~/.hermes/memories/MEMORY.md + USER.md /MEMORY.md + USER.md(默认 $DSH_HOME/memories)
条目格式 § 分隔的纯文本列表,可多行 同左(分隔符 \n§\n,与 Hermes 逐字符一致)
两个存储 MEMORY=代理笔记;USER=用户画像 同左
字符预算 2200 / 1375 字符(按字符数,模型无关) 同左(可用配置覆盖)
冻结快照 会话开始时注入 system prompt;中途写入不改快照 同左:插件加载 + session/created 时重建快照,经 ctx.systemPrompt.section() 注入
工具面 单工具 memory + action 参数 DSH 惯例拆分:memory_add/replace/remove/batch/show/refresh
定位 replace/remove 用短唯一子串匹配,非 ID 同左;歧义报错引导更具体
预算超限 返回合并引导错误(列出当前条目),本轮内合并后重试 同左(错误信息含条目清单与占用)
批量 apply_batch 原子、对最终预算校验 同左(all-or-nothing)
写安全 锁文件 + 原子写 + 漂移保护(外部内容不 round-trip → 拒写 + .bak 快照) 进程内互斥 + 原子 rename + 同款漂移保护
威胁扫描 写前扫描(strict 作用域)+ 快照构建时屏蔽毒条目 同左(英文模式移植 + 3 条保守中文模式 + 不可见 Unicode)
成功响应 终态:报占用、不回显条目(防重复调用) 同左(note: 写入已完成,不要重复执行)

安装

# 在 deepseek-harness 环境内
dsh plugin add dsh-tool-memory

插件注册 3 个 system-prompt section(笔记快照 / 画像快照 / 首次使用引导)与 6 个工具,用自然语言直接指挥即可:

工具 参数 说明
memory_add content(必填), target? 追加一条记忆(默认 memory=我的笔记;user=用户画像)
memory_replace old_text, new_content, target? 替换「包含 old_text 子串」的条目
memory_remove old_text, target? 删除「包含 old_text 子串」的条目
memory_batch operations(必填), target? 原子批量(删旧加新一次完成)
memory_show target? 查看活状态条目与占用
memory_refresh — 手动重读磁盘并重建快照(通常无需调用)

初始化模式(首次使用)

用户画像(USER.md)为空时,system prompt 会自动注入一段首次使用引导,
由模型主动向用户提问(怎么称呼、做什么工作/项目、沟通偏好等):

  • 用户回答后,模型把信息整理成条目写入 USER.md;
  • 画像一旦有内容,引导 section 返回空——引导自动消失,无需删除任何文件
    (判据就是「USER.md 是否为空」,清空画像即重新初始化);
  • 不想介绍可直接回复「跳过」,引导会在下次会话再次出现。

示例对话:

> - “记住:这个项目的文档任务用反向工作流”
> - “把『codex CLI』那条更新为 v0.148”
> - “删掉『临时备注』那条”
> - “我改过 MEMORY.md 了,刷新一下记忆”
> - “你记得我有什么工作习惯吗?”(模型从 system prompt 快照回答)

后台记忆自动沉淀(后台记忆评审)

> 机制对齐 Hermes 的后台自改进循环:
> 对话中自然暴露的用户偏好、纠正、环境事实(“别这么啰嗦”“记住这个项目用反向工作流”)
> 不再需要模型主动 memory_add——插件每 N 条用户消息自动跑一次隔离子代理评审,
> 把值得长期记住的信息沉淀进 MEMORY.md / USER.md。

机制:

  1. 插件监听 session/event 事件流,只对用户消息(user/message)计数;
    纯工具回合是执行细节,不计入(评审信息来源是用户消息,避免高频空转)。
    会话恢复/续接时从历史事件流对齐取模,续上原来的 N 节奏。
  2. 每 N 条(默认 10)触发一次评审:把最近 24 条对话 verbatim 转写
    (USER: / ASSISTANT:,工具调用只列名字、正文截 200 字符)打包,
    用 ctx.subagents 程序化拉起一个隔离子代理执行:
    - 评审代理只拥有 memory_* 工具(toolFilter 白名单),
    无法执行 shell、读写文件或调用其他工具,不污染主会话;
    - 提示词要求评审代理先 memory_show 读活状态再决定增删改
    (system prompt 里的 MEMORY/USER 块是会话开始时冻结的,可能已过时);
    - 容量超限时用 memory_replace/memory_remove 合并腾出空间,
    或一次 memory_batch 完成“删旧 + 加新”;
    - 评审与主会话共用同一个 MemoryStore 实例,写路径的进程内互斥 +
    锁内重读天然串行化并发写。
  3. 评审结束后按 reviewNotify 三档发通知(投递走 agent 的 inbox:
    空闲时唤醒、忙碌时排队到下一步;form: 'notice',GUI 折叠展示):
    - off:不发通知;
    - on(默认):💾 Memory updated(+n 条) 或 Nothing to save;
    - verbose:追加具体增删改条目摘要。
  4. 同一会话并发防抖:一个评审未结束时不会启动第二个(计数继续,
    到下一个 N 的倍数再触发)。
  5. 评审子代理的传输默认用标准进程内 spawn provider(未注册或不支持工具过滤时
    回退到第一个支持 toolFilter 的 provider);reviewProvider/reviewModel
    只控制评审子代理的模型路由(留空=跟随主 agent 的 provider/model,
    可配便宜模型省成本)。

降级说明(配置保留、功能跳过、不崩溃):运行时未注册 subagent provider、
没有支持 toolFilter 能力的 provider、或会话没有关联的活 agent 时,
评审自动跳过并 console.log 说明原因,三档通知配置仍保留;
没有任何活 agent 可投递时通知降级为 console.log。

- id: memory
name: dsh-tool-memory
config:
nudgeInterval: 10      # 每 N 条用户消息触发一次后台评审;0=关闭自动评审
reviewProvider: ''     # 评审子代理的 LLM provider(路由);留空=主 agent 的
reviewModel: ''        # 评审子代理的 LLM model;留空=主 agent 的
reviewNotify: 'on'     # 评审完成通知:off / on / verbose

插件配置

在 profile / 组合包层的 cordis.patch.yml 中按需覆盖:

- id: memory
name: dsh-tool-memory
config:
root: '/abs/path/to/memories'   # 默认:$DSH_HOME/memories(DSH_HOME 或 ~/.dsh)
memoryCharLimit: 2200           # MEMORY.md 字符预算
userCharLimit: 1375             # USER.md 字符预算
nudgeInterval: 10               # 每 N 条用户消息触发一次后台评审;0=关闭
reviewProvider: ''              # 评审子代理的 LLM provider(路由);留空=主 agent 的
reviewModel: ''                 # 评审子代理的 LLM model;留空=主 agent 的
reviewNotify: 'on'              # 评审完成通知:off / on / verbose

记忆文件格式

MEMORY.md 就是纯文本条目列表,可随时用编辑器查看/修改:

codex CLI 已装 ~/.local/bin/codex(v0.147.0),登录态有效
§
流水线工具 wf 在 ~/work/bao/baoagent/workflow/wf,命令: init/start/done
§
用户网络位置上海:依赖库/大文件下载优先国内镜像
  • 手动编辑会被尊重:写入前插件会重新读盘;无法 round-trip 的内容触发漂移保护
    ——拒绝写入并保存 MEMORY.md.bak.<时间戳> 快照,绝不静默丢弃你的手改。
  • 编辑后想让新会话之外、当前会话也立即生效,调用一次 memory_refresh。

设计说明(与 Hermes 的有意差异)

  1. 冻结快照的时机:Hermes 在会话开始冻结;本插件在插件加载与
    session/created 时重建快照(DSH 的会话事件),语义等价;另提供
    memory_refresh 工具覆盖「手动编辑后立即生效」的场景(会打破 prefix cache,属有意操作)。
  2. 跨进程并发:Hermes 用 fcntl 锁文件;Node 无标准等价物,本插件用
    进程内 promise 互斥(同一 DSH 进程内多 agent 并发写串行化)+
    原子 rename(读者永远看到完整文件)+ 漂移保护(跨进程外部写入不被覆盖)。
    单进程 DSH 部署下三者已闭环。
  3. {{变量}} 转义:DSH 的 system prompt 装配会对 section 做 {{name}}
    插值,未注册变量会直接抛错。记忆内容里的模板/代码片段(如 {{user}})
    会被自动转义为 {​{(零宽空格分隔),保证装配永不被打断。
  4. 威胁扫描:移植 Hermes strict 作用域模式(注入/越狱/回连/外传/后门/硬编码密钥)
    并补了 3 条保守的中文模式;命中即拒写;历史毒条目在快照中替换为
    [BLOCKED: …] 占位符,原文保留在文件里供检查删除。
  5. 每回合合并失败上限(Hermes issue #42405 的循环保护)未移植——
    DSH 工具调用模型侧自带预算约束;成功响应保持终态防抖。

开发与测试

pnpm install
pnpm typecheck   # tsc --noEmit
pnpm test        # vitest:MemoryStore 单元测试 + 插件装配/快照语义测试 + 后台评审测试
pnpm build       # tsdown → lib/

测试覆盖:§ 分隔持久化、预算与合并引导、批量原子性、漂移保护与 .bak、
威胁拦截与快照屏蔽、读失败保护、冻结快照语义(中途写入不改 prompt、
session/created 与 memory_refresh 重建快照)、{{变量}} 转义、
后台评审(计数触发、取模对齐、纯工具回合不计入、并发防抖、对话打包格式、
子代理 toolFilter 白名单与提示词、通知三档、provider/agent 缺失降级)。

License

MIT

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-tool-memory 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add [email protected]` 即可。对应的 npm 包名是 `dsh-tool-memory`。

dsh-tool-memory 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-tool-memory 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-tool-memory 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.2.0-rc.1、0.1.7-rc.2、0.1.7-rc.1、0.1.7-alpha.2、0.1.6-alpha.2、0.1.6-alpha.1、0.1.5-rc.2。版本较多,只列出前 8 个。

dsh-tool-memory 需要什么运行环境?

需要同时安装 @deepseek-ai/cordis@^4.0.1、@deepseek-ai/dsh-agent@^0.1.0-rc.5、@deepseek-ai/dsh-llm@^0.1.0-rc.5、@deepseek-ai/dsh-session@^0.1.0-rc.5、@deepseek-ai/dsh-subagent@^0.1.0-rc.5。环境不满足时安装会失败,建议先确认本机版本。

dsh-tool-memory 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-tool-memory 有哪些功能?

冻结快照注入、记忆增删改查、后台自动沉淀、原子批量操作、威胁扫描防护。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

记忆与知识
按星标排序,可作替代方案

ruflo

ruflo

L3 · 安装规范通过 7.4 万 星

OpenViking

OpenViking

面向 DeepSeek Harness 的 OpenViking 记忆与上下文插件:pre-step 自动召回与画像注入、会话捕获、`vik

L3 · 安装规范通过 3.9 万 星

WeKnora

WeKnora

把 WeKnora 知识库接入 dsh 的四个只读工具:列出知识库、混合检索原文片段、按顺序还原单篇文档,以及直接取用 WeKnora 自己

L4 · 沙盒安装通过 3.3 万 星

distilly

distilly

Distilly — Distill how they think into reusable Skills for any Agent o

L4 · 沙盒安装通过 2.5 万 星

EverOS

EverOS

L4 · 沙盒安装通过 1.3 万 星

MemOS

MemOS

L4 · 沙盒安装通过 1.2 万 星

sikwoxy 的其它插件

1 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。