前言¶
DeepSeek Harness(DSH)通過插件化架構提供靈活的智能體開發能力。dsh-memory 插件旨在解決長對話中的記憶斷層問題,填補了現有插件(如僅處理當前會話壓縮或持久化存儲但無總結機制)之間的空白。它通過自動總結會話並注入筆記,實現智能體對過往對話的長期記憶。
核心功能¶
- 會話結束自動總結:在會話結束時自動將對話內容蒸餾成長期筆記。
- 自動注入筆記:在下一次會話開始時,自動注入全局筆記及當前工作區筆記作爲提示段。
- 本地存儲:所有數據存儲在本地
$DSH_HOME/memory/目錄下。 - 無 UI 配置:通過環境變量進行配置,不提供圖形界面。
安裝與啓用¶
安裝插件需要使用官方命令,安裝後必須重啓 profile 以掛載宿主事件。
dsh plugin --profile web add /path/to/dsh-memory-0.1.0.tgz
配置¶
插件僅通過環境變量進行配置,不依賴配置文件或 UI。以下是關鍵配置項:
| 變量 | 默認值 | 作用 |
|---|---|---|
DSH_MEMORY_DISABLED |
— | 非空則完全惰性掛載,用於排查插件樹問題。 |
DSH_MEMORY_ROOT |
$DSH_HOME/memory |
記憶根目錄,測試時可指向臨時目錄。 |
DSH_MEMORY_MIN_CHARS |
600 |
新一輪文本量的下限,低於此長度不進行總結。 |
DSH_MEMORY_MIN_INTERVAL_MS |
60000 |
同一會話兩次蒸餾的最小間隔。 |
DSH_MEMORY_TRANSCRIPT_CHARS |
16000 |
單次蒸餾喂進去的正文上限。 |
DSH_MEMORY_RECALL_BYTES |
6000 |
召回段字節上限,超了丟最舊的。 |
DSH_MEMORY_FILE_BYTES |
32000 |
單個記憶文件字節上限。 |
DSH_MEMORY_MAX_TOKENS |
1200 |
單次蒸餾輸出預算。 |
DSH_MEMORY_TIMEOUT_MS |
45000 |
單次蒸餾超時時間。 |
典型用法¶
- 控制蒸餾頻率:通過環境變量
DSH_MEMORY_MIN_CHARS控制蒸餾頻率,避免對短輪次進行無意義的總結。 - 控制召回範圍:召回段插入位置爲
FILE_REFERENCE(850),緊挨在環境類上下文之前。
適用場景與注意¶
- 數據安全:插件不讀取會話日誌,不依賴
session-query-sqlite,所有寫入限制在$DSH_HOME/memory/之內。 - 功能定位:不提供工具和斜槓命令,不做向量檢索,僅提供自動召回與自動蒸餾兩條核心路徑。
- 數據持久化:文件寫入採用臨時文件 + rename 防止崩潰截斷。
短結尾¶
dsh-memory 是 DeepSeek Harness 插件生態中用於構建持久化記憶的組件。它通過本地存儲和環境變量配置,實現了會話級別的自動總結與提示段注入。更多詳情可查閱:GitHub。