dsh-file-reference-everything:DeepSeek Harness 全盘文件引用

在 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。

典型用法

查询语法位于 @ 之后(路径含空格请使用 @")。

  1. 模糊搜索:在合并的工作区与全盘索引中搜索。
    • 示例:@config
  2. 正则匹配:使用正则表达式。
    • 示例:@re:pattern 或 @regex:pattern
  3. 绝对路径浏览:指定绝对路径。
    • 示例:@D:/...、@//server/share/...、@~/...
  4. 相对路径浏览:基于代理当前工作目录。
    • 示例:@src/comp

注意:插件仅提供文本路径引用。当模型需要读取文件内容时,必须调用 read 工具。插件会向模型提供一段系统提示,告知其使用 read 工具,并在未读取前不得声称已查看文件。

注意事项与限制

  • 仅文本引用:选中的路径是文本引用,读取操作仍需 read 工具支持,且受部署环境的文件系统权限限制。
  • 后备索引限制:全盘后备索引是有限的(受 globalMaxEntries 限制)且是惰性的(仅在查询间隔超过 refreshSeconds 时重建)。它不支持 .gitignore 语义,仅跳过 excludedDirectories 中列出的目录。
  • es.exe 冲突:如果查询以 - 开头,可能会被 es.exe 解析为命令行选项而非搜索词。
  • 重复条目:同一个文件可能同时出现在工作区相对路径和全盘绝对路径结果中。
  • 固定评分:对于插件无法匹配的通配符等特定语法,评分是固定的,可能不如精确匹配的排名准确。

适用场景

适合需要在 DSH 智能体中快速定位系统配置文件、第三方库代码或任意磁盘文件的场景。在使用前,请确保对插件源码进行审查,并检查其许可证(MIT)是否符合你的项目要求。

总结

dsh-file-reference-everything 通过替换 DSH 默认的文件引用提供者,将文件搜索范围扩展到了整个机器。它利用 Everything 提供极致性能,同时提供跨平台的回退机制,并确保工作区文件始终优先级最高。

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

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

小夜