MemVault 是一個本地長期記憶服務,它是一個 SQLite 存儲和 FastAPI/CLI 管道。但它是 stdio MCP 服務器,MCP 是“拉取”協議,服務器只能被調用,沒有通道將內容放入模型上下文。因此,“記憶已加載”無法從 MCP 側實現。必須由客戶端完成,即這個插件。
插件定位¶
dsh-memvault 是 DeepSeek Harness 的一個記憶類插件。它旨在連接 MemVault 的存儲層與 DSH 的上下文層。
維護者:zhang66633
許可證:MIT
分類:記憶
核心功能¶
該插件主要完成三個層面的工作:
-
注入(讀)
核心記憶塊進入 system prompt。通過ctx.systemPrompt.context()實現動態運行時上下文貢獻,使得模型在每一步都無需調用工具即可“擁有”這些記憶。 -
提取(寫)
完成的對話回合會積累在一個窗口中,該窗口會被作爲一個完整的對話交給 MemVault 的提取/向量化管線。機制是通過ctx.on('session/event')監聽turn/end事件,然後調用python -m memvault.cli add --stdin。 -
展示(面板)
提供一個真實的記憶面板。通過五個具體的 Host 路由(/memvault/api/*)提供界面。面板包含對話標籤頁和設置頁面,支持查看當前注入內容、審查提取結果、編輯核心塊以及瀏覽存儲內容。
安裝與啓用¶
由於官方 CLI 安裝命令在提供的資料中未覈實,請通過以下方式手動安裝:
- 克隆倉庫:
git clone https://github.com/zhang66633/dsh-memvault.git - 插件爲純 ESM 模塊,無打包器依賴,無需額外構建步驟。
- 在 DeepSeek Harness 的插件配置中引用該模塊路徑。
使用說明¶
使用前需要確保 MemVault 的 Python 管道(CLI 子進程)正在運行,並且本地存在 memvault.db 文件。
- 配置路徑
在記憶面板中,確認當前使用的存儲文件、插件狀態文件、Python 腳本目錄以及項目目錄是否正確。面板會顯示哪些 Scope 是隻讀的,哪些是可寫的。 - 查看與編輯
在“記憶”標籤頁中,可以查看當前注入到系統提示詞中的核心塊。支持編輯和刪除操作,也可以創建新的核心塊。 - 審查與追蹤
通過提取結果頁面,可以查看最近五次的提取產出。點擊具體的記憶條目,可以打開 MemVault 的審計鏈(history)和關係圖(relations)。支持標記需要審查的條目,並直接複製修正請求。 - 瀏覽存儲
在存儲瀏覽視圖中,可以通過子字符串搜索內存表,支持按類型和 Scope 過濾,分頁顯示。可以查看每條記憶的類型、範圍、年齡和 ID。
注意事項¶
- 運行時依賴:插件本身零運行時依賴,僅使用 Node.js 內置模塊(
node:sqlite,node:child_process,node:fs)。 - 數據庫訪問:插件以只讀模式直連 SQLite 數據庫,不依賴額外的 HTTP 服務器。
- 重啓安全:等待窗口(有界渲染的對話記錄)會在每個回合結束時寫入狀態文件,因此回合之間的重啓不會導致記憶丟失。
- 後臺提取:提取操作在會話空閒時運行(例如用戶暫停等待回答時),不在模型等待回答的關鍵路徑上,且一次調用可覆蓋多個回合。
生態背景¶
DeepSeek Harness 的理念是“一切皆插件”。該插件是 MemVault 的 DSH 特定層,它與 MemVault 本身的通用 MCP 服務是解耦的。安裝此插件後,記憶不再是模型需要“記住”去查找的東西,而是已經加載好的上下文。