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
羽毛球分组比赛记分
小程序二维码

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

小夜