DeepSeek Harness 插件生態中,爲智能體提供本地知識庫是常見需求。傳統的文件系統掃描插件只能線性讀取,無法按目錄或屬性過濾,且全文搜索在處理中文短詞時往往存在侷限。dsh-obsidian-agent-wiki 插件通過在啓動時構建內存中的 SQLite 索引,解決了這些問題,爲智能體提供了一個具備全文搜索和結構化過濾能力的 Obsidian 訪問層。
核心功能¶
- SQLite 索引:插件基於 Node 22 的內置
node:sqlite構建,無運行時依賴。在啓動時掃描 vault 並構建內存表,在wiki_write和wiki_append操作時自動更新索引。 - 全文搜索:支持 2 字符中文查詢。
- 結構化過濾:支持按路徑、類別、項目、標籤過濾。
- 結果排序:支持按匹配次數排序。
- 工具支持:提供
wiki_read、wiki_list、wiki_write、wiki_append、wiki_search工具。
安裝與啓用¶
安裝插件需要 DeepSeek Harness(dsh)版本 ≥ 0.1.1-rc.2,以及 Node 版本 ≥ 22.5。
在終端中執行以下命令:
dsh plugin add dsh-obsidian-agent-wiki
配置¶
配置插件指向本地 Obsidian 倉庫。
方法一:在 cordis.patch.yml 中配置
在 dsh 的配置文件中添加以下內容:
- id: dsh-obsidian-agent-wiki
name: dsh-obsidian-agent-wiki
config:
vaultPath: B:/path/to/your/vault
方法二:設置環境變量
設置 OBSIDIAN_VAULT_PATH 環境變量,然後重啓 dsh。
工具與用法¶
插件提供以下工具供智能體調用:
-
wiki_read(file_path)
讀取指定路徑的筆記內容。 -
wiki_list(path?)
列出指定路徑下的目錄或文件。路徑爲可選參數。 -
wiki_write(file_path, content)
寫入或覆蓋筆記內容,操作完成後立即重新索引。 -
wiki_append(file_path, content)
向筆記追加內容,操作完成後立即重新索引。 -
wiki_search(query, path?, category?, project?, tag?, limit?)
進行全文搜索和結構化過濾。返回結果包含路徑、標題、類別、項目、匹配次數和摘要,按匹配次數排序。
索引機制與搜索細節¶
- 索引構建:插件在啓動時掃描 vault(跳過
.obsidian、.git、node_modules、.trash目錄)並構建索引。 - 索引更新:通過
wiki_write和wiki_append工具對筆記進行操作時,會立即觸發對應筆記的重新索引。 - 手動編輯:如果在 Obsidian 中手動編輯了筆記,索引不會自動更新,需要重啓 dsh 進程才能生效。
- 全文匹配:插件使用
LIKE '%query%'而非 FTS5 trigram 進行全文匹配。這是爲了確保支持 2 字符的中文短詞查詢(FTS5 trigram 在查詢短於 3 個字符時會返回零結果)。
注意事項¶
- 版本依賴:確保滿足 Node ≥ 22.5 和 dsh ≥ 0.1.1-rc.2 的版本要求。
- 權限與安全:插件以 dsh 進程權限運行,安裝前建議檢查源碼與許可證(MIT)。
- 搜索實現:由於使用
LIKE進行掃描,在筆記數量達到數十至數百篇時性能依然保持亞毫秒級,但在極大量筆記下性能可能下降。
生態背景¶
DeepSeek Harness 理念是「一切皆插件」。此插件由社區開發者 CagierAsh123 維護,安裝目錄與 GitHub 倉庫爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。