前言¶
DeepSeek Harness (DSH) 的对话上下文通常随着会话结束而丢失,难以支持长期记忆或跨会话的知识积累。dsh-local-vector-memory 插件通过本地 embedding 向量化、SQLite 单文件存储及自动召回机制,解决了智能体在运行时对长期上下文的依赖问题。它不需要搭建复杂的数据库环境,直接利用 Node.js >= 22.5 的内置能力即可运行。
核心能力¶
该插件主要包含以下功能模块:
- 本地向量化与存储:使用 Node.js >= 22.5 内置的
node:sqlite,结合本地 embedding 服务将文本向量化,存储为单文件 SQLite 数据库。 - 自动召回注入:在每次 agent 推理前,检索 top-K 相关记忆并注入上下文(使用
<local-memory>标签)。会话内部支持 LRU 去重。 - 云端提取:支持在会话结束时调用 DeepSeek 云端
deepseek-v4-pro模型自动提取记忆(可选,默认走线索自动捕获)。 - 防矛盾记忆:写入时检测与已有记忆的冲突或过旧(相似度 >= 0.86 但未达完全重复),提示用户改用
memory_update更新旧记忆。 - 回收站机制:
memory_forget默认执行软删除,memory_restore可恢复;需要purge=true参数才能永久删除。 - 在线备份:使用 SQLite
VACUUM INTO生成一致性快照,默认保留最近 5 份备份。 - 低价值过滤:v0.3.4+ 版本在落库前自动拦截瞬时状态、纯进度、一次性参数等低价值内容。
- 容错与兜底:支持 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 进程权限运行,安装前应检查源码与许可证。