在構建基於 DSH 的智能體或工具流時,模型往往受限於當前工作區,或需要手動執行外部命令來檢索文件。這導致搜索效率低、語法門檻高。爲解決這一問題,可以使用基於 voidtools Everything 引擎的文件搜索工具。
該插件爲 DSH 模型提供了一個名爲 everything_search 的工具,利用 Everything 的 NTFS 索引,在 Windows 上實現毫秒級的全盤文件檢索。它支持完整的 Everything 搜索語法,並允許模型直接獲取文件的元數據信息,無需開發者編寫複雜的腳本。
前置條件¶
使用該插件前,需滿足以下環境要求:
- 操作系統:僅支持 Windows 系統(基於 NTFS 卷)。
- 軟件依賴:必須安裝並運行 Everything 軟件。
- 命令行工具:
es.exe(Everything 的命令行客戶端)必須在系統 PATH 環境變量中。
驗證環境是否就緒:
es -h
若能返回幫助信息,則環境配置正確。
安裝與啓用¶
通過 DSH 的插件管理器安裝:
dsh plugin --profile web add "github:zhourenke/dsh-tool-everything"
安裝完成後,重啓 DSH 進程,模型即可調用 everything_search 工具。
核心功能¶
該工具提供以下能力:
- 全盤搜索:基於 Everything 索引,不侷限於當前工作區,支持毫秒級搜索。
- 全文檢索:支持
content:語法按文件內容搜索文件,但必須限定路徑。 - 元數據返回:支持返回文件大小、創建/修改/訪問時間、擴展名、屬性等信息。
- 完整語法:支持 Everything 的通配符、布爾運算、正則表達式等語法。
- 結果計數:自動補全
total字段,返回匹配總數。 - 快速查詢:基於索引查找,非目錄掃描,響應速度極快。
典型用法¶
模型在調用工具時,可以直接使用上述語法。以下是幾種典型場景:
-
查找 D 盤下大小超過 1GB 的文件:
query: size:>1gb, path: D:\ -
查找
C:\Projects目錄下包含TODO關鍵詞的文本文件:
query: content:TODO, path: C:\Projects -
查找 2024 年 7 月修改過的所有 PDF 文件:
query: *.pdf dm:2024-07-01..2024-07-31
注意事項與限制¶
使用時需注意以下幾點:
- 路徑限定:使用
content:全文搜索時,必須通過path參數明確限定搜索範圍,否則會被拒絕或自動收窄。 - 硬鏈接問題:硬鏈接文件可能無法被搜到(這是 Everything 實時索引的特性),需在 Everything 中執行 Force Rebuild。
- 語法限制:正則模式不支持
(...)分組;內聯path:語法不支持含空格的路徑。 - 結果標識:搜索結果中,文件夾以
\結尾;無擴展名的文件返回擴展名空字符串。
總結¶
zhourenke/dsh-tool-everything 適合需要在本地 Windows 環境進行深度、快速文件檢索的場景。它將 Everything 的強大索引能力封裝爲 DSH 工具,降低了模型調用文件系統的門檻。更多細節可參考插件目錄或 GitHub 倉庫。