DeepSeek Harness(DSH)的插件化架構允許開發者通過插件擴展功能。在開發智能體時,對話結束後知識即被丟棄。dsh-plugin-memory 插件通過 Session Distillation 機制,將已完成的對話輪次轉化爲持久化的知識條目,並將其註冊爲 Skill 供後續會話調用。
該插件由 16480000 維護,採用 MIT 許可證。它通過將問答與工具調用蒸餾爲結構化數據,存入本地目錄,並通過 memory-<slug> 技能暴露給模型。
安裝¶
通過 npm 安裝(推薦,無需構建權限):
dsh plugin --profile <name> add dsh-plugin-memory
通過 GitHub 安裝(源碼方式):
dsh plugin --profile <name> add github:16480000/dsh-plugin-memory
使用 pnpm ≥10 從 GitHub 安裝時,需要在 profile 的 pnpm-workspace.yaml 中添加 allowBuilds 配置:
allowBuilds:
dsh-plugin-memory: true
通過本地 tarball 安裝:
pnpm pack
dsh plugin --profile <name> add ./dsh-plugin-memory-0.1.0.tgz
配置¶
插件支持通過 profile 的 cordis.patch.yml 覆蓋默認配置。主要配置項如下:
| 配置項 | 類型 | 默認值 | 說明 |
|---|---|---|---|
autoDistill |
boolean | true |
是否自動蒸餾已完成的輪次。 |
memoryDir |
string | <DSH_HOME>/memory |
記憶存儲目錄。 |
distillProvider |
string | session route | 蒸餾使用的 provider。 |
distillModel |
string | session route | 蒸餾使用的模型。 |
maxTokens |
number | 3000 |
每次蒸餾或融合調用的輸出 Token 上限。 |
示例覆蓋配置:
- id: memory
name: dsh-plugin-memory
config:
autoDistill: false
核心功能¶
-
自動收集
在每次turn/end且原因爲completed時,插件收集對話中的問答內容以及工具調用結果。 -
蒸餾與合併
插件調用輔助模型將收集到的內容蒸餾爲嚴格的 JSON 格式,包含title、answer、sources,以及可選的merge_with字段。如果模型判斷當前條目與現有條目主題相同,返回merge_with會觸發融合調用;融合失敗則保留新條目並覆蓋舊條目。 -
持久化存儲
條目被持久化到<DSH_HOME>/memory目錄。每個條目生成一個 Markdown 文件<slug>.md以及一個索引文件_index.json。索引寫入爲原子操作(臨時文件 + 重命名)。 -
技能註冊
插件註冊memory技能提供者,提供memory-<slug>技能候選(Rank 550,位於手寫技能之下)。加載該技能時會返回對應的條目 Markdown 內容。 -
服務 API
插件註冊ctx.memory服務,提供以下方法:list(): 返回當前記憶索引。readEntry(slug): 讀取特定條目的 Markdown 內容。settled(session): 等待會話中所有待處理的蒸餾任務完成。
注意事項¶
- 安全策略缺失:插件沒有內容安全策略,蒸餾得到的答案會原樣存儲。
- 過濾器限制:不完整回答過濾器基於標記,可能存在誤報或漏報。
- 作用域隔離:所有會話共用一個記憶目錄,暫不支持按工作區或代理作用域隔離。
- 管理機制:目錄列出所有條目,沒有會話級限制或基於大小的驅逐機制。
- 依賴要求:需要包含
purpose: 'memory'詞彙表和memory/*事件機制的 DeepSeek Harness 構建版本。舊版本仍可加載插件並蒸餾,但會丟失部分功能。
結語¶
dsh-plugin-memory 爲 DeepSeek Harness 提供了基礎的 Session Distillation 能力,適合需要構建長期對話上下文或知識庫的場景。安裝前請檢查源碼與許可證。