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 环境下文件搜索范围失控的问题,使智能体的操作更精准、高效。

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

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

小夜