dsh-day-memory:DSH 三級「日情節」長期記憶

前言

DeepSeek Harness(DSH)社區裏常見的記憶插件,多半解決的是語義記憶:你是誰、偏好什麼、項目裏定了哪些約定。對話會被提煉成一條條事實,按人、項目或主題分層,在下次對話前注入。

但開發者和日常使用者還有另一類需求:不必背下某次聊天的每個論點,卻要能想起「上週三下午我們在改記憶插件,卡在摘要丟信息,最後決定用子代理」。這類記憶以天爲粒度、先粗後細、有時還要靠圖片喚起細節。現有方案如 meow-memory、dsh-memory-beta、Aurabot 等,分層軸都是語義或主題,一般不保留當天原始對話與圖片副本。dsh-day-memory(維護者 Tarolcraze,分類:記憶)補的是時間軸上的情節記憶,與事實類記憶可以並存。

這是什麼

一句話:dsh-day-memory 是給 DSH 的三級「日情節」長期記憶——一天一條索引,第二天由子代理蒸餾前一天內容,需要時再層層下鑽;不是「記住你是誰」,而是「上週三下午到底發生了什麼」。

數據在磁盤上大致分爲四層(README 中的佈局):

一級  l1/<日期>.json   日期 + 標題 + 關鍵事件 + 關鍵詞      ← 關鍵詞檢索
二級  l2/<日期>.md     當天完整概括                          ← 命中後讀
三級  l3/<日期>.jsonl  當天原始對話 + 圖片副本 + 註釋        ← 需要細節時讀
常駐  pinned.json      「時刻記住」的極重要事實              ← 每輪注入
桌面  desk.md          人約 + 最近的事 + 記憶怎麼轉(≤4KB)   ← 每輪注入

版本 0.2.0,MIT 許可證。社區目錄頁:https://www.skillhub.cn/plugins/Tarolcraze/dsh-day-memory;源碼:https://github.com/Tarolcraze/dsh-day-memory。

核心功能

從會話日誌回填,而不是另錄一份

插件監聽 session/event 做實時捕獲與兜底,但三級原文主要來自 DSH 自帶的 append-only 會話日誌:整理時用 sessionQuery.readSession() 回填當天會話,與 inbox 按 (sessionId, seq) 去重。晚裝幾天也可通過 backfillDays 補整理歷史日期。

次日離線整理與子代理蒸餾

每天第一次打開 DSH 時掃描水位線,對「今天以前、尚未整理」的每個日期啓動 one-shot 子代理(默認 subagentProvider: spawn),讀三級原文,產出嚴格 JSON(標題、200–500 字概括、3–8 條事件、關鍵詞、實體、常駐提議等)。長文分塊 map-reduce;失敗保留原文可重試,同一天重複整理冪等。

兩段式檢索

一級索引體量小(一年約 365 條),不依賴向量庫:先用中文二元切詞 + BM25 + 時間衰減做關鍵詞檢索;命中多條由模型看標題與事件判斷;一條未命中時返回最近 60 天標題,交給模型判斷——README 稱爲「腳本檢索轉爲 AI 檢索」。

常駐記憶需用戶確認

AI 只能通過 memory_propose 提議寫入 pinned.json,須在管理面板確認,避免聊天裏的隨口一句變成持久指令。

暴露的工具

工具 用途
memory_search 關鍵詞/日期檢索一級;沒命中返回近期標題
memory_read 按天讀一級/二級/三級,三級可返回圖片塊
memory_days 列出有記錄的日期
memory_propose 提議常駐記憶(需用戶確認)
memory_annotate_image 給某天圖片補註釋
memory_vote 給某天投命中票,影響後續被想起的概率
memory_note 把未發生在對話裏的事記進某天
memory_stats 各層條數、桌面頁字節、上次整理時間等

問「上次那個…」時,典型路徑是 memory_search → memory_read 下鑽二級或三級。

安裝與啓用

桌面版使用 desktop profile,命令行 dsh plugin 按設計不能操作它。README 給出的方式是:

  1. 將整個 dsh-day-memory 目錄放到本機,例如 D:\dsh-plugins\dsh-day-memory;
  2. 在 DSH 桌面客戶端任意會話中說:把 D:\dsh-plugins\dsh-day-memory 作爲 bundle 安裝到當前 profile;
  3. 安裝成功後重啓 DSH(宿主插件需新進程加載);
  4. 打開「設置 → 日記憶」。

Web 版(dsh web)示例:

dsh plugin --profile web add link:D:\dsh-plugins\dsh-day-memory

路徑按你的實際目錄替換。插件以當前 DSH 進程權限讀寫 dataDir,安裝前應自行查看源碼與 MIT 許可證。

配置

寫入 profile 的 cordis.patch.yml(或由 agent 改插件配置),README 示例:

- id: day-memory
  name: 'dsh-day-memory'
  config:
    timeZone: Asia/Shanghai
    dataDir: 'D:\dsh-data\day-memory'
    backfillDays: 14
    retentionDays: 90
    deskBytes: 4096
    deskItems: 8
    includeToolResults: false
    maxPinned: 30
    recentDaysInPrompt: 3
    maintenanceIntervalMinutes: 30
    subagentProvider: spawn

常用字段含義:timeZone 切分「一天」;dataDir 記憶庫根目錄(默認 <DSH_HOME>/day-memory);retentionDays 控制三級保留天數,超出歸檔;deskBytes / deskItems 限制每輪注入的桌面頁;includeToolResults 是否在三級記錄工具返回(默認 false)。

完整數據目錄結構見 README 的「數據佈局」(state.json、inbox/、archive/、logs/ 等),寫入採用臨時文件 + rename。

適用場景與注意

適合:需要按日期回憶「那天做了什麼」、希望保留對話原文與圖片副本、願意次日讓子代理做摘要而不是即時向量檢索的場景。

README 列出的限制 worth 知曉:

  • 整理需要至少一個活着的會話;剛啓動無會話時會延後,三級仍可從會話日誌重建。
  • 插件未運行期間的超長會話,回填只掃「當天創建」的會話,可能漏採。
  • 關鍵詞檢索對同義詞、代詞(如「上次那個」「他」)有限,需模型結合近期標題或換關鍵詞。
  • 歸檔後讀不到三級原文,只保留一二級;面板在 Windows 真機上的渲染與 HTTP 鑑權尚待驗證(路線圖項)。
  • 記憶內容在注入時會標註爲歷史數據,不等於可執行指令。

DSH 生態是「一切皆插件」;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。

結尾

dsh-day-memory 用時間軸分層記「經歷」,與記「結論」的語義記憶插件互補:結論用來懂你,經歷用來回憶。進一步瞭解可打開 SkillHub 目錄頁 與 GitHub 倉庫。

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

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

小夜