前言¶
DeepSeek Harness 的智能體在處理跨工作區的文件查找(如“昨晚下載的 PDF 在哪”或“D 盤所有 .env 文件”)時,常規基於目錄樹的搜索方式效率極低。dsh-goz 是一個爲 DSH 設計的插件,利用 goz 引擎讀取 NTFS 的 MFT(主文件表)建立內存文件名索引,完全繞過目錄樹遍歷,讓 agent 能夠毫秒級回答“某個文件在哪裏”。
功能與原理¶
- 全盤/限定目錄按文件名毫秒級定位:基於 goz 引擎,通過 MFT 索引快速檢索。
- 工具接口:提供
search_file和goz_status兩個面向模型(model-facing)的工具。 - MFT 索引:讀取 NTFS MFT,索引包含文件名、大小、時間,但不包含文件內容。
- 繞過目錄樹:無需遍歷文件系統樹結構,檢索開銷極低。
安裝與啓用¶
安裝分爲插件包安裝和 daemon 安裝兩個步驟,後者需要管理員權限。
- 安裝插件
使用 npm 包形式安裝:
dsh plugin --profile web add dsh-goz
如果是本地調試,可使用 link 形式:
dsh plugin --profile web add link:C:/path/to/dsh-goz
- 安裝 daemon(唯一的人工步驟)
goz 的 daemon 需要管理員權限啓動系統服務。進入插件自帶的vendor目錄(例如C:\Users\Administrator\Desktop\dsh\dsh-goz\vendor),執行安裝:
.\gozd.exe install
安裝後,`goz.exe` 和 `gozd.exe` 會被複制到用戶目錄並註冊爲系統服務。
- 驗證安裝
檢查版本和狀態:
.\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 是否在線及索引健康狀態。
注意事項¶
- 語法限制:排除運算符
!term尚未實現。使用case:開關在 v0.1.1 中不生效。 - 索引內容:goz 索引不含文件內容,僅限文件名/大小/時間。
- 權限要求: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