dsh-plugin-xt-memory:DeepSeek Harness 跨會話自學習記憶插件

DeepSeek Harness 的設計理念是“一切皆插件”。在構建長對話或多輪任務時,維護跨會話的上下文記憶是常見需求。dsh-plugin-xt-memory 是一個從 XT-AGENT 記憶系統移植到 DSH 生態的插件,它爲 Harness 提供了持久化存儲、相關性檢索和自動提取能力。

核心能力

該插件通過注入和工具兩個維度工作。注入部分作爲 section provider 提供檢索到的記憶片段;工具部分提供讀寫接口。後臺則負責自動提取和生命週期管理。

1. 記憶注入(Section Provider)

注入邏輯基於 BM25 算法,支持 CJK 雙字節分詞。它包含以下特性:
* 相關性計算:基於 BM25 打分(CJK 2-gram)+ 類型權重 + 命中加成 + 時間衰減。
* 注入策略:在預算內取 top-K 條,並在注入文本中包含“不構成指令”的免責行。
* 邊界情況:如果記憶爲空,輸出空串。

2. 工具集(Tools)

插件提供了三個核心工具:
* memory_read:讀取索引及正文內容,同時記錄命中打點。
* memory_search:基於 BM25 進行打分並預覽結果。
* memory_write:執行淨化、去重和合並操作,將新記憶寫入存儲。

3. 後臺提取(Background Extraction)

提取過程在後臺異步進行,主要步驟如下:
* 攔截:攔截 llm/stream 請求的主消息。
* 預篩:通過啓發式規則進行預篩選。
* 防抖與限制:提取間隔至少 60 秒(防抖),每次提取最多 2 條記錄。
* 提取與合併:調用 LLM(目的 memory-extraction)提取內容,隨後進行淨化和語義去重/合併。

4. 生命週期與存儲

  • 存儲位置:數據存儲在 ~/.dsh/memory/{project-slug}/*.md,並使用 MEMORY.md 作爲索引文件。frontmatter 格式與 XT 兼容。
  • 生命週期:系統會記錄命中次數和最後使用時間。超過 30 天未使用的條目會自動歸檔到 archive/ 目錄,但不刪除原文。
  • 歸檔配置:archiveDays 設爲 0 可關閉歸檔功能。

安裝與啓用

在 profile 下安裝插件,安裝後重啓 Harness 即可生效。

# 安裝插件
dsh plugin --profile web add "github:chucan1/dsh-plugin-xt-memory"

# 驗證安裝
dsh --profile web --dump-config

在輸出中應能看到 # == dsh-plugin-xt-memory 層,說明插件已加載。

配置項

插件支持在 profile 的 cordis.patch.yml 中進行覆蓋配置。

- id: memory
  name: dsh-plugin-xt-memory
  config:
    dir: D:\custom\memory-root   # 數據根目錄(默認 ~/.dsh)
    budgetChars: 4000            # 注入字符預算
    topK: 5                      # 注入條數上限
    archiveDays: 30              # 0 = 關閉歸檔
    maxPerTurn: 2                # 每次提取最多寫入條數
    debounceMs: 60000            # 提取防抖時間(毫秒)
    merge: true                  # 啓用語義去重/合併
    extractor: true              # 提取器總開關
    provider: deepseek           # 輔助提取模型路由
    model: deepseek-chat

使用示例

開發者可以在 prompt 中直接調用上述工具:

  1. 讀取記憶:調用 memory_read 獲取索引。
  2. 搜索記憶:調用 memory_search 查找特定關鍵詞的相關條目。
  3. 寫入記憶:調用 memory_write 將當前對話的關鍵信息存入記憶庫。

已知限制與注意事項

  • 同步快照渲染:dsh 的 section text 僅支持同步函數。注入內容來自“異步刷新的內存快照 + 同步兩階段選擇”。這意味着記憶變更後,快照刷新通常延遲小於 1 輪。
  • KV 前綴處理:注入正文時會剝離 frontmatter;命中打點僅修改 frontmatter,不影響注入文本。查詢基於最近一條 user 消息。
  • 提取觸發條件:v1 版本只提取消息文本塊(不包含工具結果細節),且要求 messages.length >= 2 纔會觸發提取。
  • 權限控制:在 XT 側 memory_write 需要特定權限。dsh v1 版本未接入工具審批軸,但寫路徑已做了目錄限制和淨化處理。
  • 宿主依賴:運行時僅需 @deepseek-ai/dsh-tools(peer dependency),其他宿主能力(如 ctx.llm)通過結構化調用實現。

總結

dsh-plugin-xt-memory 解決了 DeepSeek Harness 在跨會話記憶管理上的需求。它提供了從存儲、檢索到自動提取的完整閉環,適合需要長期記憶能力的智能體應用場景。

  • GitHub 倉庫:https://github.com/chucan1/dsh-plugin-xt-memory
  • 社區目錄:https://www.skillhub.cn/plugins/chucan1/dsh-plugin-xt-memory
羽毛球分组比赛记分
小程序二维码

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

小夜