在500+小时的AI编程经验,加上一晚上的测试验证后,我把Cursor、Windsurf索引代码的逻辑搞清楚了!
对新手来说,内容理解可能有难度,可以看看结论就好了,对于老手来说,我相信这篇内容对于你理解平时用AI编程工具时遇到的问题会有一些启发,你大概会能理解此前你为什么会遇到哪些问题。
为了更好的阅读体验,我特意发了个公众号文章:
mp.weixin.qq.com太长不看的话,你也可以看看下面最重要的结论:
1、对新手而言,初始执行基础任务时:Windsurf > Cursor Agent > Cursor Composer normal
在agent模式下,执行初级任务的表现都优于常规的Cursor Composer模式,因为agent模式会基于任务理解代码库,找代码文件,读代码,再一步步执行操作帮你完成任务
Windsurf的agent,在理解任务和执行多步操作的能力上,调优效果优于Cursor Composer模式下的agent
2、Agent模式的主要缺陷是不完整读代码文件,这会导致复杂项目和长代码文件的问题
Cursor agent模式下,默认读一个代码文件的前250行,如果不够,偶尔会主动续读,增加250行;在部分要求明确的情况,Cursor会执行搜索,每次搜索结果最多为100行代码。
Windsurf每次读代码文件200行,如果发现不够,会尝试再次读取,最多尝试3次,共读取600行。
3、Cursor与Windsurf @ 单个代码文件时,执行逻辑不同,Cursor远优于Windsurf
Cursor中如果@ 某个代码文件,cursor会尽量完整读取(测试临界点2000行)
windsurf的 @代码文件和cursor的 @代码文件不是一个逻辑。在windsurf中你@某个代码文件仅仅是说你帮助windsurf找到了对应的文件。但是他并不会真的认为这个文件很重要而进行完整读取。
4、在你能理解项目结构的情况下,Cursor中 @单一代码文件效果远优于 @codebase
如前面所说,如果你理解你自己在做什么,你要执行的任何和哪个代码文件有关,那么Cursor中 @ 你将获得好得多的效果。如果 @codebase,目前的判断是cursor会用自己的小模型执行对每个代码文件的理解并总结,他没有完整将必要的代码都纳入上下文。