前言¶
在 DeepSeek Harness(DSH)裏做多輪對話或跨會話開發時,模型上下文會滾動、壓縮,用戶明確說過的偏好、項目決定和可查證線索很容易在後續輪次裏丟失。常見做法是手寫 MEMORY.md 或靠系統提示堆疊,但這類做法往往缺少「原話歸屬」、項目邊界和「舊約定被新約定取代」的可審計關係,助手也容易把猜測寫成已確認事實。
SoloPup Memory(npm 包名 solopup-memory)是 OakcoderX 維護的記憶類 DSH 插件,公開測試版、MIT 許可。它把用戶明確表達的長期偏好、項目決定、可查證線索和暫定信念保存下來,並在後續對話中按項目與適用條件檢索;當前發行版本只處理文字,尚未通過穩定版驗收。
這是什麼¶
插件在 DSH 生態中的定位是:帶來源綁定的分層文字記憶。簡介原文爲:Source-linked text memory for DeepSeek Harness (DSH). 保留原話來源、項目邊界與修訂歷史的文字記憶插件。Public beta · MIT。
維護者:OakcoderX。社區目錄頁:https://www.skillhub.cn/plugins/OakcoderX/solopup-memory 。源碼與文檔:https://github.com/OakcoderX/solopup-memory 。當前 package 版本爲 0.21.0-beta.4,以 npm beta 標籤與 GitHub 發行頁爲準。
核心功能¶
寫入與審查流程¶
工作過程可以概括爲四步:
- 從本會話已接收的用戶消息提出候選,並綁定原話引用。
- 獨立檢查持久價值、歸屬、措辭、認識類型、適用條件、信念歸屬和修訂關係;審查不能改寫候選。
- 通過檢查後才發佈到有效記憶;明確拒絕的不寫入;無法判斷的可留在不自動注入的待審區。
- 後續對話自動得到受預算限制的索引;檢索同時查當前項目與全局庫,結果標明歸屬。其他項目不會因此自動變成當前項目的記憶。
用戶明確要求記住持久信息時,插件指令要求本輪使用正式 memory_write,等待實際結果再確認,不等待後臺整理。默認每四輪嘗試一次後臺整理。主動 memory_write 也經過來源審查。pending-review、rejected、not-applied 都不表示已經記住。
記憶的層次¶
| 層次 | 內容與用途 |
|---|---|
| 來源 | 用戶原話與消息身份;工具觀察另帶當時輸出的核對證書 |
| 候選 | 尚待判斷的解釋;待審內容不進入常規有效記憶 |
| 有效記憶 | 全局個人約定或當前項目內容,帶條件、例外及可選期限 |
| 修訂歷史 | 解釋舊值與新值的關係;舊值不能繼續冒充當前默認值 |
| 認識狀態 | 偏好、決定、未覈實主張、暫定信念、價值取向、查證入口和經歷分別表示 |
改同一條約定的值時,supersedes 指向唯一現行舊行;改變歸屬或邊界時使用完整重述路徑 revisionMode=replace,由本輪用戶來源支持全部新內容。
檢索與隱私相關行爲¶
對外暴露的工具包括 memory_search、memory_write、memory_forget、memory_status 等(具體以插件在 DSH 中註冊的契約爲準)。
普通 memory_search 默認隱藏已識別的生日、性別、健康、親密關係和私人聯繫方式;用戶詢問相關資料時,需明確使用 includePrivate: true。主題文件含有未分段的敏感內容時,普通搜索會保守跳過整個主題文件。
當前檢索使用中英文詞元及精確匹配,沒有向量檢索,不保證跨語言或同義表達的召回。
存儲¶
Markdown 索引和主題正文便於閱讀;來源、候選、歷史與調用記錄使用有格式校驗的本地賬本;獨立 SQLite 控制庫維護受管身份、撤回和協調狀態。文檔強調:不要只備份 Markdown 就認爲已完整備份系統。
安裝與啓用¶
使用 DeepSeek Harness 官方插件管理器安裝。代碼爲可直接執行的 ESM,無安裝時構建腳本,也不需要 npm 賬戶。以下以 desktop profile 爲例。
dsh plugin --profile desktop add solopup-memory@beta --ignore-scripts
beta 標籤跟隨已公開並完成下載覈驗的測試版。需要固定版本時,可從發行頁選擇準確版本號,例如:
dsh plugin --profile desktop add solopup-memory@0.21.0-beta.3 --ignore-scripts
Git 安裝示例(標籤可換爲發行頁完整提交 SHA):
dsh plugin --profile desktop add github:OakcoderX/solopup-memory#v0.21.0-beta.3 --ignore-scripts
已安裝舊名 dsh-memory 時,應先完整備份、關閉使用該庫的宿主,用官方管理器移除舊包,再安裝新包;不要同時啓用兩個記憶插件。新名字繼續使用原記憶庫和控制格式。
重啓該 profile 的宿主後,用 memory_status 覈查插件版本、全局/項目狀態及捕獲診斷。
卸載命令:
dsh plugin --profile desktop remove solopup-memory
卸載保留記憶數據;重新安裝同一位置的數據仍需通過身份與格式檢查。
可在 DSH 插件頁啓用 Custom plugin markets,Discover → Add index source,導入自託管市場源(非 DSH 默認內置,不表示官方審覈或推薦):
https://raw.githubusercontent.com/OakcoderX/solopup-memory/main/market/index.json
典型用法與驗收¶
README 指向新用戶文檔:docs/guides/quickstart.md、虛構試用案例 docs/README.md、docs/faq.md。本地可復現的驗收步驟包括:
- 安裝並重啓 desktop profile 宿主。
- 調用
memory_status確認版本與庫狀態。 - 在用戶明確授權的前提下,通過對話觸發或直接使用
memory_write寫入;在新會話中檢索,覈對歸屬與項目範圍是否符合預期。
備份與恢復使用安裝目錄中的腳本(須先關閉使用該記憶庫的全部宿主;備份目標必須是不存在的新目錄):
node /absolute/plugin/scripts/backup.mjs create --root /absolute/memory --to /absolute/new-backup
node /absolute/plugin/scripts/backup.mjs verify --snapshot /absolute/new-backup
node /absolute/plugin/scripts/backup.mjs restore --root /absolute/memory --snapshot /absolute/new-backup
恢復默認只預覽;覈對後加 --apply --reviewed HASH 執行。
適用場景與注意¶
適合誰: 需要在 DSH 中長期保留「誰說的、適用於哪個項目、在什麼條件下成立、後來被什麼取代」的文字約定,並願意接受公開測試版限制與人工抽查原話來源的開發者。
權限與安全: 插件以當前 DSH 進程權限讀寫本地記憶庫;安裝前應閱讀源碼、LICENSE(MIT)及 SECURITY.md。個人資料規則是降載保護,不是完整隱私分類器;memory_forget 表示停止使用索引條目,不表示徹底刪除個人信息;撤回不承諾清除原始對話、遠端服務或外部備份。
已知邊界(資料原文):
- 模型可能漏記、誤判或錯誤概括;重要決定應查原話與來源。
- 無向量檢索;驗證環境文檔寫明爲 macOS、DSH 宿主 Node 24,其他平臺以發行驗收清單爲準。
- 用戶單條消息的完整來源窗口目前上限爲 2000 字符;超長消息不從前半段建立記憶。
記憶不構成發郵件、購買、刪除或發佈的操作授權。
結尾¶
SoloPup Memory 把 DSH 裏的文字記憶做成帶來源、分層與修訂歷史的本地庫,並區分全局與項目範圍,適合在公開測試階段自行安裝驗證。目錄頁:https://www.skillhub.cn/plugins/OakcoderX/solopup-memory ;GitHub:https://github.com/OakcoderX/solopup-memory 。