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 上開源。儘管仍處於早期階段,但它已展現出在提升代理程式碼導航準確性和效率方面的巨大潛力。