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 通道,毫秒级响应
  • 支持完整搜索语法:通配符 *.pdfpath:C:\codeext:zipsize:>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、幻方无官方从属关系)
羽毛球分组比赛记分
小程序二维码

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

Xiaoye