dsh-her-memory:DSH 跨會話長期記憶與心情狀態

前言

DeepSeek Harness(DSH)的會話默認是一次性的:關掉再開,模型不會保留上一輪交代過的背景,你往往要重複說明偏好、項目上下文和約定。社區裏常見做法是外掛向量庫、單獨跑記憶服務,或在每輪提示裏硬塞摘要——要麼多依賴、要麼多佔 token,要麼和宿主耦合較深。

下面介紹維護者 KZADEA 發佈的 dsh-her-memory(分類:記憶)。它把「記住用戶、以及對話裏發生過什麼」交給對話中的模型自行判斷:插件提供六個讀寫磁盤明文記憶的工具,插件本身不調模型,按 README 說明爲零額外 token;同時維護可預測的心情、關係、精力狀態,並帶輸入框狀態條與設置頁可視化面板。存儲爲純 Markdown 與 JSON,零 npm 依賴,不 import DSH 官方 @deepseek-ai/* 包。

這是什麼

dsh-her-memory 是 DSH 桌面 profile 下的 Cordis 插件(包名 dsh-her-memory,當前 package.json 版本 1.5.6,MIT 許可證,要求 Node >=20)。一句話定位:跨會話全局長期記憶 + 動態心情狀態,工作區可選隔離。

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

記憶落在哪、怎麼隔離

默認根目錄爲 ~/.dsh/memory/,按工作區分庫。結構如下(摘自 README):

~/.dsh/memory/
  ├─ _shared/      ← 默認所有工作區共用
  │    ├─ core.md           長期核心記憶(每輪注入)
  │    ├─ inbox.md          零碎待整理(每輪注入)
  │    ├─ topics/*.md       專題記憶(只注入文件名清單)
  │    ├─ log/<日期>.md     當天日記(只注入文件名清單)
  │    └─ state.json        心情 / 關係 / 精力
  └─ _sandbox/     ← 被隔離的工作區專用(結構同上)

默認全局共用一份 _shared,換工作區記憶不斷層。若某個工作區需要獨立記憶庫(例如試玩區不應污染長期記憶),在 cordis.patch.yml 的配置裏填寫絕對路徑 sandboxCwd:

config:
  sandboxCwd: "D:\\sandbox-zone"

識別依據是會話的工作目錄(cwd),路徑比較不分大小寫、忽略結尾斜槓。工具全局註冊,但能從 exec.agent 讀到調用會話,從而選庫——同一時刻不同工作區可各看各的記憶。

全是明文文件:可隨時打開查看、手工修改,或整目錄刪除;無數據庫、無向量庫。

六個工具

記憶的寫入與整理由對話裏的模型調用工具完成,插件不替模型做推理。

工具 作用
remember 記一件事;默認進收件箱;可指定 topic 進專題、section 進核心記憶
recall 按關鍵詞搜索全部記憶,返回命中行
memory_list 列出記憶庫文件、大小與當前狀態
forget 刪除含關鍵詞的行(默認只動收件箱,scope:"all" 才動核心)
how_i_feel 查看當前心情、關係進度、精力
feel 爲當前時刻留一句話(最多 5 條,會出現在心情摘要裏)

注入、人設與界面

每輪注入

啓用後(首次需完全重啓 DSH):

  • 系統提示中會多一段「你有長期記憶」的固定說明;
  • 每輪會插一條獨立注入消息,前綴爲 【her-memory|系統注入,非用戶消息】,用戶自己發送的內容不會被追加修改;
  • 人設走常駐系統提示段(systemPrompt.section),重啓後對已在跑的會話也生效,無需新開會話。

可通過 memoryBudget(默認 1800 字符)、moodBudget(默認 260)、injectViaSystemPrompt 控制注入量;設爲 0 則對應部分停止注入。

人設文件

插件默認自帶「鯨魚女僕」人設(外貌、性格、日常行爲等,詳見倉庫內 人設文件.txt),默認稱呼爲「主人」(配置 userTitle 留空時同樣爲「主人」)。

改人設不必改 YAML:正文在獨立文件 人設文件.txt:

  • 插件目錄內:隨包默認,解壓即可見;
  • 記憶目錄內(默認 ~/.dsh/memory/人設文件.txt):優先生效,升級插件不覆蓋,推薦改這份;首次運行會從包內複製。

規則:任意換行與條目,無需管縮進;<!-- --> 註釋不會進人設;正文清空則關閉人設注入;刪文件再重啓則恢復默認。改完需完全關閉再打開 DSH 才生效。

狀態條與設置面板

客戶端 client.js 佔用兩個插槽:

  1. 輸入框上方狀態條(conversation.input.dock):展示心情、關係、精力進度、回合數與記憶條數;收件箱滿 5 條會提示「該整理了」。可雙擊「心情」「關係」觸發特效;雙擊「精力」隨機回血 +1~50 並顯示 +NN。
  2. 設置頁「記憶與心情」(settings.section):三指標、統計格、專題標籤、最近條目、心情便籤、磁盤路徑;隔離工作區單獨卡片。

數據來自 Host 註冊的 GET /her-memory/snapshot;狀態條約 4 秒、面板約 10 秒刷新一次。配色優先使用 --dsw-* 主題變量。

心情狀態規則(摘要)

非隨機數,README 給出的規則包括:

  • 用戶每說一句,心情 +1~3(話越長漲越多);
  • 間隔 ≤10 分鐘連續聊,關係與心情漲得更快;聊得越密精力掉得越快(10 分鐘內接着說 -2,否則 -1);
  • 精力閒置恢復:離開 30 分鐘起每 30 分鐘 +5;超過 8 小時直接回滿;
  • 冷落超過 12 小時後,心情按每 moodDecayHours(默認 6)小時回落 1 點,最低 statFloor(默認 20);
  • 離開較久再開新對話,三數值可按 statJitter / statJitterCooldownMinutes 做輕微隨機浮動。

也可直接編輯 state.json,或由模型調用 feel。

安裝與卸載

README 給出的安裝方式爲本地 link(示例路徑需換成你本機插件目錄):

dsh plugin --profile desktop add link:D:\dsh-her-memory

安裝後重啓 DSH。卸載:

dsh plugin --profile desktop remove dsh-her-memory

再刪除 ~/.dsh/memory/ 可清除全部記憶與人設文件,README 稱無服務、端口等殘留。

典型用法

  1. 按上文命令 link 插件並重啓 DSH。
  2. 在對話中讓模型使用 remember 記下偏好或項目事實;零碎內容先進 inbox.md,整理後可寫入 core.md 或 topics/。
  3. 需要回顧時用 recall 搜關鍵詞,或用 memory_list 看庫內概況。
  4. 誤記可用 forget 刪行(慎用 scope:"all" 以免動到核心記憶)。
  5. 在設置頁查看路徑與統計,或編輯 ~/.dsh/memory/人設文件.txt 調整陪伴人設;費 token 時將 memoryBudget 調小或關閉 injectViaSystemPrompt。

配置要點

在 cordis.patch.yml 的 config 段修改,常用鍵如下(默認值見 README):

鍵 說明
memoryRoot 記憶目錄,默認 ~/.dsh/memory
memoryBudget / moodBudget 每輪注入字符上限,0 爲不注入
injectViaSystemPrompt 是否注入記憶(關則保留心情與工具)
sandboxCwd 隔離工作區絕對路徑,空爲全局共用
statFloor 心情/關係/精力下限,默認 20
personaFile / personaFileAutoWrite 人設文件名與首次自動複製
userTitle 稱呼,空則「主人」
injectFallback 默認 false;開啓可能在注入失敗時用 agent.inject() 模擬用戶消息,README 警告可能引發多輪自循環、額外 token,除非清楚代價否則保持關閉

適用場景與注意

適合:希望在 DSH 桌面端用明文、可審計的方式做跨會話記憶;需要輕量「陪伴感」狀態(心情/關係/精力)但不引入向量庫或官方包依賴的開發者。

注意:

  • 插件以當前 DSH 進程權限讀寫 memoryRoot;安裝前請自行審閱源碼與 MIT 許可證,確認路徑與隔離策略符合你的安全預期。
  • 與 token-saver 同裝時,兩條狀態條在同一列且寬度互相影響;佈局異常時可完全重啓 DSH,或逐個禁用插件排查。未裝 token-saver 時本插件按自身寬度顯示。
  • README 標明全量容錯:磁盤或 API 失敗會降級,最壞爲記憶功能靜默失效,不應導致 DSH 加載失敗。

倉庫 README 稱主測試臺 93 項等人設與客戶端相關斷言在發包前跑通;具體行爲以你安裝的版本爲準。

結尾

dsh-her-memory 用六個工具、純 Markdown/JSON 和可選工作區隔離,把 DSH 跨會話記憶和心情狀態收進一個零依賴插件;模型決定是否讀寫記憶,插件負責落盤與注入摘要,並附帶狀態條與設置頁便於查看與調參。

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

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

小夜