前言¶
DSH 的上下文窗口是有限的。隨着對話輪次增加,前面的內容逐漸被稀釋,模型很難回憶起早期的關鍵信息。dsh-fish-memory 插件旨在解決這個問題,爲指定的會話提供一份長期記憶。它模擬了“魚的記憶”機制,即數據不會永久保留,而是隨着時間推移降低“鮮活度”,從而自動篩選出重要內容,避免上下文被垃圾信息填滿。
安裝與啓用¶
該插件由 Yuuyuko-uu 維護,採用 MIT 許可證。安裝過程需要使用 DSH 的 Web 界面。
dsh plugin --profile web add github:Yuuyuko-uu/dsh-fish-memory
安裝完成後需要重啓 DSH。重啓後,在設置頁面中找到“魚的記憶”選項。
核心功能¶
插件的核心邏輯基於鮮活度和重要度,而非簡單的存儲。
- 會淡忘的機制:每條記憶都有鮮活度,默認半衰期爲 30 天。插件不會物理刪除記憶,而是通過降低鮮活度使其難以被檢索。
- 自動篩選:插件會判斷對話中哪些內容值得保留,每天有配額限制,防止記錄過多。
- 智能檢索:檢索時基於證據和鮮活度排序。使用本地詞表分詞,避免普通詞彙干擾檢索。
- 事實標記:支持將重要屬性標記爲“長期事實”,使其平鋪存放,不會隨時間衰減。
- 可視化分析:提供記憶列表和“最近一次召回”功能,展示哪些記憶被選中、哪些未被選中以及原因。
使用流程¶
使用前需在設置頁開啓目標會話的開關,默認狀態是關閉的。
- 開啓會話記憶:在會話列表中找到目標會話,開啓記憶開關。
- 正常對話:開啓後,插件會自動記錄對話。它每天有最大記錄數(默認 8 條)和單次最大注入數(默認 6 條)的限制。
- 查看結果:展開“記憶列表”查看所有記錄,或查看“最近一次召回”瞭解當前提問時模型檢索到了哪些記憶。
舊檔案導入¶
如果之前使用 Markdown 或純文本寫過的檔案,可以遷移到插件中。
- 在設置頁展開“從舊檔案導入”。
- 選擇包含檔案的文件夾或填寫路徑,點擊“掃描檔案”。
- 查看插件生成的候選列表,勾選需要的內容。
- 點擊“導入選中的”,然後點擊“開始提煉”。此過程會調用模型將原文改寫爲記憶格式。
事實鍵¶
對於會變動的屬性(如身高、位置),使用“事實鍵”可以確保只保留最新狀態。
- 格式:
對象.方面,例如她.身高。 - 使用:同一個鍵對應同一件事,插件只會保留最新的一條,舊條目會被標記爲“已被取代”。
- 注意:鍵中不能包含具體值(如
她.身高170),必須只寫屬性部分。 - 清洗:插件提供“清洗補鍵”功能,可以爲舊條目自動補全鍵,但需謹慎操作,建議先“試 8 條”確認效果。
數據存儲¶
- 位置:數據保存在本地,路徑爲
%USERPROFILE%\.dsh\fish-memory\,每個會話一個文件。 - 格式:純文本 JSON,每次改動前會自動備份。
- 權限:由於使用本地詞表分詞,插件不佔用對話的 token 數量。
適用場景¶
此插件適合需要長期維護上下文連貫性的場景,例如作爲 AI 助手或伴侶使用。它不佔用對話 token,且數據完全本地化。使用前請確保已安裝 DSH Web 界面。