dsh-memory-tide:熱檔常駐、冷檔下沉的 DSH 長期記憶

前言

在 DeepSeek Harness(DSH)裏跑智能體,上下文是硬約束。若把每天的筆記、待辦和零碎結論都堆進同一份「全量記憶」,會話越長,模型每次能用的有效窗口越窄;若只保留最近幾條,舊項目背景和踩過的坑又容易丟。

常見做法是單文件日記或扁平目錄,要麼全讀要麼全不讀,很難在「最近幾天必看」和「偶爾要翻的舊事」之間自動取捨。dsh-memory-tide(潮汐記憶)把記憶拆成熱檔與冷檔兩層,按日期與訪問頻率每天歸納一次:近的在熱檔索引裏常駐上下文,遠的沉到冷檔,被查得多的再浮回熱檔並釘住。下面介紹它的目錄結構、升降規則、安裝方式與七個工具。

這是什麼

dsh-memory-tide 是維護者 XHszDHM 發佈的 DSH 記憶類插件(GitHub:XHszDHM/dsh-memory-tide,社區目錄:skillhub 插件頁)。簡介原文爲:Tide memory for DeepSeek Harness — a lightweight long-term memory: a hot tier always in context, a cold tier that sinks, rebalanced automatically every day.

插件不依賴 @deepseek-ai/* 包,只通過宿主公開的 ctx.tools.register() 註冊工具;記憶數據落在工作空間下的 memory/,不跟插件安裝目錄走。

目錄與兩層索引

第一次在某個工作空間調用任意記憶工具時,會在 <工作空間>/memory/ 自動創建目錄骨架(已有文件不會被覆蓋):

memory/
├── MEMORY.md             長期要點(不沉檔)
├── TODO.md               待辦
├── archive/
│   ├── hot/
│   │   ├── INDEX.md      熱檔索引,短,每次必讀
│   │   └── YYYY-MM-DD.md
│   └── cold/
│       ├── INDEX.md      冷檔索引,翻舊事纔讀
│       └── YYYY-MM-DD.md
├── .tide.json            配置
└── .usage.json           各日記憶被查詢次數(按天計)

MEMORY.md 只寫長期規矩與要點;冷檔不在此列日期,僅提示冷檔在 archive/cold/。熱檔、冷檔各有獨立索引,熱檔索引必須保持短小,以便常駐上下文。

若工作空間裏仍是舊結構(memory/ 下直接放 YYYY-MM-DD.md),第一次執行 memory_tend 會把這些文件搬進 archive/hot/,無需手改。

升降規則(概要)

歸納邏輯由 memory_tend 與每日定時任務執行;搬檔是移動文件,不刪改正文。

情況 結果
距今 ≤ hotKeepDays(默認 7)天 留在熱檔
更早,但被查 ≥ promoteHits(默認 3)次 留在熱檔並釘住
更早且無人查 沉到冷檔
冷檔被查 ≥ coldPromoteHits(默認 5)次 升回熱檔並釘住
釘住後 pinMaxDays(默認 90)天未再被查 解釘,重新參與流轉
冷檔文件數 > coldMaxFiles(默認 120) 按日期從早到晚刪除
熱檔文件數 > hotMaxFiles(默認 0 表示不限) 最老的沉到冷檔(釘住的不動)

「被查」按自然日累計:同一天內多次命中只記一次。

七個工具

工具 作用
memory_search 檢索;默認僅熱檔,scope=all 含冷檔
memory_read 讀取某一天的整份日記(默認今天)
memory_add 向某一天追加內容
memory_index 重建熱/冷索引
memory_lint 檢查標題時間、重複小節、空小節、死鏈、索引過期等
memory_tend 冷熱檔歸納;dryRun=true 只出報告
memory_stats 查看天數與各日訪問統計

各工具支持 root 參數,可把記憶根目錄指到工作空間以外的路徑;默認使用當前會話工作目錄。

安裝與啓用

安裝後需重啓 DSH。Node 要求 ≥ 20(見 package.json engines)。

# 從 npm(上架後)
dsh plugin --profile desktop add dsh-memory-tide

# 從 GitHub
dsh plugin --profile desktop add github:XHszDHM/dsh-memory-tide

# 本地開發
dsh plugin --profile desktop add link:D:/path/to/dsh-memory-tide

桌面版若無 dsh CLI,可手改 profiles/<檔名>/package.json 的 dependencies,並將插件目錄放入 profiles/<檔名>/node_modules/。

插件還會註冊 tide-memory 技能(src/skill.js),說明模型何時讀記憶、如何寫帶時間的小節等;並在工作空間 AGENTS.md 中同步一段由 HTML 註釋標記的提示(可通過設置或 .tide.json 的 agentsHint: false 關閉)。設置頁入口爲「設置 → 潮汐記憶」,需重啓 DSH 後纔會出現在瀏覽器 bundle 中。

配置與自動歸納

默認配置寫在 memory/.tide.json,首次使用會自動生成:

{
  "hotKeepDays": 7,
  "promoteHits": 3,
  "coldPromoteHits": 5,
  "pinMaxDays": 90,
  "coldMaxFiles": 120,
  "hotMaxFiles": 0,
  "sectionWarn": 30,
  "searchLimit": 8,
  "searchContext": 3,
  "autoTend": true,
  "agentsHint": true
}

定時器約每半小時檢查一次:對每個已有 memory/ 的工作空間,每天自動歸納一次。狀態保存在 $DSH_HOME/integrations/dsh-memory-tide/tend-state.json,避免同一天重複執行或漏跑。關閉自動歸納可將該工作空間 .tide.json 裏 autoTend 設爲 false,改用手動調用 memory_tend。

典型用法

  1. 新會話開始時,按插件寫入 AGENTS.md 的說明先讀 MEMORY.md 與 memory/archive/hot/INDEX.md。
  2. 當日記錄用 memory_add 追加;小節標題建議帶時間,例如 ## 【14:30 幹了什麼】(便於 memory_lint 與檢索)。
  3. 查近期內容用 memory_search;需要舊日用 scope=all 或 memory_read 指定日期。
  4. 想預覽歸納結果而不改文件:memory_tend 且 dryRun: true。
  5. 憑據與密鑰不要寫入記憶文件(插件在 AGENTS.md 提示中明確禁止)。

適用場景與注意

適合需要按天記日記、又要控制上下文體積的 DSH 桌面工作流:熱檔索引常駐、冷檔按需檢索,長期要點集中在 MEMORY.md。

DSH 生態是「一切皆插件」;skillhub.cn 上的插件目錄爲社區站點,與 DeepSeek / 幻方無官方從屬關係。安裝前請自行查看 倉庫源碼 與 MIT 許可證;插件以當前 DSH 進程權限讀寫工作空間與 $DSH_HOME 下的集成狀態,只應安裝你信任的來源。

結尾

dsh-memory-tide 用熱檔、冷檔與每日歸納,把「最近常看」和「偶爾要翻的舊賬」分開管理,並通過短索引控制默認進上下文的信息量。詳情與更新以 GitHub README 爲準:XHszDHM/dsh-memory-tide;安裝與分類說明見 SkillHub 目錄頁。

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

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

小夜