dsh-plugin-memory

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

核心功能

  1. 自動收集
    在每次 turn/end 且原因爲 completed 時,插件收集對話中的問答內容以及工具調用結果。

  2. 蒸餾與合併
    插件調用輔助模型將收集到的內容蒸餾爲嚴格的 JSON 格式,包含 title、answer、sources,以及可選的 merge_with 字段。如果模型判斷當前條目與現有條目主題相同,返回 merge_with 會觸發融合調用;融合失敗則保留新條目並覆蓋舊條目。

  3. 持久化存儲
    條目被持久化到 <DSH_HOME>/memory 目錄。每個條目生成一個 Markdown 文件 <slug>.md 以及一個索引文件 _index.json。索引寫入爲原子操作(臨時文件 + 重命名)。

  4. 技能註冊
    插件註冊 memory 技能提供者,提供 memory-<slug> 技能候選(Rank 550,位於手寫技能之下)。加載該技能時會返回對應的條目 Markdown 內容。

  5. 服務 API
    插件註冊 ctx.memory 服務,提供以下方法:

    • list(): 返回當前記憶索引。
    • readEntry(slug): 讀取特定條目的 Markdown 內容。
    • settled(session): 等待會話中所有待處理的蒸餾任務完成。

注意事項

  • 安全策略缺失:插件沒有內容安全策略,蒸餾得到的答案會原樣存儲。
  • 過濾器限制:不完整回答過濾器基於標記,可能存在誤報或漏報。
  • 作用域隔離:所有會話共用一個記憶目錄,暫不支持按工作區或代理作用域隔離。
  • 管理機制:目錄列出所有條目,沒有會話級限制或基於大小的驅逐機制。
  • 依賴要求:需要包含 purpose: 'memory' 詞彙表和 memory/* 事件機制的 DeepSeek Harness 構建版本。舊版本仍可加載插件並蒸餾,但會丟失部分功能。

結語

dsh-plugin-memory 爲 DeepSeek Harness 提供了基礎的 Session Distillation 能力,適合需要構建長期對話上下文或知識庫的場景。安裝前請檢查源碼與許可證。

羽毛球分组比赛记分
小程序二维码

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

小夜