前言¶
DeepSeek Harness(DSH)智能體在跨會話使用時,往往缺乏對歷史經驗的複用,導致重複解決相同的問題。dsh-self-memory 插件通過自動記錄會話軌跡與解決方案,提供離線檢索與閉環回寫能力,幫助智能體在後續對話中直接利用歷史經驗。
前提¶
使用該插件前,需滿足以下環境要求:
- Node.js 版本 >=22
- DSH 版本 @deepseek-ai/dsh 0.1.x
安裝與啓用¶
通過本地目錄安裝插件,支持熱掛載。
dsh plugin --profile web add <本目錄>
安裝後,通過以下命令驗證插件狀態:
selfmem_status
返回內容應包含 plugin=v0.3.0 等信息。代碼更新後,可使用 dev_reload_package dsh-self-memory 或重啓 DSH 完成裝配。
核心能力¶
該插件主要解決以下五個問題:
- 多關鍵詞關聯度:通過權重化的關鍵詞匹配,提升檢索相關性。
- 隱去細節增強泛化:記錄時自動生成
abstractProblem,檢索時同時匹配原始文本與泛化文本。 - 大量案例快速檢索:使用倒排索引進行候選集篩選,支持大規模記錄。
- 前提不同結果矛盾:記錄級
preconditions與方案級appliesTo、conflictsWith,支持按前提過濾與衝突標註。 - 關鍵詞規範統一:內置同義詞表,檢索與存儲使用統一的規範化路徑。
使用方法¶
插件通過一系列工具命令完成記憶的閉環管理。
自動注入與日常閉環¶
插件默認開啓自動採集與自動注入。每次用戶消息發送後,系統會自動檢索歷史方案,並通過 <selfmem_memory> 圍欄注入上下文。智能體在解決新問題時,應遵循“先查記錄 → 有就試 → 成功/失敗記根因 → 無則自研 → 最後回寫”的流程。
命令工具¶
selfmem_status:查看插件狀態與規模統計。selfmem_search:檢索既有方案,支持context前提過濾。selfmem_record:記錄/追加方案,支持多方案、前提、關鍵詞權重。selfmem_hit/selfmem_fail:標記方案成功或失敗,並記錄根因。selfmem_import:外部導入解決方法。selfmem_trace:查看自動採集的會話軌跡。
使用示例¶
記錄一個帶前提的方案:
selfmem_record {"problem":"斷網時如何安裝插件","solution":"解壓本地包 → dsh plugin add <目錄> → pnpm install → dev_install_package 熱掛載","keywords":{"plugin":1,"network":0.6},"appliesTo":{"network":"no"}}
前提感知檢索示例:
selfmem_search {"query":"如何識圖","context":{"model_vision":"no"}}
配置¶
可通過覆蓋 profile 的 cordis.patch.yml 調整插件行爲。
| 配置項 | 默認值 | 說明 |
|---|---|---|
autoRecall |
true |
每次用戶消息是否自動檢索並注入歷史方案 |
recallBudget |
600 |
召回注入的 token 預算(CJK 感知) |
captureEnabled |
true |
是否自動採集會話軌跡 |
dataDir |
~/.dsh/self-memory |
記錄/軌跡/待寫隊列的存儲目錄 |
配置示例:
- insert:
- id: self-memory
name: dsh-self-memory
config:
autoRecall: true
recallBudget: 800
captureEnabled: true
注意事項¶
- 零運行時依賴:插件純本地運行,不依賴外部服務,支持離線使用。
- 檢索機制:當前檢索基於關鍵詞、泛化文本與倒排索引,暫不支持向量語義檢索。
- 記錄提煉:會話軌跡自動採集,但不會自動提煉爲記錄,需手動調用工具回寫。
- 前提定義:同一問題多方案仍需在記錄時手動指定
appliesTo以區分。 - 存儲限制:當前爲單文件 JSON 存儲,記錄量達萬級後需考慮遷移至 SQLite。
結尾¶
dsh-self-memory 通過結構化記錄與閉環回寫,爲 DSH 智能體提供了基礎的跨會話記憶能力。更多細節可參考項目文檔: