dsh-memory-tier:三檔記憶與本地檢索注入

前言

在 DeepSeek Harness(DSH)裏跑羣聊或長會話 agent 時,常見做法是往 system 裏堆歷史摘要或全量記憶。上下文越長,每輪 token 越貴;只保留最近幾輪又容易接不上話、記不住人和規矩。社區插件 dsh-memory-tier(維護者 yingchaoyi,分類:記憶)把記憶拆成長期、中期、短期三檔,在本地做相關度檢索,每輪只追加一段有字數上限的上下文,並支持鎖定底稿與可選的自動記錄。下面介紹它解決什麼問題、怎麼裝、怎麼用。

這是什麼

dsh-memory-tier 是面向 DSH 的三檔記憶插件:長期 / 中期 / 短期各有默認週期與容量,滿了按規則淘汰;檢索與注入都在本機完成,不額外調模型。數據與日誌落在 ~/.dsh/memory-tier/,通過 DSH Web 設置裏的「三檔記憶」面板和一組 agent 工具讀寫。

與「把記憶整段塞進提示詞」相比,它默認整段注入不超過 1600 字,且走 systemPrompt.context 追加,不動系統提示詞開頭,避免把提示詞緩存整段打掉。

三檔怎麼分

檔 默認週期 默認容量 典型內容
長期 long 永久 120 條 羣友身份與關係、主人定的規矩、人設與說話方式等
中期 mid 30 天 240 條 約定、進行中的事、梗的來龍去脈
短期 short 4 天 60 條 近期趣事與話題,用於接話

中期、短期到期會在注入前清理;容量滿時按「重要度 × 2 + 新近度 + 命中次數」淘汰,長期裏標了 pinned 的不會被容量擠掉。內容近似會合並;locked 條目不刪、不覆蓋,注入時帶 🔒 前綴。容量、天數、注入條數、字數預算可在設置頁修改,持久化在 ~/.dsh/memory-tier/store.json。

省 token 的三件事

  1. 本地檢索:問題切字符二元組,結合標籤命中算相關度,不調模型。
  2. 分檔挑選:長期按重要度取前 N;中期按「相關度 × 4 + 重要度 + 新近度」取前 N;短期按時間倒序取前 N。
  3. 硬預算:整段注入有默認 1600 字上限,超出按條截斷。

給模型用的工具

工具 作用
mem_note 寫一條:支持 tier / text / tags / imp(0~5) / kind / pinned / locked / id(按 id 更新)
mem_search 按關鍵詞檢索
mem_forget 刪除(鎖定條目會被拒絕)
mem_stats 各檔佔用與容量
mem_persona 讀/寫「人設與說話方式」——插件內唯一人設設置處,每輪注入、不佔檢索名額;無 text 爲讀,有 text 爲整段替換(最多 4000 字)

kind 取值:person / fact / event / persona / rule。

自動記錄與鎖定底稿

  • 羣消息 → 短期檔:每輪掃描會話最後一條 user 消息,解析 [暱稱(QQ)] 正文;正文 ≥8 字且(提到長期檔認識的人或本身 ≥24 字)時,本地正則寫入短期檔,默認 20 秒最多一條,可在面板關閉。
  • 回完自評:注入尾部會帶規矩,由模型自行判斷是否再記一條;插件不替模型決定。
  • 鎖定底稿:mem_note 傳 locked: true 或在面板鎖定;適合羣友畫像、主人規矩等不允許被對話改寫的條目。mem_forget、面板刪除、HTTP 刪除對鎖定條目均拒絕。

貼吧語料參考(可選)

若本機有「刷貼吧」插件維護的 ~/.dsh/tieba-duty/bar-styles.json,可在設置 → 貼吧語料參考中開啓「在 QQ 羣裏也參考貼吧語料」,並用羣號白名單控制;認羣依賴 ~/.dsh/dsh-astrbot-ingress/sessions.json 中的會話 id。語料有 60 秒緩存,路徑可在設置中覆蓋。

安裝與啓用

要求:Node.js ≥ 22,DSH 0.2.x,web profile。package 當前版本爲 0.1.4,許可證 MIT。

方式一:DSH Web(推薦)

  1. 打開 DSH Web → 側邊欄 插件(或 設置 → 插件);
  2. 安裝組合包,填寫:
github:yingchaoyi/dsh-memory-tier
  1. 裝好後在「設置 → 三檔記憶」打開面板。

方式二:命令行

dsh plugin --profile web add github:yingchaoyi/dsh-memory-tier

裝完需重啓一次 dsh web(開啓 HMR 的 profile 可能自動重載)。卸載:

dsh plugin --profile web remove dsh-memory-tier

本地開發可參考倉庫 README 中的 git clone 與 dsh plugin --profile web add ./dsh-memory-tier 說明;生產環境安裝前請自行審閱源碼與許可證。插件以當前 DSH 進程權限運行,寫入本機 ~/.dsh/memory-tier/,只調用本機 /api/memory-tier/*,不上傳外網。

設置頁與自測

設置 → 三檔記憶 可改週期與容量、字數預算、三檔注入條數、人設框、自動記錄開關,並支持分頁瀏覽、搜索、改文、pinned、刪除(鎖定除外)及「試一試」預覽本輪注入。改動即時保存,下一輪生效。

不啓動 DSH 也可在插件目錄執行:

DSH_HOME=/tmp/mt-test npm test
node test/client-smoke.mjs

適用場景與注意

適合需要長期記住羣友人設與規矩、中期跟蹤約定與話題、短期接話,且希望控制每輪上下文成本的 DSH Web agent 場景。不適合把插件當成雲端同步或多機共享記憶——數據默認只在安裝 DSH 的本機。

社區目錄頁與倉庫:

  • 目錄:https://www.skillhub.cn/plugins/yingchaoyi/dsh-memory-tier
  • GitHub:https://github.com/yingchaoyi/dsh-memory-tier

DSH 生態強調「一切皆插件」;SkillHub 等爲社區目錄,與 DeepSeek / 幻方無官方從屬關係。安裝前請覈對倉庫 README 與許可證,並按自身合規要求處理羣內個人信息寫入本地 JSON 的問題。

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

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

小夜