前言¶
在 DSH 里让智能体找文件、搜代码,通常走内置的 glob 和 grep。两者底层都是 ripgrep,但参数表是固定的:不能方便地跟符号链接、不能按文件类型收窄、也不能在匹配行前后带出上下文。glob 还有一个和文档描述不一致的地方——结果按修改时间升序排,却只保留前 100 条,实际拿到的是最旧的一批文件。
社区插件 dsh-fs-search-plus(维护者 RicardoYan)不替换这两个工具,也不改返回格式和条数上限;它在参数层扩展能力,并在发起搜索时把新字段翻译成 ripgrep 参数。下面介绍安装方式、各参数含义,以及使用时需要注意的几点。
这是什么¶
dsh-fs-search-plus 是面向 DeepSeek Harness(DSH)的插件,通过 Cordis patch 扩展内置 glob / grep 的 schema 与执行逻辑。当前版本 0.1.0,许可证 MIT。适用 @deepseek-ai/dsh 版本范围为 >=0.2.1-rc.1 <0.3.0-0;插件依赖 DSH 内部接口,换用其他 DSH 版本前应先对照 README 确认兼容性。
装完后无需单独配置文件,行为全部由工具调用时的参数控制。
核心功能¶
glob:并行扫描、最新在前、可跟链接¶
- 排序:结果按修改时间降序,与工具描述一致;避免「只取前 100 条却按升序排」导致总是最旧文件的问题。
- 性能:去掉会让 ripgrep 退化成单线程的排序方式后,扫描可正常并行;全量命中后再在插件侧排序。
- 符号链接:新增
follow参数;默认行为为跟随符号链接及 Windows junction(与下文grep的follow一致,见 README)。
grep:在原有行为上叠加可选参数¶
不传新参数时,行为与未装插件时相同。新增字段如下:
| 参数 | 类型 | 说明 |
|---|---|---|
follow |
boolean | 跟随符号链接,默认 true |
ignoreCase |
boolean | 忽略大小写 |
after |
number | 每个匹配行之后附带几行 |
before |
number | 每个匹配行之前附带几行 |
context |
number | 匹配行前后各附带几行 |
type |
string | 只搜索某一文件类型,例如 ts、py |
after / before / context 在 README 中未写硬性上限;ripgrep 会按文件长度自然截断。若上下文导致单次输出超过工具上限,会明确报错。
安装与启用¶
桌面端示例(Web 端将 desktop 换成你的 profile 名,一般为 web):
dsh plugin --profile desktop add github:RicardoYan/dsh-fs-search-plus#v0.1.0
安装完成后重启 DSH。卸载:
dsh plugin --profile desktop remove dsh-fs-search-plus
插件以当前 DSH 进程的权限访问文件系统;安装前建议自行查看 GitHub 仓库 源码与 MIT 许可证。社区目录 SkillHub 插件页 为独立收录站点,与 DeepSeek / 幻方无官方从属关系。
典型用法¶
README 未给出独立 YAML 示例,能力体现在对内置工具的参数扩展上。智能体或你在对话中调用 grep 时,可按需组合字段,例如:
- 在 TypeScript 源码里不区分大小写搜索,并带出前后各 2 行上下文:设置
type: "ts"、ignoreCase: true、context: 2。 - 在 monorepo 里用
glob找最近改过的文件:依赖插件修正后的「修改时间降序 + 并行扫描」;需要排除通过链接展开的依赖目录时,对glob或grep传follow: false。
具体字段名与类型以 DSH 工具 schema 为准;上表与 README 一致。
适用场景与注意¶
适合谁:经常在 DSH 里做代码库检索、又需要跟链接、上下文行或文件类型过滤的场景;希望 glob 默认拿到「最新」而非「最旧」前 100 条时也可安装。
上下文行的展示:开启 after / before / context 后,附带行也会以 Line N: <文本> 形式出现,并计入 “Found N matches”。这是刻意设计——否则工具层可能丢弃这些行,只加 ripgrep 参数却看不到内容。
follow 会扩大搜索范围:例如 pnpm 仓库里 node_modules 中不少包是符号链接,跟随链接会让 glob **/* 类全量查询结果暴涨,可能触发单次输出上限报错。可收窄 pattern,或设 follow: false。
断链:跟随链接时,任一处断链曾导致底层工具整次失败;插件仅在这种情况尝试救回已有结果。搜索目录不存在、正则错误等仍会照常报错。
结尾¶
dsh-fs-search-plus 在不动工具名与输出形态的前提下,补上了符号链接、grep 常用开关,并修正了 glob 的排序与并行行为。需要查阅简介或跳转仓库时,可看 SkillHub 目录页 与 GitHub:RicardoYan/dsh-fs-search-plus。