前言¶
在 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 的三件事¶
- 本地檢索:問題切字符二元組,結合標籤命中算相關度,不調模型。
- 分檔挑選:長期按重要度取前 N;中期按「相關度 × 4 + 重要度 + 新近度」取前 N;短期按時間倒序取前 N。
- 硬預算:整段注入有默認 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(推薦)
- 打開 DSH Web → 側邊欄 插件(或 設置 → 插件);
- 安裝組合包,填寫:
github:yingchaoyi/dsh-memory-tier
- 裝好後在「設置 → 三檔記憶」打開面板。
方式二:命令行
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 的問題。