dsh-memory-organizer:固定記憶超限時只搬不改的歸檔整理

前言

在 DeepSeek Harness(DSH)裏,記憶類插件常把整本 markdown 記憶塞進提示詞。以 dsh-whale-loli 爲例,注入上限約 16000 字符;超限後會從文件前面硬切,而新記憶通常追加在末尾,結果是剛寫進去的內容可能立刻不可見且沒有報錯。要在不另起一套記憶系統的前提下保住「固定記憶區整塊進提示詞」,需要有人盯着體積並在超閾值前把舊內容挪走。下面介紹社區插件 dsh-memory-organizer(維護者 JiessieM,分類:記憶),它只做這件事:給已經存在的記憶本瘦身。

這是什麼

dsh-memory-organizer 是 DSH 記憶本自動整理插件。它不註冊工具、不改寫正文,固定記憶區超過配置閾值時,把最舊的可歸檔內容整塊搬進 <DSH_HOME>/memoryORZ/<記憶文件名>/,原位留佔位或索引行。與具體記憶插件無綁定:只要 markdown 裏有一級標題帶「記憶」相關字樣,並按文檔約定的節標題格式書寫,即可被管理。

社區目錄頁:skillhub.cn/plugins/JiessieM/dsh-memory-organizer
源碼與說明:github.com/JiessieM/dsh-memory-organizer(MIT,package 版本 0.1.0)

它要解決的核心問題

dsh-whale-loli 在超限時先丟滾動摘要,再清空歸檔索引,最後截斷固定記憶並追加「…(固定記憶太長,已截斷)」——從前往後切。閾值默認設爲 15000 字符,是爲滾動摘要、詳細區、歸檔索引等留出約 1000 字符餘量,避免固定區頂滿 16000 後被截斷。

本插件通過歸檔把固定記憶區壓在閾值以內,保證整塊固定記憶能完整注入。

核心功能

發現記憶本

不寫死文件名。掃描 <DSH_HOME>/*.md 與 <DSH_HOME>/<一級子目錄>/*.md(只下一層),跳過 memoryORZ/、node_modules/、plugins/ 等目錄,以及 【YY-MM-DD】… 歸檔名和 .bak-* 備份。

判定條件:文件大小在 10 字節~8 MB;前 12 行內有一級標題含記憶相關詞(如 # 固定記憶、# Memory、# 我的記憶)。正文裏隨口提到「記憶」不算;帶 .md 的文件頭標題不算記憶區。

第一個「標題帶記憶詞」的一級標題即記憶區起點。若沒有區,插件會在第一個一級標題之後補 # 固定記憶 及格式殼,原有正文不動。多本記憶本並行管理,歸檔目錄按文件名分開。

顯式指定路徑時不再自動掃描:

config:
  files:
    - whale-loli-v2-live.md
    - D:/notes/my-memory.md

結構與寫入約定

固定記憶區內建議包含格式塊與三個分區:## 印象(插件永不搬)、## 技能(索引區)、## 近期記憶(幹活區,從這裏搬最舊內容)。新建本可只寫一行 # 固定記憶,插件在巡檢週期內(默認 60 秒)自動補殼,補完不再重複插入。

節標題示例:

### 主題(可歸檔)【技能】【26-10-31】
- 一條小小節(10-31 14時)

狀態詞僅 (進行中) / (可歸檔);分類標記爲 【印象】 【技能】 【事件】 之一,未標記的節不會被搬。日期格式 YY-MM-DD,用橫槓。

搬運規則

  1. 印象區:一條都不動。
  2. 標了(可歸檔)的整節:直接搬走。
  3. 【技能】節:小小節超過 6 條則搬到剩 6 條,原位留 - 已歸檔 N 條小小節;仍超則繼續壓,每節至少留 2 條;再不行則整節遷走並在 ## 技能 記索引。
  4. 進行中的事件:未標(可歸檔)不動。

歸檔文件落在 memoryORZ/<記憶文件名>/,文件名形如 【26-10-23】【技能】英語學習.md;內容原樣保留,文首註明來源與超限原因。同主題續寫進同一文件,不每次新建 -2.md。

安全與隔離

只搬不改;寫盤前 copyFileSync 備份爲 <記憶本>.bak-<時間戳>;先寫 .tmp 再 renameSync。不碰 whale-loli 的注入通道,體積變小後 composeMemory() 自然變短。

安裝與啓用

官方安裝(資料原文):

dsh plugin --profile desktop add dsh-memory-organizer

裝完後重啓 DSH 纔會加載。

約 3 秒後檢查心跳文件是否生成:

<DSH_HOME>/memoryORZ/.organizer-heartbeat

示例內容:

2026-11-02T18:23:19.280Z pid=22100 threshold=15000 tick whale-loli-v2-live.md:12804

tick 後爲當前固定記憶區字符數;之後每 60 秒刷新。

在 cordis.patch.yml 中可調整:

- insert:
    - id: memory-organizer
      name: dsh-memory-organizer
      config:
        threshold: 15000
        intervalMs: 60000
鍵 默認 說明
threshold 15000 固定記憶區字符閾值,不宜接近 16000
intervalMs 60000 巡檢間隔;每輪僅 stat,超閾值才解析
dryRun false 只報告不落盤
files 自動發現 指定後不再掃描

典型用法

  1. 在 <DSH_HOME> 放置或沿用已有 whale-loli 等插件生成的記憶本,保證有「記憶」相關一級標題。
  2. 新記憶寫在 ## 近期記憶 下,需要長期保留的放 ## 印象;可淘汰的節標 (可歸檔) 與 【技能】 / 【事件】 等。
  3. 安裝插件並重啓,觀察 heartbeat 中 tick 是否低於 threshold。
  4. 需要演練時用 dryRun: true 看報告再正式落盤。

若與 dsh-whale-loli 同用,需注意 README 中的兩點:格式規則塊須放在 # 固定記憶 內部(區外內容會在 renderMemory() 寫盤時被丟棄);規則塊行用 - 開頭,勿用 > 引用行(會被 parseMemory() 濾掉)。

適用場景與注意

適合:長期用 markdown 記憶本、且固定區容易頂滿注入上限的 DSH 桌面配置;尤其與 dsh-whale-loli 等同屏使用時,用歸檔代替靜默截斷。

注意:插件以當前 DSH 進程權限讀寫 <DSH_HOME> 下文件;安裝前應在 GitHub 閱讀源碼與 MIT 許可證,確認歸檔路徑與備份策略可接受。DSH 生態是「一切皆插件」;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。

結尾

dsh-memory-organizer 的定位是「記憶本守門員」:超閾值前把可歸檔內容挪到 memoryORZ/,保證固定記憶整塊留在提示詞預算裏,且不改寫你寫過的每一個字。

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

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

小夜