在 DeepSeek Harness (DSH) 的開發與調試過程中,智能體經常會遇到重複性問題。如果每次都從零開始解釋背景,效率較低。我們需要一種機制,讓智能體能夠跨會話記住遇到的問題、解決方法以及腳本路徑,從而減少重複勞動。dsh-self-memory 旨在解決這一問題,通過結構化記錄和自動檢索,實現離線、零依賴的經驗記憶閉環。
插件簡介¶
dsh-self-memory 是一個由 cyanxi69-jpg 維護的 DSH 插件。它將會話中遇到的問題、多種解決方法、腳本文件路徑以及模型調用全過程進行結構化記錄。新會話啓動後,系統會自動檢索歷史方案並注入上下文,通過“先查、試、標命中/失敗、回寫”的流程,實現經驗的自動沉澱與複用。
核心能力¶
- 結構化記錄:將問題、方案、腳本路徑與模型調用全過程結構化存儲。
- 自動檢索與注入:新會話自動檢索歷史方案並注入上下文,支持命中與失敗反饋。
- 零依賴與離線:純本地運行,無需外部服務,離線可用。
- 外部導入:支持通過接口導入現有的解決方法。
- 前提感知檢索:根據不同的前提條件返回不同的解決方案。
- 泛化與規範化:自動生成泛化問題以增強檢索能力,支持關鍵詞規範化與同義詞表管理。
安裝與啓用¶
安裝該插件需要將本地目錄添加到 DSH 的插件配置中。
dsh plugin --profile web add <本目錄>
安裝後,可以通過免重啓熱掛載的方式生效:
dev_install_package {"dir": "<本目錄>"}
安裝完成後,可以通過以下命令驗證插件狀態:
selfmem_status
如果代碼更新,需要執行以下命令重載:
dev_reload_package dsh-self-memory
典型用法¶
1. 檢索歷史方案¶
當需要查找歷史經驗時,使用 selfmem_search。
selfmem_search {"query":"如何識圖"}
2. 記錄新的解決方案¶
記錄問題時,可以指定關鍵詞權重、適用前提以及方案內容。例如,記錄斷網時的安裝方案:
selfmem_record {"problem":"斷網時如何安裝插件","solution":"解壓本地包 → dsh plugin add <目錄> → pnpm install → dev_install_package 熱掛載","keywords":{"plugin":1,"network":0.6},"appliesTo":{"network":"no"}}
3. 標記方案結果¶
當智能體嘗試了歷史方案後,可以反饋結果。成功則標記命中,失敗則記錄根因。
selfmem_hit {"query":"斷網時如何安裝插件","solutionId":"s-…"}
selfmem_fail {"query":"斷網時如何安裝插件","solutionId":"s-…","rootCause":"…"}
4. 外部導入¶
如果有現成的知識庫,可以通過 selfmem_import 進行導入。
selfmem_import {"source":"examples/import-demo.json"}
限制與注意事項¶
- 檢索方式:目前僅支持關鍵詞、泛化文本和倒排索引檢索,暫不支持向量語義檢索。
- 數據提取:雖然會自動採集會話軌跡,但不會自動提煉爲記錄,通常需要手動調用 LLM 進行提取。
- 存儲性能:記錄以 JSON 文件形式存儲,當記錄達到萬級後,性能可能會受到限制。
總結¶
dsh-self-memory 是一個專注於本地化、結構化經驗沉澱的工具。它通過簡單的命令交互,幫助 DSH 智能體構建自己的知識庫,減少重複性問題的排查成本。其開源許可證爲 MIT,項目地址見 GitHub。