在 DeepSeek Harness (DSH) 中,默认的 @ 文件引用补全通常局限于当前工作区。若需访问机器上任意文件,或利用 Everything 搜索引擎实现毫秒级响应,需要额外的工具。dsh-file-reference-everything 插件提供了 ctx.fileReferences 的全盘实现方案。
插件简介¶
dsh-file-reference-everything 是 lumose0 维护的一个 DSH 插件。它将智能体的文件引用能力从“当前工作区”升级为“机器上任意文件”。当 Everything 运行时,它通过 es.exe 命令行客户端提供毫秒级的原生搜索;若 Everything 未运行,插件会使用其内置的、跨平台的有限索引作为后备方案。
核心功能¶
- 全盘文件引用实现:完整实现了
ctx.fileReferences接口。 - Everything 即时搜索:通过
es.exe命令行客户端响应查询,速度极快。 - 跨平台后备索引:在 macOS 和 Linux 上,当没有 Everything 时,使用内置的有限磁盘索引。
- 查询支持:支持模糊搜索和正则表达式。
- 工作区优先:工作区结果始终被合并,并排在全盘搜索结果之前。
- 文本引用指引:提供文件路径文本引用,实际读取内容需依赖
read工具。
安装与启用¶
推荐安装到 web 配置文件中,因为 @ 文件补全 UI 仅存在于该配置下。
dsh plugin --profile web add github:lumose0/dsh-file-reference-everything
安装注意事项:
* 该包包含 prepare 脚本,会在安装时从源码构建 lib/。如果你使用 pnpm >= 10,首次添加可能会失败,需要在 pnpm-workspace.yaml 中添加:
allowBuilds:
dsh-file-reference-everything: true
然后重新运行安装命令。这仅允许在安装时执行代码,建议在允许前审查源码。
- 如果安装到非
web配置文件,可能会看到无害的警告patch: entry "file-reference-local" not found。
典型用法¶
查询语法位于 @ 之后(路径含空格请使用 @")。
- 模糊搜索:在合并的工作区与全盘索引中搜索。
- 示例:
@config
- 示例:
- 正则匹配:使用正则表达式。
- 示例:
@re:pattern或@regex:pattern
- 示例:
- 绝对路径浏览:指定绝对路径。
- 示例:
@D:/...、@//server/share/...、@~/...
- 示例:
- 相对路径浏览:基于代理当前工作目录。
- 示例:
@src/comp
- 示例:
注意:插件仅提供文本路径引用。当模型需要读取文件内容时,必须调用 read 工具。插件会向模型提供一段系统提示,告知其使用 read 工具,并在未读取前不得声称已查看文件。
注意事项与限制¶
- 仅文本引用:选中的路径是文本引用,读取操作仍需
read工具支持,且受部署环境的文件系统权限限制。 - 后备索引限制:全盘后备索引是有限的(受
globalMaxEntries限制)且是惰性的(仅在查询间隔超过refreshSeconds时重建)。它不支持.gitignore语义,仅跳过excludedDirectories中列出的目录。 - es.exe 冲突:如果查询以
-开头,可能会被es.exe解析为命令行选项而非搜索词。 - 重复条目:同一个文件可能同时出现在工作区相对路径和全盘绝对路径结果中。
- 固定评分:对于插件无法匹配的通配符等特定语法,评分是固定的,可能不如精确匹配的排名准确。
适用场景¶
适合需要在 DSH 智能体中快速定位系统配置文件、第三方库代码或任意磁盘文件的场景。在使用前,请确保对插件源码进行审查,并检查其许可证(MIT)是否符合你的项目要求。
总结¶
dsh-file-reference-everything 通过替换 DSH 默认的文件引用提供者,将文件搜索范围扩展到了整个机器。它利用 Everything 提供极致性能,同时提供跨平台的回退机制,并确保工作区文件始终优先级最高。