DeepSeek Harness (DSH) 的生態以插件形式擴展功能。在構建長期運行的智能體時,跨會話記憶是一個核心痛點。傳統的記憶方案通常採用追加文本的方式,容易導致文檔膨脹、語義冗餘且難以維護。yansera/dsh-living-memoir 解決了這個問題,它將記憶存儲爲一組 Markdown 文件,並在每輪對話結束後對記憶進行整體重寫,而非簡單的追加。
核心定位¶
這是一個跨會話記憶插件,由開發者 Yansera 維護,遵循 MIT 許可證。它不依賴數據庫或私有格式,而是將記憶存儲在本地 Markdown 文件中,利用宿主 LLM 的能力進行整理和改寫。
安裝¶
使用 DSH 自帶的 CLI 安裝插件。請將 --profile desktop 替換爲你實際使用的 profile 名稱(如 web)。
dsh plugin --profile desktop add @yansera/dsh-living-memoir
安裝後必須完全退出客戶端並重新打開,DSH 纔會加載新安裝的插件代碼。
基本用法¶
安裝完成後,側邊欄會出現「記憶冊」入口,點擊後可佔滿主區域。
1. 記憶管理¶
左側爲分類,右側爲條目。左上角「← 返回對話」回到會話。
- 自動記錄:模型在對話中判斷值得記錄的內容時,會自動調用工具寫入。
- 手動錄入:點擊「記一條」,或直接編輯
$DSH_HOME/memoir/目錄下的 Markdown 文件。 - 即時生效:編輯文件後刷新頁面即可看到更改。
- 停止寫入:在頁面右上角設置中關閉「記憶寫入」,插件將不再讀或寫。
2. 數據存儲¶
所有數據存儲在本地目錄 $DSH_HOME/memoir。插件不主動發起任何網絡請求,數據完全本地化。
工作機制¶
三層結構¶
記憶庫採用三層結構,便於分類管理:
- 分類層:一個分類對應一個
.md文件。分類按主題劃分,不按信息類型(如決策或進展)。 - 小節層:通常一個項目對應一個小節。
- 條目層:一條記憶對應一行
- 內容。
自動改寫¶
這是插件的核心功能。每輪對話結束(或靜默 20 秒)後,後臺會將「記憶冊的全部內容」加上「本輪對話」作爲輸入,要求模型輸出「改寫後的完整記憶冊」。
- 防呆機制:
- 按會話保存游標,只消費上次之後的新內容,防止重複改寫。
- 改寫失敗會自動重試。
- 新內容少於 400 字符時跳過改寫,但游標照常推進。
- 多會話併發收尾時請求排隊。
- 若解析不出分類或條目總數驟減一半以上,拒絕改寫。
- 長度限制:分類超過 12 條或整本超過 40 條會觸發強制整理。
元數據標註¶
每條記憶條目末尾可以添加 HTML 註釋形式的元數據:
- 用戶要求所有下載前先問,並說清多少 GB
<!-- memoir id=8daa8849 | imp=5 | conf=high | at=2026-10-09 | src=用戶明確說 | pin -->
- conf (置信度):
high(用戶親口說)、med(對話提煉)、low(模型推斷)。改寫時會優先丟棄低置信度條目。 - pin (釘住):標有
pin的條目在改寫時必須原樣保留,最多保留三五條。
配置¶
頁面設置¶
在右上角齒輪設置中:
* 改寫模型:從宿主已註冊的 LLM 列表中選擇,無需手動填寫 Provider 和模型 ID。
* 思考程度:默認關閉。改寫是整理而非解題,開啓思考型模型會浪費輸出預算。
* 語言:界面語言和記憶內容語言可分別設置。
部署級配置¶
在項目根目錄下的 cordis.patch.yml 中配置:
- id: memoir
name: '@yansera/dsh-living-memoir'
config:
memoryDir: '' # 留空 = $DSH_HOME/memoir
injectIndex: true # 是否將記憶注入系統提示詞
maxInjectEntries: 12 # 最多注入幾條
autoDistill: true # 啓用自動改寫
distillDebounceMs: 20000 # 改寫前的等待時間(毫秒)
distillMinChars: 400 # 跳過改寫的最小字符數
distillMaxItems: 60 # 整本條目上限
distillMaxTokens: 8000 # 輸出預算下限
distillReasoningEffort: off # 關閉推理
memoryLanguage: '' # 記憶內容語言限制
pageEntryLimit: 12 # 單類觸發整理的條目數
bookEntryLimit: 40 # 整本觸發整理的條目數
適用場景與注意¶
- 兼容性:需要 DSH >= 0.2.0-rc.2 且 < 0.3.0,以及 Node.js >= 20.18。
- 工具調用:插件提供三個工具函數供模型使用:
memoir_note(記)、memoir_recall(查)、memoir_forget(忘)。 - 純文本格式:記憶庫是純文本,可用任何編輯器打開,支持版本控制。
插件代碼倉庫:https://github.com/Yansera/dsh-living-memoir