前言¶
智能體在大型倉庫中會反覆執行代碼搜索。如果每次 grep 都重新讀取磁盤文件,頻繁調用時延遲會持續累積。已有不少方案通過獨立索引進程解決檢索速度問題,但會引入 sidecar 進程或 daemon,增加啓動、同步和調試成本。
snapgrep 的做法是把 trigram 索引放在進程內,用於 Pi 與 DeepSeek Harness(下稱 DSH)的代碼搜索。它在 DSH 中提供 grep 和 glob 兩個工具,並且強調搜索結果與 ripgrep 逐字節一致。
這是什麼¶
snapgrep 由 Owen718 維護,許可證爲 MIT。
它的核心定位是:
- 進程內 trigram 索引,用於 Pi 與 DeepSeek Harness 代碼搜索。
- 無 sidecar 進程、無 daemon。
- 搜索結果與 ripgrep 逐字節校驗,結果一致。
- 在 DSH 中同時替換
grep與glob。 glob使用與內置相同的 ripgrep 調用。- 不支持的查詢可 fail closed,而不是近似。
- 已覈實資料給出的 Node 引擎要求爲
>=22.19.0。
核心功能¶
在 DSH 中替換 grep 和 glob¶
在 DSH 中,snapgrep 提供 grep 和 glob 兩個工具。
資料說明,DSH 中會替換 grep 和 glob;註冊表拒絕重複工具名,因此內置搜索行被禁用,由該插件同時提供這兩個工具。glob 使用與內置相同的 ripgrep 調用。
結果一致性¶
已覈實事實中說明,搜索結果與 ripgrep 逐字節校驗,結果一致。對於不支持的查詢,snapgrep 可以 fail closed,而不是返回近似結果。
部署形態¶
snapgrep 不引入 sidecar 進程,也不啓動 daemon。資料中還說明它不編譯,只下載當前機器可運行的 addon,約 1.2 MB,共兩個包。
平臺支持¶
已覈實資料中列出的預構建版本包括:
- macOS:Apple Silicon、Intel
- Linux:x64、arm64,glibc
- Windows:x64
Alpine/musl 尚未構建。在不支持的平臺中,插件會指出未找到的具體文件,而不是靜默失敗。
性能表述¶
snapgrep 的目標是提升代碼搜索速度,具體倍數會隨查詢、倉庫大小和匹配文件數變化。不同資料中的範圍表述也不完全一致,使用時不宜把某個固定倍數當作承諾。
安裝與啓用¶
先確認運行環境滿足已覈實資料中的 Node 引擎要求:
>=22.19.0
已覈實資料中給出的 DSH headless 安裝命令爲:
dsh plugin --profile headless add snapgrep
安裝完成後,可以用下面這條命令檢查配置中是否出現 snapgrep:
dsh --profile headless --dump-config | grep snapgrep
這條命令用於確認當前 headless profile 的 dump 配置中包含 snapgrep 相關信息。
典型用法¶
在 DSH 中啓用後,智能體可以使用插件提供的 grep 和 glob 兩個工具。
在 Pi 中,可以驗證搜索後端:讓 Pi 搜索一個已知存在的字符串,工具詳情中會顯示:
actualBackend: kernel
適用場景與注意¶
適合在 DSH 或 Pi 工作流中頻繁執行代碼搜索的場景,尤其是希望減少進程間調用、避免額外 daemon 的本地插件安裝。
需要注意:
- 插件以當前 dsh 進程權限運行。
- 安裝前應檢查源碼與許可證;已覈實事實中給出的許可證爲 MIT。
- 不支持的平臺會明確提示缺失文件,不會靜默失敗。
- 已覈實資料中的安裝命令只覆蓋 headless profile;不要據此推斷其他 profile 的安裝方式。
- 性能結果依賴具體查詢、倉庫規模和匹配文件數。
相關鏈接¶
- 社區目錄(獨立站點):https://www.skillhub.cn/plugins/Owen718/snapgrep
- GitHub:https://github.com/Owen718/snapgrep