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 上开源。尽管仍处于早期阶段,但它已展现出在提升代理代码导航准确性和效率方面的巨大潜力。