dsh-tool-everything:給 DSH Agent 接入 Everything 全盤文件搜索

前言

在 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 模塊

安裝與啓用

先確認三個前提:

  1. Windows 系統;
  2. Everything 正在運行;
  3. 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 的文件名索引。

另外幾點需要注意:

  1. 插件以當前 dsh 進程的權限運行,安裝前建議先檢查源碼與許可證;
  2. 插件採用 MIT 許可證,README 與 package.json 聲明一致;
  3. 遇到報錯時對照錯誤碼排查: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、幻方無官方從屬關係)
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