dsh-persist:DeepSeek Harness 長期記憶插件

前言

DeepSeek Harness (DSH) 的 agent 默認僅依賴當前對話的上下文,一旦關閉對話窗口或切換會話,之前的交互記錄就會丟失。dsh-persist 通過文件系統將記憶分層存儲,支持按需注入,解決了 agent “換對話就失憶” 的問題。

核心功能

該插件提供以下核心能力:
* 對話獨有記憶:每個對話擁有獨立的記憶文件,其他對話無法訪問,互不干擾。
* 選擇性注入:默認新對話零注入,在記憶 tab 勾選需要的內容後,纔會將對應記憶加入上下文。
* 項目記憶互通:同一工作目錄下的對話可共享項目記憶,不同命名項目之間隔離。
* Vault 語義檢索:基於 bge-m3 模型的向量搜索,支持按語義召回記憶;未配置 key 時自動降級爲關鍵詞搜索。
* 自動召回(三態模式):記憶 tab 中的自動檢索功能提供三種模式:關閉(默認)、智能(本地規則過濾)、LLM 判斷(調用模型判斷是否需要檢索,失敗自動降級爲智能)。
* 記憶 tab:對話頂部的可視化 tab,支持編輯記憶、勾選注入配置以及實時預覽。
* 全部純文本:所有記憶以 Markdown 格式存儲在 ~/.dsh-memory/ 目錄下,人類可讀、可手動編輯、易於備份。
* 組合包:標準 DSH bundle,通過 dsh plugin 命令安裝。

安裝與啓用

安裝過程包含兩步:安裝插件並重啓 DSH。

  1. 在終端執行安裝命令:
    dsh plugin --profile web add dsh-persist
  1. 重啓 DSH 以加載插件:
    dsh --profile web

插件安裝後即可使用。如需開啓語義檢索功能,需申請 SiliconFlow 的免費 API Key 並設置環境變量 SILICONFLOW_API_KEY。

使用方法

基本操作

安裝並重啓後,打開任意對話,頂部會出現“記憶”tab。默認情況下不注入任何內容,需手動勾選要注入的塊。

Agent 也可以通過 memory 工具主動讀寫記憶。工具的 scope 參數決定讀寫範圍:
* scope="conversation":寫入/讀取當前對話記憶(默認)。
* scope="project":寫入/讀取當前工作目錄的項目記憶。
* scope="global":寫入/讀取全局 keyed 記憶。

語義 Vault 操作

Vault 用於存儲需要語義檢索的內容,支持 add、delete、import、export 等操作:

memory(vaultOp="add", content="...")
memory(vaultOp="delete", query="...")
memory(vaultOp="import")

代碼示例

讓 Agent 記住內容或查詢記憶:

// 寫入對話記憶
memory(action="add", scope="conversation", content="用戶偏好使用空格縮進")

// 寫入項目記憶(同目錄其他對話可共享)
memory(action="add", scope="project", content="構建腳本位於 build.ps1")

// 寫入全局鍵值對
memory(action="add", scope="global", key="user-name", content="小明")

// 查詢對話記憶
memory(action="list")

適用場景與注意

  • 適用場景:需要長期保持上下文、跨會話複用經驗的 agent 開發,以及需要整理個人知識庫的用戶。
  • 環境要求:宿主環境 Node.js 版本需 >= 22.6(推薦 24+)。
  • 隱私與安全:
    • 啓用語義搜索(SILICONFLOW_API_KEY)後,消息內容會發送給 SiliconFlow 進行向量化。
    • 啓用 LLM 判斷模式會將消息發送給指定的模型提供商。
    • API 路由 /dsh-memory/api/* 默認僅允許 loopback 訪問,如需遠程訪問請設置 DSH_MEMORY_ALLOW_REMOTE=1。
  • 數據遷移:插件曾用名爲 dsh-memory,存儲路徑和路由未變,舊數據無需遷移。

結尾

dsh-persist 通過分層存儲和純文本格式,爲 DSH agent 提供了可控的長期記憶能力。插件位於 GitHub 與 SkillHub。

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

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

小夜