@avantf/dsh-mem

中文文档
0.11.0发布于 2026/11/09MITTypeScriptES Module近 30 天下载 1720

avantf-mem DSH 本地 Cordis 插件: 主机服务+内存工具 + RPC + 客户端 {{0} 标签

中文使用文档
文档目录8 节
  1. 主要功能
  2. 接入 dsh
  3. 怎么用
  4. 相关性门槛:严格 / 宽松
  5. 配置、数据与提示词
  6. 升级 / 卸载
  7. 环境要求
  8. 许可

@avantf/dsh-mem

DSH(DeepSeek Harness)原生记忆插件:给 agent 一份可长期检索的记忆——它跨会话记得你说过的事, 也能按语义、全文、实体、标题与时间把它找回来。装上后提供 3 个模型工具、一段用法提示 和一个主窗口标签页(记忆)。

文档知识库不在本插件里:它已拆到独立插件 dsh-knowledges(knowledge.db、受管文档、kb_* 工具、 知识页与文档转换都在那边)。本插件既不读也不删 ~/.avantf/knowledge/**。

主要功能

  • 3 个模型工具
    • mem_remember:新增 / 改写 / 删除事实(写入后立刻做矛盾检测),分两层——journal(做了什么 / 聊了什么,必带 event_date 与短 title,同一事务复用同一 title)与 note(稳定事实 / 偏好 / 约定 / 坑,可带 relations 三元组)
    • mem_recall:search 内容检索(先对整句做字面精确匹配,再按查询形态返回事实集合 / 关系结构 / 模糊检索;只给 time 就是纯时间召回)与 titles 标题检索(写 journal 前查重、标题纠错用)
    • mem_admin:list 列举 / contradictions 列出未处理的矛盾对 / 导出 / 导入 / 快照重建。 文件路径只允许本次运行的数据根内 (默认导出到 <数据根>/backups/memory-YYYYMMDD-HHMMSS.json.br,原子写,结果不含文档正文); import 按文件头自动识别 SQLite(只读合并另一份 memory.db,报告 mode:'db')与 JSON 导出文档 (mode:'json');restore_snapshot 必须显式 confirm: true,且只接受空 facts 表,恢复后同一宿主 进程立即可检索。
    • 诊断、策展(pin / unpin / 归档恢复 / 矛盾裁决)与索引修复(重建索引、向量修复)是操作者动作: 在「记忆」页与 CLI 里可用,不占用模型工具面。
  • 混合检索:语义 + 全文 + 实体三腿融合;search 按查询形态给出事实集合(多实体并列)、关系结构 (谁管理谁这类方向问句)、纯时间召回或模糊检索。
  • 记忆是活的:按活跃使用日结算、支持遗忘、去重与修订链;同一主题的改动会被识别成 对旧事实的修订而不是简单叠加,写入时顺带做矛盾检测。
  • 一个主窗口标签页(排在 对话 / 轨迹 之后):记忆(浏览、编辑、pin/unpin、归档恢复、矛盾裁决)。
  • 系统提示词里只加一段用法提示(何时该主动记忆、journal 与 note 怎么分、同一事务怎么复用 title)。

接入 dsh

# 把插件装进你要用的 profile(依赖会自动装好,不用管别的)
dsh plugin --profile <PROFILE> add @avantf/dsh-mem@<version>

# 然后重启 dsh 生效

版本号可以不写,但建议指定一个明确版本。

DSH Desktop:在「插件」页里安装同一个包即可,装完重启应用;不用动命令行。

依赖底座:本插件硬依赖 @avantf/dsh-plugin-base。它是插件的普通运行期依赖,装插件时自动带上, 不需要单独安装;缺少或版本不兼容时插件仍会挂载,但启动期资源初始化、宿主兼容门禁与提示词文件层等能力 会降级。升级时让包管理器一起解析即可;单独升级底座时,先升级底座、再重启 dsh。

怎么用

工具是给模型用的,通常不用你手写;用日常说法提要求就行。最常见的几种:

记住这条:发布窗口是每周四 20:00;验收标准是灰度零回滚。
我之前定过的数据目录约定是什么?(返回命中事实与来源)
上周做了什么?(按事件时间召回 journal 条目)
谁负责发布流程?(关系问句直接返回关系结构)
把「每周四发布」改成「每周三发布」,并说明依据。

查重与改标题:写 journal 前先让模型用 mem_recall 的 titles 找候选,读到候选就 update、 读不到才 add;标题写错时用 update 带 retitle: true 纠正一次(旧标题保留为别名,仍能检索到)。

要改一篇文档:那是 dsh-knowledges 的事(kb_* 工具与「知识」页在那边),本插件不提供文档入口。

常见维护动作(在「记忆」页或 CLI 里):

看看记忆库里已存了哪些事实。
把矛盾检测的积压扫一遍,逐条裁决。

相关性门槛:严格 / 宽松

「记忆」页的查询面板有严格 / 宽松选择(工具面的 mem_recall 也接受 floors: 'strict' | 'loose'):

  • 严格(面板默认):只有明确够相关的才返回,所以"没有结果"是一个可信的答案。
  • 宽松:门槛更低,用来找回边角相关的条目——仍有一条底线,不是无门槛。
  • 不选时:先按严格跑;严格档一条都没命中、且确实有条目被门槛挡掉时,自动用宽松档补跑一次, 结果会标明「已自动放宽门槛」。门槛挡掉的空与真的没有,面板和结果里的数字能区分开。

配置、数据与提示词

  • 数据目录:默认 ~/.avantf。记忆库(memory/memory.db)、配置与提示词文件、备份与模型缓存都在其中; 环境变量 AVANTF_HOME 可以改变它。
  • 配置:~/.avantf/configs/ 下的两份 YAML —— common.yaml(公共项,缺失时按注释模板自动创建)与 memory.yaml。只写你要改的项,其余取内置默认。寿命按活跃使用日表达(strength.base_lifetime_days 是新事实的 寿命,默认 90;strength.max_retention_days 是召回加强能换来的最长寿命,默认 174; lifecycle.purge_after_archived_days 是归档后的回收窗口);没有单条到期字段,也没有日历兜底。
  • 提示词文件:~/.avantf/prompts/ 下的 mem-memory-usage.md。缺失或为空时插件写入默认内容, 只在启动时读一次,改完重启生效。 可以按自己的领域改写:内置默认刻意不出现任何领域名词,只给判据与记忆的两层——
    • journal:一项实质性工作 / 话题完成或阶段性收敛时主动记一条,必须带 event_date 与短 title;
    • note:稳定的偏好 / 约定 / 坑,直接记录,规则写成「当……应……」。
    • 不适合写进记忆:临时聊天、一次性中间状态、容易查到的内容——依据归文档(dsh-knowledges 的文档库), 记忆里只留 结论 + 位置(路径 / 来源 / 名称);敏感信息同理,只记存放位置,不记明文。
  • 升级前建议先备份 ~/.avantf:数据库迁移是单向的,用旧版本打开新库会被明确拒绝。

升级 / 卸载

# 升级:换版本号重装同一个包
dsh plugin --profile <PROFILE> add @avantf/dsh-mem@<version>

# 卸载
dsh plugin --profile <PROFILE> remove @avantf/dsh-mem

两者都要重启 dsh 生效。卸载不动 ~/.avantf:记忆库与模型缓存全部保留(~/.avantf/knowledge/** 属 dsh-knowledges,同样不动)。DSH Desktop 在「插件」页上卸载。

环境要求

  • Node >=22.15.0 <23 || >=23.11.0、pnpm
  • 可选的原生加速件(分词 / 向量索引 / 本地嵌入模型)缺失时只会降低检索质量,不影响使用

许可

MIT。

版本与发布记录

@avantf/dsh-mem 共发布 19 个版本,首次发布于 2026/09/21;过去 12 个月发布了 19 个版本。

版本发布日期距今
0.11.0latest2026/11/09今天
0.10.02026/10/2812 天前
0.9.02026/10/2713 天前
0.8.12026/10/2615 天前
0.8.02026/10/2615 天前
0.7.02026/10/2020 天前

其他发布通道:probe-perm-check → 0.1.1。

关于 @avantf/dsh-mem 的常见问题

@avantf/dsh-mem 是什么?

avantf-mem DSH 本地 Cordis 插件: 主机服务+内存工具 + RPC + 客户端 {{0} 标签

如何安装 @avantf/dsh-mem?

在项目目录运行 npm install @avantf/dsh-mem,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:zod(>=4.4.3 <5)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@avantf/dsh-mem 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@avantf/dsh-mem 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@avantf/dsh-mem 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.15.0 <23 || >=23.11.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@avantf/dsh-mem 可以商用吗?

@avantf/dsh-mem 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@avantf/dsh-mem 的下载量有多少?

根据 npm 官方下载统计,@avantf/dsh-mem 在 2026/10/07 – 2026/11/05 这 30 天内被下载 1,720 次,日均约 57 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@avantf/dsh-mem 还在维护吗?

最新版本 0.11.0 发布于 2026/11/09(今天);至今共发布 19 个版本,其中过去 12 个月发布了 19 个;首次发布于 2026/09/21。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。