前言¶
在 DeepSeek Harness(DSH)裏做智能體或長期結對開發,常見情況是:新開一個會話,模型不記得你上次定過的規矩;同一個錯誤在下一個會話裏還會出現;人設和偏好散落在各處,既難改也難延續。若只靠當前上下文,上下文一壓縮,較早的約定就容易被擠掉。
下面介紹維護者 1148462398-hub 發佈的記憶類插件 dsh-elysia-memory(npm 包名同目錄,README 裏亦稱 dsh-elysia)。它在本地維護一份所有 DSH 會話共用的 Markdown 記憶文件,支持雙盤鏡像、BM25 檢索與按項目分作用域;並附帶可選的愛莉希雅角色記憶包(統計自 1,696 條官方確證語音)、可選 GPT-SoVITS 語音與表情包等能力,默認大多關閉,由你按需啓用。
這是什麼¶
dsh-elysia-memory 是 DSH 生態中的「記憶」類插件。DSH 的理念是「一切皆插件」;社區目錄 SkillHub 與 DeepSeek / 幻方無官方從屬關係,可當作獨立插件源使用。
當前資料中的版本爲 2.10.0(package.json),許可證 MIT。GitHub 倉庫:1148462398-hub/dsh-elysia-memory。
插件要解決的核心問題包括:
- 會話之間互不相識,用戶每開新會話都要重新交代背景與規矩。
- 模型犯過的錯,下一個會話仍可能再犯。
- 人設與工作準則散落,難以持續修改和傳遞。
- 只存一份記憶文件時,單盤故障可能導致全部丟失。
核心功能¶
共享記憶與磁盤佈局¶
所有會話讀寫同一份記憶;模型每輪看到的記憶直接來自磁盤,並在組裝提示詞時按 mtime 重新讀盤(帶約 1.2s 節流),因此上下文壓縮後也會跟上最新文件內容。
記憶主體是人類可讀的單個 Markdown 文件,用 HTML 註釋劃分區塊;<!-- dsh-shared-memory:xxx:start --> 與對應的 :end 標記請勿刪除,其餘正文可編輯。
| 區塊 | 內容 | 誰來寫 |
|---|---|---|
persona |
當前模型的人設提示詞 | 模型(用戶要求時) |
requirements |
用戶要求與長期偏好 | 模型 |
requests |
用戶輸入流水(每輪自動摘要) | 插件自動 |
corrections |
用戶指正 | 模型 |
lessons |
自我教訓 | 模型 |
methods |
更好的方法 | 模型 |
sessions |
會話索引(含壓縮事件) | 插件自動 |
requests 與 requirements 分離,是爲避免流水擠掉真正需要長期保留的偏好。每類默認上限 200 條,超出部分轉存 MEMORY.archive.md(同樣雙寫),不再注入上下文,但仍可通過檢索工具查詢。
默認存儲路徑(資料中的 Windows 示例):
- 主文件:
%USERPROFILE%\.dsh\dsh-shared-memory\MEMORY.md - 鏡像:第一塊非系統盤,例如
D:\dsh-shared-memory\MEMORY.md
每次寫入同時寫主文件與鏡像(臨時文件 + rename,寫完回讀校驗)。啓動時對賬:缺一側則回補;兩側內容不一致則備份較舊副本爲 .conflict-<時間>.bak 後收斂到較新內容。更換路徑可讓模型調用 memory_file_maintain(action=relocate),或修改 dsh/cordis.patch.yml 中的 primaryPath / mirrorPath 後重啓。
注入、檢索與項目作用域¶
系統提示詞中會注入:人設(約佔預算約 1/3)、記憶使用協議、各分類索引摘要;過長部分會明確提示用 memory_file_search 檢索,避免靜默截斷。記憶正文中可能出現的 {{...}} / ${...} 會被打斷,並標註爲參考數據而非指令。
記憶按會話工作目錄自動打上 project:<目錄名> 作用域:注入時只包含全局條目與當前項目條目。工具調用時 scope 可選 current(默認)、global、all。
技術說明中還包含:命中頻率分層、BM25 檢索、質疑度驅動的方法複用與 methodbook 分區索引等,適合需要把「記下來的做法」沉澱成可檢索最佳實踐的場景。
記憶網頁與管理接口¶
宿主 HTTP 端口下提供自包含頁面(無需前端構建),示例:
http://127.0.0.1:49870/dsh-shared-memory
(實際端口以你本機 DSH 爲準,資料中亦出現 http://127.0.0.1:<端口>/dsh-shared-memory 的寫法。)
頁面上可查看 / 編輯各分區、查看 revision 與雙備份是否一致,並執行對賬回補與重新讀取。相關接口:GET /api/state、POST /api/save、POST /api/reconcile。請求需同源校驗,並帶請求頭 x-dsh-memory: 1;請求體上限 512KB,正文約 200k 字符。
歷史版本默認保留 50 個,位於 .history/<revision>.md;可通過 memory_file_maintain(action=history) 列出、action=rollback 回滾。徹底清空須 memory_file_maintain 傳 action=reset 且 confirm="DELETE_BOTH",否則插件拒絕執行。
可選記憶包(愛莉希雅)¶
插件自帶角色自我記憶與人設包 elysia,默認不寫入記憶文件;identity、persona 仍爲佔位內容,只有你主動安裝纔會覆蓋對應分區,且僅動 identity + persona,不改動其他分區。自我記憶文本規模在資料中約爲 61,903 字(9 章),人設約 2,482 字;說話風格統計來自 1,696 條官方確證語音(如句尾「呢」390 次、問句佔比 52.1%、平均句長 25.5 字等)。
安裝前會自動備份到 <記憶目錄>/.packs-backup/<id>-<時間戳>/;卸載從備份恢復。是否「已安裝」以包內容與當前分區的 hash 比對爲準,手工改過會顯示爲未安裝或用戶自定義。
語音、氣泡、表情包與技能(可選)¶
以下能力默認關閉,可按需開啓:
- 語音朗讀:權重約 200 MB 可由插件「一鍵安裝」放到磁盤;GPT-SoVITS 引擎約 27 GB 需自行安裝,權重按 CUDA 編譯,資料寫明需 NVIDIA 顯卡。
inspect()覈對插件放入的 9 個文件(2 權重 + 6 腳本 + 1 參考音頻),缺一則顯示部分安裝;卸載僅刪這 9 個文件,不刪引擎本體。 - 彙報氣泡:任務完成後可在對話末尾展示帶頭像的氣泡;不依賴語音引擎,無引擎時仍可顯示文字。關閉氣泡可在配置中設置
voice.bubble: false。 - 表情包:用戶導入圖片後按情緒分類,在合適時機自動發送。
- 技能:在
~/.dsh/skills/放置SKILL.md操作手冊,可選帶護欄的run.mjs執行。
安裝與啓用¶
資料中的 SkillHub 安裝指引是:讓 DeepSeek Harness 安裝插件 1148462398-hub/dsh-elysia-memory,並由 Harness 按倉庫說明完成配置(頁面文案爲「請安裝 DSH 插件 1148462398-hub/dsh-elysia-memory。先讀取..」,完整步驟以 Harness 執行結果爲準)。請勿在未覈對文檔的情況下自行拼接未在資料出現的 dsh plugin add 命令行。
客戶端相關能力(如側邊欄「語音」頁)在 dsh.client 掃描時註冊,首次裝好含 client 的半邊後需要重啓一次 DSH,之後側邊欄入口才會穩定出現;面板狀態條會提示「需重啓生效」。
安裝記憶包或修改記憶文件後,重啓 DSH 可使注入層最乾淨地讀到最新內容。
安全說明:插件以當前 DSH 進程權限訪問本機文件與網絡。安裝前請閱讀 GitHub 源碼 與 MIT 許可證,確認路徑、備份策略與可選語音下載行爲符合你的環境策略。
典型用法¶
1. 在對話中安裝愛莉希雅記憶包¶
主路徑是通過工具調用(第一次 install 只返回計劃,須 confirm:true 才寫入):
memory_file_pack({action:"list"})
memory_file_pack({action:"preview", id:"elysia"})
memory_file_pack({action:"install", id:"elysia"})
memory_file_pack({action:"install", id:"elysia", confirm:true})
memory_file_pack({action:"uninstall", id:"elysia"})
memory_file_pack({action:"status"})
2. 在記憶網頁中操作¶
瀏覽器打開 http://127.0.0.1:<端口>/dsh-shared-memory,在「記憶包」區域預覽、安裝或卸載。安裝接口爲 POST /api/packs/:id/install,請求體需 {confirm:true}。
3. 命令行(換電腦或 UI 異常時)¶
在插件目錄下:
node scripts/install-pack.mjs list
node scripts/install-pack.mjs elysia
node scripts/install-pack.mjs elysia --yes
node scripts/install-pack.mjs elysia --preview
node scripts/install-pack.mjs elysia --uninstall
資料中的換機流程概括爲:新電腦安裝 DSH → 安裝本插件 → 打開記憶網頁安裝 elysia 包 → 重啓 DSH;包約 160 KB,隨 npm 包分發,無需額外聯網下載記憶包本身。
4. 可選語音資源¶
側邊欄進入「語音」頁,使用「一鍵安裝」下載並放置權重。若本機未裝 GPT-SoVITS,頁面會直接提示,避免下完權重才發現無法合成。
5. 查詢沉澱的方法¶
遇到重複任務時,可讓模型調用:
memory_file_method({action:"query", task:"…"})
按分類與質疑度返回索引路徑、當前最佳方法及應嘗試的替代做法數量(質疑度機制見 README「質疑度與最佳方法庫」一節)。
適用場景與注意¶
適合誰
- 需要跨會話、跨天保留用戶偏好、糾錯與自訓經驗的 DSH 用戶。
- 希望記憶落在本地磁盤、並具備雙盤鏡像與可手工編輯 Markdown 的場景。
- 想要在通用記憶框架上,可選掛載愛莉希雅人設與語音表現的角色向開發者(記憶包與語音均可不裝)。
需要注意
- 鏡像與主文件落在同一盤符時,插件會告警(鏡像意義不大)。
- 桌面端
dsh-app://訪問本機端口偶發掛起時,資料建議以工具調用爲主路徑,網頁爲輔。 - 語音爲可選能力,依賴本機 GPU 與大體積引擎;氣泡與文字彙報可不依賴語音。
- Linux 用戶應將資料中的
%USERPROFILE%、盤符示例換算爲本機路徑規則,並以cordis.patch.yml或memory_file_maintain爲準。
結尾¶
dsh-elysia-memory 把「記住用戶與共謀改進」做成一份全會話共享、可檢索、可鏡像的本地記憶,並把愛莉希雅相關的自我記憶、語音與 UI 增強做成可拆卸選項。若你要在 DSH 裏減少重複交代、保留糾錯與方法沉澱,可以從安裝插件與熟悉 MEMORY.md 結構入手;角色包與語音按 README 默認關閉,按需再加即可。