Launch HN:Greptile(YC W24)- 真的能用的代码库 RAG
一款名为 Greptile 的新工具把检索增强生成(RAG)应用到整个代码库上,让开发者可以用自然语言询问项目问题,并获得具备上下文的回答,从特定类型如何序列化到各组件如何交互。评论者对它在代码理解、IDE 集成以及大型或多语言仓库上的潜力很感兴趣,但也对规模化可靠性、GitHub 权限、嵌入向量隐私、缺少 issue/PR 等元数据,以及发布期间出现的故障和错误所暴露出的产品成熟度表示担忧。许多人将其与 Cursor、Cody 和 Bloop 等现有工具进行比较,并提出自托管、更好的本地工作流,以及支持更多公共仓库和文档来源等需求。
产品与核心方法
- 该工具提供“代码库上的 RAG”:使用 AST(通过 tree-sitter)、向量嵌入和 LLM 来回答关于整个仓库的问题。
- 重点在于代码理解以及替代/增强内部文档,而不是主要用于代码生成(尽管用户确实会用它做代码生成)。
- 目前只索引代码;计划加入提交信息、PR、issue、评论,以及更好地利用文档注释。
用户体验与使用场景
- 有正面反馈:能够回答细致的框架问题(例如 Rails 的 BigDecimal JSON 编码),与用户手工学到的结果一致。
- 有人将其视为为复杂项目扩展 LLM 上下文窗口;也有人希望把它用在大型 Rails 和多语言仓库上。
- 用户希望如果能提供 API 源码,它能帮助调试 API 错误。
集成与平台
- 提供 VS Code 扩展;JetBrains 插件已列入路线图。
- 公共演示:大约 100 个开源仓库可无需登录查询。
- 私有仓库需要 GitHub 应用;关于权限以及“代表你操作”这类表述存在一些困惑。
可靠性、性能与 UX 问题
- 很多反馈提到错误(“处理/定位来源时发生内部错误”)、处理失败或卡住(常在 99%),以及 AWS/数据库故障,尤其是在 HN 流量期间。
- 也指出了热门仓库链接、投票界面、分支/仓库选择,以及残留品牌(“Onboard”)方面的 bug。
- 进度指示器和仓库选择 UI 被认为具有误导性或不够顺手。
隐私、安全与自托管
- 声称处理后不存储代码;目前存储的是生成文档字符串的嵌入向量,同时也有讨论指出嵌入向量可能泄露信息。
- 一些用户更希望明确存储代码以提升速度,和/或提供完全本地或自托管版本。
- 团队认为自托管和本地部署是未来方向,但 LLM 在短期内大概率不会自托管。
定价、限制与采用阻力
- 免费层有仓库大小限制;拥有大型测试数据集的用户很难评估。
- 建议包括:类似
.greptileignore的排除机制、数据版本控制工具,以及更灵活的试用方式(例如允许一个大型仓库)。 - 有人担心会自动使用 GitHub 上的邮箱;希望提供明确的可选加入机制以及单独选择邮箱。
定位与对比
- 被拿来与 Bloop、Adrenaline、Cursor 和 Cody 比较;其定位是完整代码库理解,而不是 IDE 替代品。
- 多人指出“RAG”术语没有解释或令人困惑,应该更好地传达。