前言¶
在 Windows 上让智能体按文件名定位本地文件,常见做法是走 Shell 递归查找、PowerShell 的 Get-ChildItem,或依赖 Everything 的 HTTP 服务、es.exe 等外围接口。路径深、盘符多时,前者往往慢且难控;后者还要额外开服务或改 Everything 配置。
下面介绍社区插件 dsh-tool-everything(维护者 Luoning77)。它在 DeepSeek Harness(DSH)里注册 everything_search 工具,通过 Everything 的索引对 NTFS 做毫秒级文件名搜索;README 写明无需启用 Everything HTTP 服务器、无需 es.exe,也不改 Everything 设置,只要 Everything 在运行即可。
这是什么¶
dsh-tool-everything 是 DSH 的 Cordis 插件,分类上属于联网工具类能力中的本地索引搜索(实现依赖 Windows 与 Everything,而非远程 API)。插件向 Agent 暴露 everything_search:调用方传入 Everything 查询语法,返回路径、文件大小、是否文件夹等结构化结果,UI 可渲染搜索卡片。
技术路径是插件内用 koffi 做 FFI,直连包内自带的 Everything64.dll,经 Everything SDK 的 IPC 与正在运行的 Everything.exe 通信;koffi 由 DSH 自带,插件声明零 npm 运行时依赖。当前资料中的版本为 0.2.1,许可证 MIT。GitHub 仓库:Luoning77/dsh-tool-everything;社区目录页:skillhub.cn 插件条目。
核心功能¶
资料中可核对的能力如下。
- 极速检索:不走 HTTP,直接 SDK + IPC,面向「全盘按名搜」场景。
- 完整 Everything 语法:支持通配符(如
*.pdf)、path:、ext:、size:、regex:、|或、!非等(以 Everything 官方语法为准)。 - 结构化输出:路径、大小、目录标志,便于 Agent 与前端展示。
- 零额外系统组件:自带
Everything64.dll(来自 Everything SDK 1.5),一般无需单独安装 SDK。 - DSH 原生集成:Cordis 插件,支持 HMR 热重载,无需重启 DSH。
Agent 侧调用形态在 README 技术示意中为:everything_search("npm", max=10)(具体参数以插件 schema 为准)。
环境与前提¶
使用前需同时满足:
- Windows 系统;
- Everything 正在运行;
- DeepSeek Harness 版本在 0.1.0-rc.6 ~ 0.2.x(资料明确包含
0.2.1-rc.2)。
安装与启用¶
官方 README 给出的安装命令如下(注意仓库标识与 Luoning77 主页不同,以 README 原文为准):
dsh plugin --profile web add "github:roxyyn0304/dsh-tool-everything"
安装完成后:
- 在浏览器中对 DSH 硬刷新(
Ctrl+Shift+R); - 新开一条会话,即可使用
everything_search。
版本注意:请安装 0.2.1 及以上。0.2.0 的 peerDependencies 仅声明 ^0.1.0-rc.6,在 DSH 0.2.x 下可能触发 incompatible-version 被拒绝;0.2.1 起通过 engines.dsh: ">=0.1.0-rc.6 <0.3.0-0" 声明兼容范围。
从旧版升级时,重新执行同一条 add 即可覆盖;若 profile 里曾为 0.2.0 写过 compatibility.json 豁免,升级后可删除。
配置项¶
可在插件配置中调整(字段来自 README):
| 字段 | 默认 | 说明 |
|---|---|---|
maxResults |
100 |
单次返回结果上限 |
timeoutMs |
30000 |
工具超时预算(毫秒) |
everythingDllPath |
包内 native/ |
自定义 Everything64.dll 路径,一般不必改 |
错误码¶
排查时可对照:
| code | 含义 |
|---|---|
EVERYTHING_SDK_LOAD_FAILED |
找不到或无法加载 Everything64.dll |
EVERYTHING_NOT_RUNNING |
Everything 未运行 |
SEARCH_ABORTED |
工具被超时或用户取消终止 |
典型用法思路¶
- 确认托盘或任务管理器中 Everything 已启动,且目标盘符已被 Everything 索引。
- 在 DSH 新会话中,用自然语言让 Agent 按文件名查找,例如「找 C 盘 code 目录下最近改过的 zip」;Agent 应把意图转成 Everything 查询(如结合
path:、ext:zip)。 - 结果过多时,依赖
maxResults与更精确的查询缩小范围;长时间扫描时注意timeoutMs。
README 未提供独立 REST 示例;能力边界是文件名索引搜索,不是全文检索或 macOS/Linux 文件系统。
适用场景与注意¶
适合:在 Windows + DSH 开发或办公环境中,让 Agent 快速列出匹配文件路径,再配合 DSH 其它读写工具做后续操作。
务必注意:
- 插件与 DSH 在同一进程权限下运行,能搜到的路径即当前用户可见范围;安装前应阅读源码与 MIT 许可证,自行评估是否纳入工作流。
- 仅 Windows;Everything 未运行时会得到
EVERYTHING_NOT_RUNNING。 - 社区目录(如 skillhub.cn)为独立站点,与 DeepSeek / 幻方无官方从属关系;安装命令以插件 README 为准。
结尾¶
dsh-tool-everything 把 Everything 的索引能力以 DSH 原生工具形式交给 Agent:零 HTTP、零 es.exe 配置,FFI 直连 SDK。若你已在用 DSH 0.2.x 并在 Windows 上常驻 Everything,可按 README 安装后在新会话中试用 everything_search。
- 目录页:https://www.skillhub.cn/plugins/Luoning77/dsh-tool-everything
- GitHub:https://github.com/Luoning77/dsh-tool-everything