前言¶
DeepSeek Harness 提供了智能體開發的框架,但原生並不包含長期跨會話記憶的能力。在處理多輪對話或長時間運行的任務時,上下文窗口有限,無法保留關鍵信息。wwskills/dsh-long-memory 插件通過 SQLite 數據庫和全文檢索技術,爲 DSH 提供了持久化的記憶層。
插件簡介¶
該插件由 wwskills 維護,基於 MIT 許可證開源。它解決了 DSH 在長期對話中記憶丟失的問題,支持通過 SQLite 存儲、FTS5 全文檢索以及可選的 Embedding 向量召回來管理記憶。插件採用單包雙面打包架構,同時包含 Node.js 服務端邏輯和瀏覽器 UI 組件。
核心功能¶
插件的核心能力集中在記憶存儲、自動提取與規則進化三個方面。
存儲與召回¶
- SQLite 數據庫存儲:使用 SQLite 作爲底層存儲,數據持久化。
- FTS5 全文檢索:內置 FTS5 擴展,原生支持中文全文檢索,無需額外配置即可使用。
- Embedding 向量召回:支持可選的 Embedding 模型,可與 Ollama(本地零成本)或 OpenAI 兼容的 API 結合。開啓後採用 BM25 + 向量 + RRF 融合排序。
- 文件追蹤:自動生成
MEMORY.md會話標記和memory/YYYY-MM-DD.md日記文件。
自動記憶提取¶
- L7 自動提取:利用 DSH 的 LLM 提供商自動從對話中提取記憶,支持配置置信度閾值,低於閾值的項目進入確認隊列。
- Keyword 回退機制:當 LLM 不可用時,自動切換到基於正則的關鍵詞提取模式。
- Confirm Queue 確認隊列:低置信度的記憶不會直接寫入,而是進入隊列等待用戶確認。
- Supersession 自動覆蓋:當新提取的記憶與舊記憶重疊時,自動標記舊記憶爲已覆蓋(superseded)。
自進化學習¶
- 信號詞檢測:實時監聽“不對”、“錯了”、“應該是”等信號詞,捕獲用戶的糾正。
- 錯誤捕獲:自動捕獲工具執行錯誤 (
tools/result) 和 Harness 級別的錯誤 (agent/error) 作爲學習素材。 - 規則生命週期:糾正信息可被提取爲規則,經歷“提議 -> 批准 -> 拒絕 -> 歸檔 -> 推廣至 Agent”的完整生命週期。
- 規則注入:已批准的規則會通過
agent/pre-step事件注入到 Agent 上下文中,限制在 800 token 預算內。 - 用戶畫像構建:基於 USER 類型記憶自動構建技術棧、編碼風格等用戶畫像。
瀏覽器界面與 API¶
- 側邊欄與多標籤頁:提供可調節寬度(160-360px)的側邊欄,包含記憶、規則、畫像等 4 個標籤頁。
- Web API:提供 RESTful 接口,支持對記憶、規則、確認隊列進行增刪改查操作。
安裝與配置¶
安裝需要確保系統環境滿足要求:Node.js >= 22.5 且 DeepSeek Harness >= 0.1.0-rc.2。
安裝¶
執行以下命令安裝插件:
dsh plugin --profile web add @wwskills/dsh-long-memory
配置示例¶
插件的配置項較多,默認值通常可用。以下是關鍵配置的示例:
Embedding 配置
- id: long-memory
config:
embedding:
provider: 'ollama' # 'none' | 'ollama' | 'openai-compatible'
model: 'bge-m3'
dimension: 1024
ollama:
base_url: 'http://127.0.0.1:11434'
L7 自動提取配置
- id: long-memory
config:
l7:
enabled: true # 啓用自動記憶提取
auto_extract: true # 使用 LLM + 關鍵詞回退
confirm_threshold: 0.6 # 低於此置信度的記憶進入確認隊列
自進化學習配置
- id: long-memory
config:
corrections:
signal_words: # 觸發糾正捕獲的關鍵詞
- '不對'
- '錯了'
- '應該是'
promote_threshold: 5 # 提取規則的最小糾正次數
rule_token_budget: 800 # 規則注入上下文的 Token 預算
存儲路徑¶
數據默認存儲在 ${DSH_HOME}/long-memory/ 目錄下,包含數據庫文件和 Markdown 文檔目錄。
工具列表¶
插件提供了 8 個命令行工具用於管理記憶:
| 工具名 | 功能說明 |
|---|---|
mem_search |
在記憶庫中進行 FTS5 或混合檢索 |
mem_record |
手動持久化一條記憶,自動檢測作用域 |
mem_status |
查看存儲和檢索狀態 |
mem_stats |
查看記憶統計信息 |
mem_forget |
歸檔或刪除記憶,寫入審計日誌 |
mem_confirm |
處理待確認的敏感記憶 |
mem_scope_list |
列出所有作用域 |
mem_scope_set_active |
設置當前活躍的作用域過濾器 |
Web API 接口¶
通過 RESTful API 可以脫離瀏覽器界面進行管理。主要接口如下:
| 方法 | 路徑 | 功能 |
|---|---|---|
| GET | /plugins/dsh-long-memory/api/memories |
列出記憶 |
| PUT | /plugins/dsh-long-memory/api/memories/:id |
歸檔記憶 |
| DELETE | /plugins/dsh-long-memory/api/memories |
刪除記憶 |
| GET | /plugins/dsh-long-memory/api/memories/stats |
記憶數量統計 |
| GET | /plugins/dsh-long-memory/api/confirm-queue |
獲取待確認隊列 |
| POST | /plugins/dsh-long-memory/api/confirm-queue |
確認/拒絕記憶 |
| GET/POST | /plugins/dsh-long-memory/api/config |
獲取/保存配置 |
| GET | /plugins/dsh-long-memory/api/corrections |
列出糾正記錄 |
| POST | /plugins/dsh-long-memory/api/corrections/:id/extract |
將糾正提取爲規則 |
| GET | /plugins/dsh-long-memory/api/rules |
列出規則 |
| POST | /plugins/dsh-long-memory/api/rules/:id/approve |
批准規則 |
| POST | /plugins/dsh-long-memory/api/rules/:id/reject |
拒絕規則 |
| POST | /plugins/dsh-long-memory/api/rules/:id/promote |
推廣規則至 AGENTS.md |
注意事項¶
- 運行環境:插件以當前 DSH 進程權限運行,安裝前建議檢查源碼與許可證。
- 依賴版本:必須滿足 Node.js >= 22.5 和 DeepSeek Harness >= 0.1.0-rc.2 的版本要求。
- 單包雙面:插件將 Node.js 服務端邏輯與瀏覽器 UI 打包在一起,無需單獨部署服務端。
結語¶
wwskills/dsh-long-memory 通過 SQLite、FTS5 和 L7 提取機制,爲 DeepSeek Harness 提供了完整的長期記憶解決方案。結合自進化學習功能,它不僅能存儲信息,還能根據用戶的糾正不斷優化 Agent 的行爲。對於需要長期運行或處理複雜上下文的智能體開發場景,該插件是必要的組件。