dsh-memory:可自定義結構的 DSH 跨會話記憶

前言

在 DeepSeek Harness(DSH)裏做多輪對話或輕量編程時,上下文窗口會隨會話結束而清空;換窗口、換工作區後,模型也拿不到上一段對話里約定好的偏好和事實。常見做法是手寫 system prompt 或在外部筆記裏維護狀態,但那樣要麼每次手動粘貼,要麼和 Harness 的會話生命週期脫節。

下面介紹社區插件 dsh-memory(GitHub:2424830124/dsh-memory,npm:@huai_xin/dsh-memory)。它把長期記憶做成磁盤上的 YAML「筆記本」,按標題樹組織,並在組裝提示詞時整份注入;模型通過插件提供的工具讀寫記憶,多會話之間共享同一份文件,並在別處改動後向當前會話推送合併後的、不喚醒的變更通知。另帶按日期的日誌(短期記憶)和可替換 Harness 開場身份的 Markdown 預設。

這是什麼

dsh-memory 是分類爲「記憶」的 DSH 插件,維護者 GitHub 用戶 2424830124。一句話定位:給 DeepSeek Harness 用的跨會話長期記憶,結構由用戶自己在 YAML 裏定義,而不是插件寫死的字段表。

它在設計上有兩個明確取捨(README 原文表述):不做自動召回——每次把可見記憶文件整份放進提示詞,不檢索、不算相關性;原因是召回錯誤容易把模型帶偏,且當前記憶體量通常能塞進上下文。真正強調的能力是可自定義結構:file_name、desc、format、標題樹、inject_ignore 都寫在文件自身,改結構不必改插件代碼或全局配置。

記憶在 Global(~/.dsh/dsh-memory/.memory)與 Workspace(<workspace>/.memory)兩個作用域之間劃分;路徑不可在配置裏改位置,只能通過 DSH_HOME 整體遷移,避免寫錯路徑 silently 讀到別處。

核心功能

記憶注入與多會話同步

  • 記憶文件爲 YAML,插件注入到提示詞前綴;模型可用 memory_read / memory_edit / memory_manage(README 中統稱「三個工具」)讀寫,寫前須先讀,並帶版本校驗,避免覆蓋其他會話的併發修改。
  • 其他會話修改記憶後,本會話只收到「哪些標題變了」類通知;需要細節時再讀文件。空閒會話在下一條消息時檢查累積變更;正在運行的會話約每 5 秒檢查一次(最多每 5 秒一條提醒)。
  • 按會話凍結注入:會話開啓期間,注入文本與 memory_edit 的工具描述凍結,文件在外部再怎麼變,本會話拼出的提示詞前綴不變,以便供應商前綴緩存持續命中;變更走通知。閒過保留窗口(默認 60 分鐘,由 snapshotTtlMinutes 等配置參與,默認快照保留 10080 分鐘即 7 天)後重新生成。

