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 進程權限運行,安裝前應檢查源碼與許可證。
羽毛球分组比赛记分
小程序二维码

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

小夜