前言¶
在 DeepSeek Harness (DSH) 的插件化生態中,如何爲智能體提供持久且隔離的會話記憶是一個常見的技術挑戰。傳統的記憶方案可能面臨上下文根目錄不確定、工具註冊衝突或缺乏會話隔離等問題。dsh-engram-session 旨在通過會話級的 Engram MCP 子進程,解決這些痛點,爲智能體提供穩定且可複用的記憶存儲能力。
這是什麼¶
dsh-engram-session 是一個獨立的 Engram 記憶包,由開發者 xiuyuan18 維護。它作爲 DSH 的一個獨立插件,爲智能體會話提供 Engram 記憶功能,並且是一個可複用的獨立項目,支持跨配置文件和預設使用。
核心功能¶
該插件具備以下核心能力:
- 會話級記憶管理:爲每個智能體會話生成一個獨立的 Engram MCP 子進程,確保記憶存儲與會話上下文綁定。
- 確定性根目錄:子進程的當前工作目錄 (
cwd) 設爲會話工作區根目錄,解決了 Engram 項目自動檢測(如 Git 根目錄或.engram/config.json)的不確定性,特別是在 DSH web GUI、VS Code 或 CI 等環境下的兼容性問題。 - 作用域隔離:在智能體自身的作用域內註冊
mem_*系列工具,避免與其他智能體或全局工具產生命名衝突。 - 協議注入:在加載時將 Memory Protocol 作爲系統提示詞的一部分注入,定義智能體與記憶工具的交互方式。
- 零副作用移除:插件是獨立的 Bundle 項目,包含
dsh.bundle.patch層。移除或禁用插件時,不會遺留任何工具註冊或記憶指令,不會產生副作用。
安裝與啓用¶
使用前需安裝依賴並將插件添加到配置文件中。
- 進入插件目錄並安裝依賴:
cd /home/xiuyuaned/dsh-plugins/dsh-engram-session && pnpm install
- 將插件添加到指定的配置文件(例如
web):
dsh plugin --profile <name> add /home/xiuyuaned/dsh-plugins/dsh-engram-session
- 重啓配置文件對應的應用程序以激活插件。
典型用法¶
安裝完成後,智能體即可使用 mem_* 工具進行記憶操作。若需移除插件,執行以下命令:
dsh plugin --profile <name> remove dsh-engram-session
由於源碼位於外部目錄,移除操作不會刪除插件本體,可隨時重新安裝。
適用場景與注意¶
該插件適合需要爲智能體提供獨立會話記憶上下文,且希望避免記憶污染的場景。
注意事項:
1. 非官方項目:這是一個社區獨立項目,不屬於 DeepSeek Harness 官方產品,使用需自行承擔風險。
2. 無重連監督:插件沒有對 Engram 子進程的重連機制。如果子進程在會話中途意外終止,其註冊的工具將失效,直到當前會話結束。
3. 結果投影限制:當前僅支持文本結果投影。如果 Engram 返回圖片、音頻或嵌入式 MCP 塊,它們將被轉換爲診斷信息,智能體無法直接處理。
4. 二進制依賴:插件依賴 Engram 可執行文件。如果未找到二進制文件,插件會記錄警告並掛載,但會跳過記憶工具和協議注入部分。
短結尾¶
dsh-engram-session 通過會話隔離和確定性路徑解析,爲 DSH 智能體提供了可靠的記憶解決方案。其零副作用的設計也便於在配置文件之間複用。更多技術細節和源碼可參考其 GitHub 倉庫。