在 DeepSeek Harness (DSH) 的插件化架構中,Agent 的長期記憶往往需要獨立於宿主進程管理。dsh-mem0 專注於解決這一場景:它允許宿主 Agent 通過 mem0_* 工具直接讀寫自部署的 mem0 REST 服務。
這是一個由 orangeshinee 維護的插件。它對接新版 OSS 構建(mem0/mem0-api-server),支持 Dashboard、X-API-Key 認證,且 REST 端點無 /v1 前綴。通過熱插拔機制掛載,無需修改 DSH 源碼。
核心工具能力¶
插件提供以下工具,覆蓋記憶生命週期的讀寫操作:
- mem0_add:寫入記憶,支持字符串或消息數組,默認按
defaultUserId/defaultAgentId歸類。 - mem0_search:語義搜索,返回結果帶相關性分數。
- mem0_get:讀取記憶列表(按標識符過濾)或單條。
- mem0_update:更新記憶文本、metadata 或過期時間。
- mem0_delete:刪除單條記憶;批量刪除需確認
confirm: "DELETE ALL"且用戶爲 admin。 - mem0_history:查看單條記憶的變更歷史。
- mem0_reset:清空全部記憶,需確認
confirm: "RESET"且用戶爲 admin。 - mem0_status:健康檢查、認證狀態及配置狀態(不輸出 apiKey)。
安裝與啓用¶
安裝過程通過 DSH CLI 完成,支持從 GitHub 倉庫或本地目錄掛載。
# 從 GitHub 安裝
dsh plugin --profile web add github:orangeshinee/dsh-mem0
# 從本地目錄安裝(熱插拔)
dsh plugin --profile web add link:$(pwd)
# 裝完重啓 dsh web 生效
配置方式¶
插件不提供側邊欄 UI,但內置了瀏覽器端配置卡片。用戶需在設置面板 → 插件 → 插件配置中編輯 dsh-mem0 卡片。
關鍵配置項¶
| 鍵 | 默認值 | 說明 |
|---|---|---|
baseUrl |
http://127.0.0.1:8888 |
自部署 mem0 地址(無尾斜槓,無 /v1) |
apiKey |
空 | dashboard「API Keys」創建的 m0sk_... 或 legacy ADMIN_API_KEY |
authType |
apiKey |
認證方式:apiKey / adminKey / jwt / none |
defaultUserId |
HeTony |
未指定 user_id 時的默認歸屬 |
defaultAgentId |
dsh-agent |
未指定 agent_id 時的默認歸屬 |
timeoutMs |
15000 |
單請求超時時間 |
announceToAgent |
true |
是否向 Agent 宣告插件能力 |
enabled |
true |
總開關 |
安全機制¶
配置經 dsh settings provider 持久化。插件配置卡片由瀏覽器端提供(client/client.cjs),通過插件自帶的 /api/dsh-mem0/config 路由讀寫。由於 Harness 的 settings 線上通道只開放白名單命名空間,插件無法自行加入。apiKey 在 schema 上標記爲 role('secret'):路由只下發“已配置/未配置”標記,密鑰字面量不會進入瀏覽器。
運行時依賴¶
運行時依賴(@deepseek-ai/dsh-settings / @deepseek-ai/schemastery)已列爲硬依賴。dsh plugin add 會隨包安裝(profile 默認 autoInstallPeers:false,peerDependencies 不會被裝)。
適用場景¶
該插件適合需要長期存儲 Agent 上下文、對話歷史或業務數據的場景。由於以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。