前言¶
DeepSeek Harness (DSH) 的對話會話通常是臨時的。隨着輪次增加,歷史記錄會消耗上下文窗口。該插件將成功的輪次凍結爲文檔,而不是將所有內容都注入到提示詞中。
插件簡介¶
名稱:dsh-knowledge-sync
維護者:liugu2023
許可證:MIT
該插件將 DSH 會話的每一輪凍結爲知識庫文檔,並允許後續對話查找它們。會話結束時,提出的問題、得出的結論以及運行的工具都會被記錄爲一個 Markdown 文件,且不會發送給模型進行處理。
核心功能¶
插件提供以下核心能力:
- Markdown 文檔與 YAML Front Matter:每個文檔爲一個 Markdown 文件,包含 YAML front matter,記錄元數據(如 ID、標題、會話、輪次、類型等)。
- 顯著性過濾:只有通過顯著性過濾的輪次纔會被保存。根據配置,過於簡短或無實質內容的輪次(如僅狀態報告)會被丟棄。
- 憑證脫敏:在寫入磁盤前,會自動移除工具參數中的敏感信息(如 token、密碼、PEM 密鑰等),支持配置額外的脫敏正則表達式。
- 全文搜索:基於內存中的 BM25 索引實現全文搜索,支持搜索文檔正文(不僅僅是標題)。
- 工作區隔離:知識庫作用域限定在當前目錄,確保不同項目的知識不會相互干擾。
- 工具與 UI:提供
knowledge_search和knowledge_read工具,並在 Web UI 的設置頁面提供知識管理和配置界面。
安裝與啓用¶
在終端中執行以下命令以安裝該插件:
dsh plugin --profile web add dsh-knowledge-sync
安裝完成後,可通過 Web UI 訪問設置頁面的 Knowledge 部分查看狀態。
典型用法¶
文檔存儲位置:文檔默認保存在 ./knowledge 目錄下,或由環境變量 DSH_KNOWLEDGE_ROOT 指定的位置。文件路徑通常爲 <root>/<session>/<id>-<slug>.md。
文檔類型:
* raw:通過顯著性過濾的原始輪次。
* note:智能體在執行過程中手動調用的 knowledge_note 工具生成的記錄。
* distilled:通過可選的蒸餾功能壓縮後的輪次總結。
工具使用:
在對話中,智能體可以通過以下工具操作知識庫:
* knowledge_search:在文檔庫中搜索,支持按類型、標籤或工具過濾。
* knowledge_read:讀取特定 ID 的完整文檔。
配置方式:
在 Web UI 的設置頁面進入 Knowledge 部分,在 Config 標籤頁中可實時修改配置,包括根目錄路徑、脫敏規則、顯著性閾值、蒸餾開關等。
注意事項¶
- 搜索機制:當前實現爲基於 BM25 的詞法搜索,不支持語義搜索(Embedding)。這意味着無法搜索從未出現過的短語。
- 目錄隔離:知識庫的召回限制在當前目錄內。位於記錄知識的工作區子目錄中的會話無法訪問該知識庫。
- 依賴版本:開發該插件需要與 DSH 安裝包中發佈的
@deepseek-ai/*包版本保持一致,建議使用確切版本而非範圍版本,以避免引入過時的包。
結語¶
dsh-knowledge-sync 通過將對話輪次結構化爲可搜索的文檔,解決了 DSH 會話上下文管理的問題。它提供了基於目錄的隔離機制和內存中的高效檢索,適合需要在長期會話中維護知識庫的開發場景。
該插件位於社區目錄:https://www.skillhub.cn/plugins/liugu2023/dsh-knowledge-sync
源代碼倉庫:https://github.com/liugu2023/dsh-knowledge-sync