AI News HubLIVE
站內改寫1 分鐘閱讀

Greppy – 面向AI代理的即插即用grep工具,附帶代碼導航子命令

Greppy 是一個無需配置的 grep 替代品,為 AI 編碼代理提供代碼導航子命令(如 who-calls、impact、semantic-search),可將結構性代碼問題的正確率從 53% 提升至 87%,同時減少令牌消耗。採用 Rust 編寫,支持 107 種語言。

來源Hacker News AI作者: metricspaceai

Greppy 是一款面向 AI 編碼代理的即插即用 grep 替代工具,它不僅保留了標準 grep 的所有功能,還額外提供了多個代碼導航子命令,旨在幫助代理更高效地理解代碼結構。該工具由 Rust 編寫,將代碼圖與語義模型內置於單個二進制文件中,無需額外配置或索引。

Greppy 的核心優勢在於其代碼導航命令,例如 who-calls(查詢誰調用了某函數)、impact(評估修改某符號的影響範圍)、semantic-search(通過自然語言描述查找代碼)和 brief(同時顯示定義、調用者和被調用者)。這些命令直接返回符號關係而非文本匹配,大幅減少了代理的交互輪次。基準測試顯示,在 14 個模型上測試 35 個代碼導航問題,使用 Greppy 的代理正確率達到 87%,而使用普通 grep 僅為 53%,同時輸入令牌平均減少約 2.3 倍。

工作原理上,Greppy 在後台維護一個預計算的類型化符號圖(包含調用、使用、類型引用和導入關係),用於直接回答結構性查詢。語義搜索則基於 Google 的 EmbeddingGemma 模型,通過原生 Rust 推理引擎運行,支持 CPU、Apple Metal 和 NVIDIA CUDA,無需外部依賴。所有標準 grep 調用仍會轉發至系統 grep,確保兼容性。

目前,Greppy 的代碼圖命令已被認為是穩定的,支持 107 種語言(包括 Python、JavaScript、Go、Rust 等)。語義搜索仍處於測試階段但已可用。該項目採用 MIT 許可,並在 GitHub 上開源。儘管仍處於早期階段,但它已展現出在提升代理代碼導航準確性和效率方面的巨大潛力。