dsh-goz:基于 MFT 索引的全盘文件定位插件

前言

DeepSeek Harness 的智能体在处理跨工作区的文件查找(如“昨晚下载的 PDF 在哪”或“D 盘所有 .env 文件”)时,常规基于目录树的搜索方式效率极低。dsh-goz 是一个为 DSH 设计的插件,利用 goz 引擎读取 NTFS 的 MFT(主文件表)建立内存文件名索引,完全绕过目录树遍历,让 agent 能够毫秒级回答“某个文件在哪里”。

功能与原理

  1. 全盘/限定目录按文件名毫秒级定位:基于 goz 引擎,通过 MFT 索引快速检索。
  2. 工具接口:提供 search_file 和 goz_status 两个面向模型(model-facing)的工具。
  3. MFT 索引:读取 NTFS MFT,索引包含文件名、大小、时间,但不包含文件内容。
  4. 绕过目录树:无需遍历文件系统树结构,检索开销极低。

安装与启用

安装分为插件包安装和 daemon 安装两个步骤,后者需要管理员权限。

  1. 安装插件
    使用 npm 包形式安装:
    dsh plugin --profile web add dsh-goz
如果是本地调试,可使用 link 形式:
    dsh plugin --profile web add link:C:/path/to/dsh-goz
  1. 安装 daemon(唯一的人工步骤)
    goz 的 daemon 需要管理员权限启动系统服务。进入插件自带的 vendor 目录(例如 C:\Users\Administrator\Desktop\dsh\dsh-goz\vendor),执行安装:
    .\gozd.exe install
安装后,`goz.exe` 和 `gozd.exe` 会被复制到用户目录并注册为系统服务。
  1. 验证安装
    检查版本和状态:
    .\vendor\gozd.exe --version
    .\vendor\goz.exe --status
或在 dsh 对话中直接询问 agent。

使用方式

插件注册了两个工具:search_file 和 goz_status。

search_file(query, scope?, max?)

参数 类型 说明
query string, 必填 goz 查询语法,非空
scope string, 可选 限定搜索目录(映射 -path),超出白名单会触发审批
max number, 可选 结果上限(映射 -n),默认 50,最大 5000

返回值:结构化 JSON,包含 query、total(完整匹配数)、returned(实际返回数)、results(文件列表)。

示例查询语法:
* 文件名子串:report 匹配 QuarterlyReport.xlsx
* 通配符:*.pdf
* 扩展名过滤:ext:pdf;docx(注意:多扩展名必须用分号分隔,逗号无效)
* 路径子串:path:C:\dsh
* 大小过滤:size:>1mb

goz_status()

检查 daemon 是否在线及索引健康状态。

注意事项

  1. 语法限制:排除运算符 !term 尚未实现。使用 case: 开关在 v0.1.1 中不生效。
  2. 索引内容:goz 索引不含文件内容,仅限文件名/大小/时间。
  3. 权限要求:goz 是无状态 CLI 客户端,gozd.exe 是系统服务,daemon 需要管理员权限安装。

总结

dsh-goz 解决了 DSH agent 在全盘文件查找上的性能痛点,通过 MFT 索引将跨盘符、模糊文件名的定位从“数分钟”降低到“毫秒级”。

  • GitHub: https://github.com/hfyydd/dsh-goz
  • 目录页: https://www.skillhub.cn/plugins/hfyydd/dsh-goz
羽毛球分组比赛记分
小程序二维码

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

小夜