dsh-plugin-better-glob

在 DeepSeek Harness (DSH) 的插件化生態中,內置工具的默認行爲有時過於寬泛。當智能體需要搜索文件時,默認的 glob 會遍歷 node_modules 等無底洞目錄,不僅消耗令牌,還會拖慢執行速度。dsh-plugin-better-glob 通過 per-agent 陰影機制,替換了內置 glob,強制顯式白名單策略,從而控制搜索範圍。

插件概述

這是一個由 HuanLinOTO 維護的 DSH 工作流插件。它以 per-agent 陰影頂替 DSH 內置的 glob 工具。其核心價值在於自動排除 node_modules、dist、build 等常見的無底洞目錄,並要求模型在搜索這些目錄時必須顯式傳遞 include 白名單。

行爲特性

工具參數與內置 glob 語義一致,包含 pattern(必填)和 path(可選)。其核心差異在於排除機制:

  1. 自動排除:默認排除 node_modules、bower_components、vendor、Pods、.yarn、dist、build、out、target、obj、.next、.nuxt、.output、.svelte-kit、.turbo、.parcel-cache、.cache、coverage、__pycache__、.venv、venv、.tox、.mypy_cache、.pytest_cache、.ruff_cache、.gradle、.terraform、.idea。
  2. VCS 恆排除:.git、.svn、.hg、.bzr、.jj、.sl 等版本控制目錄永遠被排除,不配置化。
  3. 顯式白名單:若需搜索被排除目錄,必須在調用參數中傳入 include 白名單數組。例如 include: ['**'] 可放行全部目錄。
  4. 執行底座:底層複用內置 @deepseek-ai/dsh-tool-fs-search 的打包 ripgrep 二進制。

安裝與啓用

插件支持本地開發鏈接與 npm 發佈形態。啓用插件需要重啓 DSH Web 並進行瀏覽器硬刷新。

dsh plugin --profile web add "link:D:/Projects/deepseek-harness/dsh-plugin-better-glob"

說明:使用 link: 引用本地源碼,修改源碼後執行 pnpm run build 重建 lib/ 即可生效,無需重裝。

配置項

插件提供以下配置項:

  • excludeDirs:整體替換默認排除清單。僅支持目錄名,不允許分隔符。
  • globMaxResults:限制單次內聯保留路徑數,超出部分 spill。
  • globMetaMaxBytes:限制卡片 meta 字節預算。
  • rawOutputMaxBytes:限制單次解析的 rg stdout 上限。
  • sampleOverCapGlobResults:超帽頁是否按頂層條目抽樣(默認 false)。

已知限制

  1. 陰影保留:插件停用後,已存活 agent 的陰影註冊會保留到該 agent 銷燬。
  2. 熱重載生效:配置熱重載對已在會話中的 agent 經 resync 生效。
  3. Include 粒度:include 模式的提升粒度是目錄名,子路徑不影響遍歷範圍。例如 node_modules/a/** 仍會放行整個 node_modules 目錄。

總結

該插件通過機制設計(陰影、白名單),解決了 DSH 環境下文件搜索範圍失控的問題,使智能體的操作更精準、高效。

羽毛球分组比赛记分
小程序二维码

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

小夜