dsh-tool-everything:为 DSH Agent 接入 Everything 全盘文件名搜索

前言

在 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 插件条目。

核心功能

资料中可核对的能力如下。

  1. 极速检索:不走 HTTP,直接 SDK + IPC,面向「全盘按名搜」场景。
  2. 完整 Everything 语法:支持通配符(如 *.pdf)、path:、ext:、size:、regex:、| 或、! 非等(以 Everything 官方语法为准)。
  3. 结构化输出:路径、大小、目录标志,便于 Agent 与前端展示。
  4. 零额外系统组件:自带 Everything64.dll(来自 Everything SDK 1.5),一般无需单独安装 SDK。
  5. 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"

安装完成后:

  1. 在浏览器中对 DSH 硬刷新(Ctrl+Shift+R);
  2. 新开一条会话,即可使用 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 工具被超时或用户取消终止

典型用法思路

  1. 确认托盘或任务管理器中 Everything 已启动,且目标盘符已被 Everything 索引。
  2. 在 DSH 新会话中,用自然语言让 Agent 按文件名查找,例如「找 C 盘 code 目录下最近改过的 zip」;Agent 应把意图转成 Everything 查询(如结合 path:、ext:zip)。
  3. 结果过多时,依赖 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
羽毛球分组比赛记分
小程序二维码

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

Xiaoye