日誌與預設

  • 日誌:log/ 下一天一個 YAML,二級標題爲「時分 + 摘要」,用於記「今天發生了什麼」;可通過 injectLog、logInjectGlobalDays 等配置控制最近幾天、每天條數是否注入。
  • 預設:preset/*.md 純文本,選中後整體替換提示詞最開頭的 harness identity(默認那句 You are an AI agent powered by DeepSeek Harness.)。人設、行爲準則等開場文本放預設,不必擠進記憶文件;預設不受 inject_ignore 與三個記憶工具約束。

面板

對話區頂部「記憶」標籤頁含 預設 / 全局 / 工作區 / 設置。全局與工作區側以卡片編輯 YAML 內容樹、預覽「注入效果」、拖動調整同層標題順序與注入順序(fileOrder);設置頁寫入 ~/.dsh/dsh-memory/config.yaml,保存後當場生效(手改該文件需重啓 Harness)。

常見搭法(來自 README 表格)

想記什麼 大概長什麼
長短期記憶 一份「長期記憶」存穩定事實;當天先寫日誌,隔幾天再摘要進長期
行爲準則 一份「行爲準則」,一級標題分場景
角色設定 一份「角色」或每角色一文件,format 裏寫清邊界
學習感悟 一份「感悟」,二級標題一條,keyword 打標籤
備忘錄 一份「待辦」,inject_ignore 跳過 update_at、keyword

經驗:一個文件一種用途,把必須每輪看到的準則單獨放前面,偶爾翻的備忘錄另起文件,便於 fileOrder 與 inject_ignore 按文件生效。

安裝與啓用

插件以 npm 包形式安裝,並在 profile 裏掛載 bundle 補丁。官方 README 給出的步驟如下。

先安裝包:

npm install @huai_xin/dsh-memory

在 profile 配置中加載 cordis.patch.yml(只掛載插件,不在此寫業務配置值):

# cordis.patch.yml —— 只掛載插件,不寫配置值
- insert:
    - id: memory
      name: '@huai_xin/dsh-memory'

運行時依賴 yaml 與 @deepseek-ai/schemastery。若跟源碼開發,可將 node_modules 內包換成本地鏈接(如 npm install ../dsh-memory 或 link: 依賴),無需每次發版。

當前 package.json 中版本爲 0.3.7,許可證 MIT。插件在 DSH 進程權限下讀寫上述目錄,安裝前請自行查閱倉庫源碼與許可證。

配置與數據目錄

配置優先級:~/.dsh/dsh-memory/config.yaml > profile 裏插件配置 > 內置默認。

主要路徑:

~/.dsh/dsh-memory/config.yaml         # 配置
~/.dsh/dsh-memory/.memory/*.yaml      # Global 記憶
~/.dsh/dsh-memory/preset/*.md         # 預設
~/.dsh/dsh-memory/state/sessions/     # 會話快照
<workspace>/.memory/*.yaml            # Workspace 記憶

部分配置鍵(默認值見 README 表格):

鍵 默認 說明
snapshotTtlMinutes 10080 會話快照保留分鐘數;0 關閉清理
logSummaryMaxChars 60 日誌摘要字數上限
injectLog true 是否把最近日誌注入提示詞
logInjectEntries 0 每天最多注入條數;0 不限
logInjectGlobalDays 3 全局日誌帶最近幾天
defaultPreset '' 新建會話默認預設名;空爲不使用

fileOrder 在面板左側拖動文件順序維護,不在設置頁手寫。

典型用法:記憶文件骨架

新建 Global 或 Workspace 記憶時,YAML 形狀如下(字段含義以 README 爲準):

meta_data:
  file_name: 我的記憶
  desc: 記錄我和用戶之間的一些回憶,以及我想要記住的事
  format: |
    寫這個文件放什麼、什麼時候該更新、更新成什麼樣。
    這段只出現在 memory_edit 的工具描述裏,不進提示詞。
  scope: Global
  inject_ignore:
    - update_at
    - keyword

data:
  我們經歷過的一些事:
    update_at: 2026-10-27T03:18:36+08:00
    desc: 一級標題的正文
    keyword: [回憶]
    我們之間的互動:
      desc: 二級標題的正文

注意:正文行不得以 # 開頭,否則會被誤解析爲標題;建標題應通過工具的 heading_path(如 # 標題 > ## 子標題)操作。標題最多 4 級,同級不可重名。

日誌文件由插件按日生成,一級標題固定爲當天日期;模型寫日誌時須使用 # yyyy-mm-dd > ## hh:mm 摘要 這一路徑形狀。

預設示例:在 ~/.dsh/dsh-memory/preset/ 放置 角色.md,在面板或新建會話下拉框選用;切換預設可能破壞前綴緩存,面板會對進行中的會話給出確認提示。

適用場景與注意

適合:聊天、角色扮演、需要在多窗口/多工作區之間共享穩定事實與偏好的輕量編程;願意自己設計 YAML 標題樹而不是依賴向量召回的場景。

不適合或需知:不做語義檢索,記憶變大後主要靠整份注入(README 提到未來可能加關鍵詞輕量召回,但主路徑仍是整份注入)。插件不自帶預設內容,裝好後 preset/ 爲空。Community 目錄頁(SkillHub)與 GitHub 倉庫由維護者發佈,與 DeepSeek / 幻方無官方從屬關係;DSH 生態理念是「一切皆插件」,本文安裝與行爲均以倉庫 README 與 0.3.7 包描述爲準。

結尾

dsh-memory 把跨會話記憶落在可讀寫的 YAML 與可選預設上,用整份注入和多會話通知換結構自由度與實現簡單性。若要查看簡介與分類,可打開社區目錄頁;細節、Issue 與源碼在 GitHub 倉庫。

  • 目錄頁:https://www.skillhub.cn/plugins/2424830124/dsh-memory
  • GitHub:https://github.com/2424830124/dsh-memory
羽毛球分组比赛记分
小程序二维码

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

小夜