前言¶
在 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、幻方无官方从属关系)