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 倉庫。

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

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

小夜