前言¶
在 DeepSeek Harness(DSH)中構建智能體時,上下文窗口有限且狀態難以持久化是常見痛點。每次開啓新會話都需要重新解釋背景,或者依賴外部服務存儲敏感數據,都不符合本地化開發的需求。DSH 的插件機制允許擴展核心能力,而 dsh-flymemory 便是解決這一問題的方案。
簡介¶
dsh-flymemory 是一個 DSH Bundle 插件。它在本地運行一個 FlyMemory MCP 服務,將 15 個記憶工具和兩個自動鉤子接入 DSH。數據存儲在本地文件系統中,服務監聽 127.0.0.1:8791,不涉及遠程網絡傳輸。
核心功能¶
插件通過前綴 mcp__flymemory__ 向模型提供工具,並運行兩個鉤子腳本實現自動化記憶管理。
記憶工具¶
提供 15 個工具用於記憶的增刪改查:
- 存儲與檢索:
flymemory_remember用於存儲決策或發現,支持按 compartment 分組;flymemory_recall用於搜索,融合了密集向量檢索和關鍵詞匹配;flymemory_auto是鉤子調用的核心,一次完成“檢索”與“存儲”。 - 狀態管理:
flymemory_state_lookup和flymemory_state_history追蹤特定鍵的當前值或歷史記錄,適合管理“當前值 X”這類狀態。 - 衝突與清理:
flymemory_find_conflicts查找矛盾條目,flymemory_forget和flymemory_cleanup負責刪除條目或清理過期數據。 - 會話輔助:
flymemory_session_pack打包近期活動摘要,flymemory_stats輸出統計信息。 - 其他:
flymemory_supersede標記舊條目被新條目替代,flymemory_consolidate合併多條記錄。
自動鉤子¶
兩個鉤子腳本在 DSH 事件中自動觸發:
- 捕獲:在每次對話後執行,將當前提示寫入記憶。
- 回憶:在每次對話前執行,檢索並追加相關記憶到上下文。
鉤子腳本在服務不可用時靜默降級,不會阻塞對話。
本地監督引擎¶
引擎基於 Python,依賴 torch 和 sentence-transformers。首次運行需下載多語言嵌入模型(約 470 MB)。下載完成後支持離線工作。
安裝與啓用¶
前置依賴:
- Node.js 20+
- Python 3.10+
- Python 依賴:torch, sentence-transformers, “mcp>=1.30,<2”, numpy
安裝命令:
plugin_manager(action: "install_bundle", target: "/absolute/path/to/dsh-flymemory")
安裝後,檢查服務狀態:
node bin/flymemory.mjs status
node bin/flymemory.mjs doctor
數據與配置¶
數據存儲¶
記憶數據存儲在 $DSH_HOME/flymemory-data/flymemory_v3.pkl。環境變量 FLYMEMORY_DATA_DIR 可修改此目錄。
服務配置¶
服務默認監聽 127.0.0.1:8791。可通過 FLYMEMORY_MCP_PORT 和 FLYMEMORY_MCP_URL 調整。
冷啓動¶
由於需要加載 PyTorch 模型,首次啓動和冷啓動耗時較長,通常在 15-20 秒左右。
注意事項¶
- 插件以當前 DSH 進程的權限運行,安裝前建議檢查源碼與許可證(MIT)。
- 憑證類文本(如 gh token)不會被存儲。
- 移除插件時,數據文件不會自動刪除,需手動處理。