之前发现 AI 在探索代码库的时候总是用大量的 grep ,rg 然后再读每个文件, 一趟 explore 下来花了好多上下文还没开始干活,
后来搜到 serena 之类的,说是能先用 LSP 索引代码库,这样找和处理代码中的符号就快很多了
但是装上简单试了一下发现还没感受到明显区别,在大的代码库上会有明显收益吗?有没有用过的?或者其它什么类似插件推荐?
之前发现 AI 在探索代码库的时候总是用大量的 grep ,rg 然后再读每个文件, 一趟 explore 下来花了好多上下文还没开始干活,
后来搜到 serena 之类的,说是能先用 LSP 索引代码库,这样找和处理代码中的符号就快很多了
但是装上简单试了一下发现还没感受到明显区别,在大的代码库上会有明显收益吗?有没有用过的?或者其它什么类似插件推荐?
1
guyeu 14h 38m ago
不能省 token ,但是可以加快某些操作的效率(不过也得调教 AI 让它用你这个工具,考虑到这一点说不定花更多 token ),比如查调用链、重命名符号,这些任务上肯定能省一些 token 。整体看我觉得见仁见智吧。
|
2
kkocdko 14h 37m ago
答:不一定。LSP 并不一定适合 LLM ,LLM 的交互方式需要来回对话,LSP 一次只给出一点信息,大幅度增加对话轮次。之前 claude code 一直说要增加官方 LSP ,因为效果不佳,拖了一年多,今年才到可用状态,到现在也都没有默认启用。codex 也没有自带。
现在看来最好的做法,是让 LLM 直接读取精简的函数签名等信息,或者每个函数一句话文档。 对此,typescript 支持比较好,直接 .d.ts 简直完美。C 头文件也还行。 其他语言的话,rust 之类的,也有人在开发类似工具,cargo doc 那也有人在说要添加 LLM 友好的输出格式等。 总之都还没有定论。当然我猜测稍后就会有人来吵架,有的说好,有的说不好。这真的看个人选择了。opencode 默认会检测。但是有的人也觉得这玩意又慢又污染上下文。 |