DeepSeek Harness 插件:dsh-tgrep

前言

DeepSeek Harness(DSH)的核心理念之一是“一切皆插件”。在代码搜索场景中,默认的 grep 工具在每次调用时都会重新扫描整个工作区,导致在中等规模或大型代码库中,随着文件树体积增大,查询延迟也会随之上升。为了解决这一问题,dsh-tgrep 插件登场。它通过 Microsoft 的 tgrep 引擎,在保持原有工具契约不变的前提下,提供三元组索引支持,显著提升搜索性能。

插件简介

dsh-tgrep 是一个由 huuthuan-nguyen 维护的插件,旨在为 DeepSeek Harness 提供基于 Microsoft tgrep 的超快三元组索引代码搜索能力。它通过 Agent-plane shadowing 技术替换内置的 grep 工具,确保模型感知不变,但底层执行引擎得到升级。

核心功能

该插件具备以下特性:
1. 三元组索引:利用 tgrep 的索引机制,避免重复扫描文件,大幅提升查询速度。
2. 内置 grep 的阴影功能:在 Agent-plane 上注册,替换内置的 grep 工具,无需修改模型或系统预设。
3. 自动守护进程:首次使用时自动启动 tgrep serve,保持索引热状态,支持跨会话复用。
4. 优雅降级:在没有索引或守护进程的情况下,tgrep 会退化为类似 grep 的全文件扫描模式,保证基础功能可用。
5. 契约一致性:保持原生 Web GUI 搜索卡片、PTC 模式以及 pattern / path / include 等参数契约不变。
6. 零运行时依赖:使用纯现代 ESM JavaScript 编写,无构建步骤。

环境与依赖

在使用该插件前,请确保环境满足以下要求:
* Node.js 版本不低于 22.19.0。
* 系统 PATH 中存在 tgrep 二进制文件。

使用示例

插件提供了命令行接口用于检查状态和查看统计信息:
* 检查服务器是否正在为当前目录服务:

    tgrep status .
  • 查询特定模式并获取查询计划和耗时:
    tgrep <pattern> . --stats
  • 配置文件示例(用于控制文件大小限制):
    config:
      maxFileSize: '64M'

适用场景与注意事项

  • 索引收益:只有在构建了索引的情况下,插件才能发挥其性能优势。如果没有索引,搜索速度与原生 grep 相当。
  • 文件大小限制:默认情况下,插件会跳过超过 64 MiB 的文件(这是 tgrep 的默认行为)。如果需要搜索大文件,需通过配置或参数调整,否则可能会漏掉匹配项。
  • 查询类型:对于小仓库或宽泛的查询,索引带来的性能提升可能不明显。
  • 大标志回退:某些宽泛的命令行标志(如 -E, --encoding 等)会绕过索引,导致回退到全文件扫描。

总结

dsh-tgrep 通过引入 Microsoft tgrep,解决了 DeepSeek Harness 中大仓库代码搜索慢的问题。它在不改变模型交互接口的前提下,通过索引和守护进程机制显著提升了搜索效率。如需查看完整文档或源码,请访问插件目录或 GitHub 仓库。

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

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

小夜