前言¶
在 Windows 上做智能體開發,「讓 Agent 找文件」是個繞不開的需求。傳統做法要麼讓模型遞歸遍歷目錄,速度慢;要麼啓用 Everything 的 HTTP 服務器或藉助 es.exe,多一道配置工序。dsh-tool-everything 走的是另一條路:它給 DSH(DeepSeek Harness)Agent 註冊一個 everything_search 工具,直接調用本機 Everything 的索引,按文件名全盤搜索,毫秒級返回。下面介紹它的定位、安裝和使用。
這是什麼¶
dsh-tool-everything 是 DSH 的 Everything 搜索工具插件,由 roxyyn0304 維護,採用 MIT 許可證(README 與 package.json 聲明一致)。
它的功能很集中:爲 DSH Agent 註冊 everything_search 工具。Agent 發起調用後,插件通過 koffi FFI 加載自帶的 Everything64.dll,經 Everything SDK 的 IPC 通道把查詢交給 Everything,藉助其 NTFS 索引按文件名搜索全盤,再以結構化形式返回結果:文件路徑、文件大小、是否文件夾。Everything64.dll 取自 voidtools 的 Everything SDK 1.5,隨插件一起分發。
核心功能¶
- 直接調用 Everything SDK(koffi FFI),走 IPC 通道,毫秒級響應
- 支持完整搜索語法:通配符
*.pdf、path:C:\code、ext:zip、size:>10mb,以及regex:、|(或)、!(非) - 返回結構化結果(路徑、大小、是否文件夾),UI 自動渲染搜索卡片
- 零依賴安裝:自帶 Everything64.dll,系統不需要額外組件
- 零配置:無需啓用 Everything HTTP 服務器,無需 es.exe,不改 Everything 的任何設置
- DSH 原生 Cordis 插件,支持 HMR 熱重載,裝完不用重啓 DSH
- 實現收斂在單文件
lib/index.js,ESM 模塊
安裝與啓用¶
先確認三個前提:
- Windows 系統;
- Everything 正在運行;
- DSH profile 的 node_modules 裏有 koffi(DSH 自帶,一般不用處理)。
然後在 PowerShell 執行安裝命令:
dsh plugin --profile web add "github:roxyyn0304/dsh-tool-everything"
裝完做兩件事:硬刷新瀏覽器(Ctrl+Shift+R),再新開一個會話,everything_search 工具就可以使用了。
配置¶
插件有三個配置項,默認值如下:
| 字段 | 默認值 | 說明 |
|---|---|---|
maxResults |
100 |
單次返回結果上限 |
timeoutMs |
30000 |
工具超時預算(ms) |
everythingDllPath |
包內 native/ |
自定義 Everything64.dll 路徑,一般不用 |
典型用法¶
Agent 側的調用示例(來自 README 的技術細節說明):
everything_search("npm", max=10)
這一步在做什麼:讓 Agent 全盤按文件名搜索 npm,最多返回 10 條結果。
配合 Everything 的搜索語法可以進一步過濾,例如:
*.pdf
path:C:\code
ext:zip
size:>10mb
分別對應按通配符、按路徑、按擴展名、按文件大小篩選。regex:、|、! 等語法同樣可用。
錯誤碼¶
工具失敗時會返回明確的錯誤碼,方便定位問題:
| code | 含義 |
|---|---|
EVERYTHING_SDK_LOAD_FAILED |
找不到或無法加載 Everything64.dll |
EVERYTHING_NOT_RUNNING |
Everything 未運行 |
SEARCH_ABORTED |
工具被超時或用戶取消終止 |
實現方式¶
調用鏈路是:DSH Agent 調用 everything_search → 插件通過 koffi FFI 調用 Everything64.dll → Everything SDK 走 IPC 通道 → Everything.exe 完成全盤 NTFS 索引檢索。
插件自身 dependencies 爲空,聲明瞭一組 peerDependencies:@deepseek-ai/dsh-llm、@deepseek-ai/dsh-system-prompt、@deepseek-ai/dsh-tools、@deepseek-ai/dsh-timeout(^0.1.0-rc.6)以及 @deepseek-ai/schemastery(^3.18.1)。運行時依賴由 DSH 提供,koffi 也是 DSH 自帶的。
適用場景與注意¶
適合的場景:在 Windows 上使用 DSH,本機常駐 Everything,希望 Agent 能按文件名快速定位文件,比如在項目目錄裏找某類文件、確認某個安裝包在哪個盤。搜索依據是 Everything 的文件名索引。
另外幾點需要注意:
- 插件以當前 dsh 進程的權限運行,安裝前建議先檢查源碼與許可證;
- 插件採用 MIT 許可證,README 與 package.json 聲明一致;
- 遇到報錯時對照錯誤碼排查:dll 加載失敗、Everything 未運行、調用被終止,分別對應上節的三種情況。
結尾¶
dsh-tool-everything 把「讓 Agent 在 Windows 全盤找文件」壓成了一次工具調用:Everything 在運行、插件裝好,Agent 就能按文件名毫秒級搜遍全盤,不需要額外服務或配置。插件地址:
- GitHub:https://github.com/roxyyn0304/dsh-tool-everything
- 社區插件目錄頁:https://www.skillhub.cn/plugins/roxyyn0304/dsh-tool-everything (社區獨立維護的目錄站點,與 DeepSeek、幻方無官方從屬關係)