dsh-memory:DSH 的跨會話長期記憶插件

前言

DeepSeek Harness (DSH) 本身沒有記憶插件。當新會話開始時,模型對上一個會話裏定下來的約定、踩過的坑、你的偏好一無所知。這個插件補上這一層,讓 DSH 能夠在會話之間共享背景事實。

設計上有一條硬約束:不爲了“記住”再多花一次錢。它不調用任何 LLM 進行摘要、打分或裁決,所有讀寫操作基於本地文件系統和純字符串匹配。

這是什麼

這是一個由 linshenyuan 開發的 DSH 插件,分類屬於“記憶”。

它將記憶存儲爲 Markdown 文件,不額外調用任何 LLM。插件負責去重、衝突檢測、審計日誌和設置面板,模型只需通過工具調用決定“寫什麼”和“什麼時候寫”。

核心功能

  1. 跨會話長期記憶
    記憶持久化存儲在本地文件系統中,新會話可以讀取舊會話的內容。

  2. 純本地字符串匹配
    讀取和寫入均不涉及 LLM 調用。去重基於 sha256 哈希,關鍵詞檢索基於本地字符串匹配(NFKC 歸一化)。

  3. 多維度檢索
    支持按 scope(project/user/both)、topic(精確)和 keywords(全文關鍵詞)讀取記憶。

  4. 衝突檢測與裁決
    同一 topic 下出現結論不同的新條目時,新條目會被標記 [待裁決] 並凍結,直到人工或通過設置面板裁決。

  5. 審計日誌
    記錄所有保存、去重、衝突、更新和拒絕操作,記錄在 runs.jsonl 中,並支持啓動時的流水自檢。

  6. 設置面板管理
    提供瀏覽、用量、衝突和審計四個視圖,支持在線修改記憶上限和裁決衝突。

工作方式

插件通過三層結構將記憶注入上下文:

  1. L1 · 規矩段(常駐系統提示)
    一段固定的系統提示,告訴模型記憶庫的位置、何時該寫、topic 如何命名。它被插入到系統提示詞的索引 150 處(DEPLOYMENT_PERSONA_PREFIX 和 PLAN_POLICY 之間),作爲背景事實而非策略。

  2. L2 · 按需讀取
    記憶不再在會話開始時批量注入。模型在需要背景時調用 memory_read 工具。支持三種取法疊加:
    - scope:限定作用域。
    - topic:精確匹配某個主題。
    - keywords:全文關鍵詞檢索(支持空格、逗號、頓號、分號分隔),按總分降序返回。

  3. L3 · 條件提醒
    只有在累計修改了多個非記憶文件卻未寫入任何記憶時,纔會注入一條提醒,提示模型“該記了但沒記”。

安裝與啓用

插件通過 DSH 的插件機制進行安裝和啓用。
注:資料中未明確提供具體的 dsh plugin add 命令,通常需通過插件目錄或配置文件管理。

啓用後,插件會自動在 DSH 的工作區生成記憶文件(如 MEMORY.md)。

典型用法

  1. 寫入記憶
    模型調用 memory_save 工具寫入內容。
   // 示例:寫入一條關於縮進風格的項目記憶
   {
     "topic": "indent-style",
     "content": "項目統一使用 2 空格縮進",
     "mode": "update"
   }

mode 支持 update(替換舊條目)和 append(補充信息)。

  1. 讀取記憶
    模型調用 memory_read 工具按需獲取。
   // 示例:讀取項目作用域下 topic 爲 "indent-style" 的記憶
   {
     "scope": "project",
     "topic": "indent-style"
   }
  1. 管理面板
    在 DSH 的設置面板中找到“記憶”導航項,可以查看記憶用量、分類分佈、衝突列表和審計日誌。

適用場景與注意

此插件適合需要長期維護項目上下文、偏好設置或技術約定的工作流。

注意事項:
- 插件運行在當前 DSH 進程內,使用進程內鎖機制串行化讀寫操作,防止文件覆蓋。
- 默認衝突凍結,需要人工介入裁決,避免模型被相互矛盾的信息干擾。
- 插件爲 MIT 許可證,可自由使用和修改。

結尾

dsh-memory 解決了 DSH 缺乏持久化記憶的問題,通過本地文件系統實現了零成本的跨會話記憶能力。更多細節可參考:
- GitHub 倉庫
- 技能目錄頁

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

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

小夜