dsh-local-vector-memory:本地向量记忆插件

前言

DeepSeek Harness (DSH) 的对话上下文通常随着会话结束而丢失,难以支持长期记忆或跨会话的知识积累。dsh-local-vector-memory 插件通过本地 embedding 向量化、SQLite 单文件存储及自动召回机制,解决了智能体在运行时对长期上下文的依赖问题。它不需要搭建复杂的数据库环境,直接利用 Node.js >= 22.5 的内置能力即可运行。

核心能力

该插件主要包含以下功能模块:

  1. 本地向量化与存储:使用 Node.js >= 22.5 内置的 node:sqlite,结合本地 embedding 服务将文本向量化,存储为单文件 SQLite 数据库。
  2. 自动召回注入:在每次 agent 推理前,检索 top-K 相关记忆并注入上下文(使用 <local-memory> 标签)。会话内部支持 LRU 去重。
  3. 云端提取:支持在会话结束时调用 DeepSeek 云端 deepseek-v4-pro 模型自动提取记忆(可选,默认走线索自动捕获)。
  4. 防矛盾记忆:写入时检测与已有记忆的冲突或过旧(相似度 >= 0.86 但未达完全重复),提示用户改用 memory_update 更新旧记忆。
  5. 回收站机制:memory_forget 默认执行软删除,memory_restore 可恢复;需要 purge=true 参数才能永久删除。
  6. 在线备份:使用 SQLite VACUUM INTO 生成一致性快照,默认保留最近 5 份备份。
  7. 低价值过滤:v0.3.4+ 版本在落库前自动拦截瞬时状态、纯进度、一次性参数等低价值内容。
  8. 容错与兜底:支持 HTTP 批量向量化(失败自动逐条回退);embedding 服务不可用时退化为中英文关键词匹配。

安装与启用

安装命令如下,指定 web profile 安装:

dsh plugin --profile web add dsh-local-vector-memory

安装后 dsh.profile.bundles 会自动追加,重启 DSH Web 服务即可生效。

使用工具

插件提供以下工具供调用:

  • memory_add:写入一条长期记忆(自动去重 + 冲突检测)。
  • memory_search:向量检索(支持 tag 过滤;embedding 挂了自动关键词兜底)。
  • memory_list:浏览记忆(支持 tag/source 过滤;includeDeleted=true 查看回收站)。
  • memory_update:按 id 更新文本/标签(自动重向量化)。
  • memory_forget:按 id 删除(默认软删除;purge=true 永久删除)。
  • memory_restore:恢复被软删除的记忆。
  • memory_backup:SQLite 在线备份到 ~/.dsh/backups/memory。
  • memory_stats:库状态 + 软删除数 + 服务地址。
  • memory_reindex:给未向量化条目补向量(批量)。
  • memory_extract:调用提取模型从一段文本提炼记忆入库(仅短文本,建议 ≤2000 字)。
  • memory_merge:合并重复/同主题记忆(保留一条,其余软删除)。
  • memory_health:健康报告(条数/软删/未向量化/置顶分布 + 重复对检测)。

配置与依赖

环境要求

  • DSH:需要使用 web profile。
  • Node.js:版本需 >= 22.5(内置 node:sqlite)。
  • 本地 Embedding 服务:需要 OpenAI 兼容的本地 embedding 服务(推荐 Qwen3-Embedding-0.6B + llama-server)。
  • 云端提取(可选):需要 DeepSeek 官方云端 API (deepseek-v4-pro) 用于提取记忆,默认走线索自动捕获。

API Key 安全

⚠️ 不要把 API key 写进任何会被提交的文件。key 只放在本机,支持三种写法:

extractionApiKey: "${DEEPSEEK_API_KEY}"        # 1. 环境变量
extractionApiKey: "dsh:DEEPSEEK_API_KEY"       # 2. DSH 凭据库(~/.dsh/.credentials.yaml)
extractionApiKey: "local-no-auth"              # 3. 明文占位(仅限免认证的本地服务)

配置覆盖

默认配置在 lib/config.mjs。可以通过 ~/.dsh/profiles/web/cordis.patch.yml 覆盖。注意 DSH patch 是整段替换,不是深合并,因此建议只写入需要修改的字段。

注意事项

  • Patch 机制:DSH 的 patch 是整段替换,不是深合并,修改配置时需注意覆盖范围。
  • 低价值拦截:v0.3.4+ 版本在落库前会自动拦截瞬时状态、纯进度、一次性参数等低价值内容,避免稀释检索质量。
  • 安装前检查:插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。
羽毛球分组比赛记分
小程序二维码

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

小夜