前言¶
DeepSeek Harness (DSH) 的設計理念是「一切皆插件」。在開發或調試過程中,維護一份結構化的 Markdown 知識庫是常見需求。直接依賴外部服務或 LLM 進行管理缺乏確定性,且可能涉及隱私問題。dsh-llmwiki 插件通過本地文件系統和確定性算法,提供了一套無需網絡和模型調用的 wiki 存儲與檢索方案,確保了數據的可重現性和完整性。
插件簡介¶
dsh-llmwiki 是一個本地優先、源鏈接 Markdown wiki 存儲和檢索插件。它由 EveGoodEvening 維護,遵循 MIT 許可證。該插件旨在爲 DSH 提供確定性的存儲、檢索和結構完整性檢查,所有數據均存儲在本地文件系統下的單一 wiki 根目錄中。
核心功能¶
該插件提供以下核心能力:
- 不可變源:使用 SHA-256 內容哈希存儲源文件,確保源記錄一旦寫入即不可變,不會被修改或刪除。
- 源鏈接頁面:通過 Markdown frontmatter 驗證頁面引用的源 ID,確保頁面與源記錄的對應關係。
- 確定性搜索:基於 BM25 評分算法進行確定性搜索,索引重建是按需進行的。
- 結構檢查:提供文件系統、完整性、鏈接診斷和索引狀態檢查,但不進行語義判斷或自動修復。
- 安全文件系統:Wiki 根目錄必須爲真實目錄,拒絕符號鏈接,所有路徑均受根目錄限制。
- 無外部依賴:搜索、工具、命令和 Lint 功能均不調用任何模型或網絡接口。
安裝與啓用¶
安裝前請確保環境滿足依賴要求:Node.js ^22.19.0 || >=24 和 pnpm 11.7.0。
1. 安裝插件¶
通過 DSH 配置文件管理器安裝包:
dsh plugin --profile web add @evegoodevening/dsh-llmwiki
2. 創建配置補丁¶
安裝包默認情況下不會激活 llmwiki Loader 行,必須顯式補丁和選擇加入。創建配置文件 /etc/dsh/llmwiki-web.patch.yml:
- insert:
- id: llmwiki
name: '@evegoodevening/dsh-llmwiki'
config:
root: /var/lib/dsh/llmwiki/web
maxSourceBytes: 2097152
maxPageBytes: 524288
maxResults: 20
maxSnippetBytes: 1200
commandDiagnosticLimit: 20
3. 應用配置並重啓¶
使用補丁文件重新加載配置:
dsh --profile web --patch /etc/dsh/llmwiki-web.patch.yml --dump-config
重啓配置文件後,使用 /wiki status 或 /wiki lint 驗證插件狀態。
4. 卸載(保留數據)¶
如需移除插件而不刪除 Wiki 數據:
dsh plugin --profile web remove @evegoodevening/dsh-llmwiki
配置與使用¶
插件的所有配置鍵均爲可選,可在補丁文件的 config 節點中設置。主要配置項包括:
* root:Wiki 根目錄路徑。
* maxSourceBytes:單個源文件的最大字節長度(默認 2MB)。
* maxPageBytes:頁面渲染的最大字節長度(默認 512KB)。
* maxResults:搜索結果的最大數量(默認 20)。
通過上述步驟啓用後,插件將作爲 DSH 的一個服務、工具和命令存在,供 Agent 調用。
注意事項¶
- 作用域名稱:始終使用作用域包名稱
@evegoodevening/dsh-llmwiki,不要使用未作用域的dsh-llmwiki。 - 顯式激活:安裝包默認不激活 Loader 行,必須使用顯式補丁。
- 數據兼容性:升級到安全默認 bundle 執行無數據遷移,保留現有根目錄、ID 和索引。
- 文件系統限制:Wiki 根必須是真實目錄,插件會拒絕符號鏈接。
- 來源管理:來源從未被插件修改或刪除。
總結¶
dsh-llmwiki 爲 DeepSeek Harness 提供了一個本地化、確定性的 Markdown Wiki 解決方案。通過不可變源記錄和確定性搜索,它適合需要嚴格數據管理、隱私保護以及離線運行的開發場景。更多細節可參考其GitHub 倉庫或社區目錄。