yansera/dsh-living-memoir 插件介紹

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。插件不主動發起任何網絡請求,數據完全本地化。

工作機制

三層結構

記憶庫採用三層結構,便於分類管理:

  1. 分類層:一個分類對應一個 .md 文件。分類按主題劃分,不按信息類型(如決策或進展)。
  2. 小節層:通常一個項目對應一個小節。
  3. 條目層:一條記憶對應一行 - 內容。

自動改寫

這是插件的核心功能。每輪對話結束(或靜默 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

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

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

小夜