Vibe coding正火得一塌糊涂,但谁能想到,刚刚一位大佬已经把当红的AI编程神器Cursor和Windsurf背后的核心算法机制研究出来了!
今天凌晨,一位名为Nir Diamant的技术大牛发表了一篇高质量神文,可以说把Cursor和Windsurf的核心算法说得非常透彻,就像玩抖音的需要了解抖音推荐算法一样,正在Vibe Coding的我们,当然也得快速吃透跟自己对话的编程助手,究竟是怎样一个思维回路。非常细节,值得各位收藏细读一番。
市面上,有很多的AI编程工具,各种Copilot汗如充栋,但真正能博开发者一笑的也就Cursor和Windsurf,它们的魅力不仅仅在于帮助coding,更在于它们就像一个合作者一样真正理解你在构建什么。
这两款工具背后,究竟是怎样运作的?到底是怎样的算法和系统?话不多说,这就上干货。
要想真正发挥作用,AI 编程助手需要理解整个代码库和意图。Cursor 和 Windsurf 都使用了先进的上下文检索系统,让 AI “看懂”你的代码。
先来看Cursor的方法。
备注:这个两阶段的检索方式,大大优于传统的关键词或正则搜索,尤其适用于那些涉及代码行为的复杂问题。
下面是Windsurf 的方法,比较类似。
作者总结道,两款助手的“思考方式”是由精心设计的提示(prompts)和上下文管理策略所引导的。
先来看Cursor 的提示结构。
这方面,Windsurf的机制则有些不同。Windsurf的 Cascade Agent则更加综合——
此外,Cursor和Windsurf有一个共同点,即两者都具备高效上下文窗口管理机制(即一次能处理的文本量),它们会压缩信息,并优先保留与你当前任务最相关的部分。
Cursor 和 Windsurf 都采用了一种被称为 ReAct(Reason + Act,推理加执行)的模式,将语言模型转变为多步智能代理。
先来看Cursor的步骤。
Cursor 的代理以循环方式运行:AI 决定使用哪种工具→解释其意图→调用工具→查看结果→再决定下一步行动。它可以使用的工具包括:代码搜索、读取文件、编辑代码、执行 shell 命令,甚至在线搜索文档。
这里要注意的是, Cursor 进行了一个关键的优化——“特种diff语法”:它不会让 AI 重写整个文件,而是建议具体的“语义补丁”,再通过一个独立且快速的模型将补丁合并。这种方式更高效,也更少出错。
同时,Cursor 会在沙盒环境中运行实验代码,确保不会对真实项目造成破坏。
比如你让它“修复认证 Bug”,它可能会先搜索相关代码文件,然后阅读这些文件、进行修改、再运行测试来验证修复是否成功。每一步都会明确告知你发生了什么。值得注意的是,它会限制自我修复的循环次数(例如“不超过3次”),以防陷入死循环。
Cursor 还采用了“专家混合”机制:使用强大的大模型(如 GPT-4 或 Claude)来做决策推理,使用小模型来执行具体任务,就像一个高级架构师制定方案,而由专业施工队来执行。
再来看WindSurf。Windsurf 的 Cascade 也有类似机制,但更强调它的“AI 流程(AI Flows)”设计。
生成计划 → 改代码 → 请求用户确认 → 运行代码 → 分析结果 → 提出修复。
当你发出请求时,Cascade 会生成一个执行计划、进行代码修改、征求你的确认,然后才会运行代码。如果你同意,它还可以在集成的 AI 终端中运行代码、分析结果并提出修复建议。
而且,WindSurf 的代理系统非常强大,最多可以在一个流程中串联多达 20 个工具调用,无需你手动介入。这些工具包括自然语言代码搜索、终端命令、文件编辑,以及连接外部服务的 MCP 协议。这种能力使 Cascade 能一次性完成诸如安装依赖、配置项目和实现新功能等复杂任务。
更令人印象深刻的是,如果你在 AI 执行过程中手动修改了代码,Cascade 会立即感知并自动调整所有相关部分,真正实现你与 AI 的实时协作。
不出意料的是,这两款神器都使用了多个 AI 模型来执行不同任务,在响应速度与输出质量之间取得平衡。但两者的具体策略大有不同。
Cursor 的模型系统如下:
Windsurf 的模型策略则更为清晰:
实时同步是流畅编程体验的关键,实时适应用户操作至关重要。这两套系统都具备精巧的同步机制。
Cursor 的机制如下,主打一个token级别的流式响应:
而Windsurf 的核心理念,则是保持“工作流畅感”。
ps:这种设计让 AI 就像一个全神贯注的编程伙伴,时刻关注你的代码并主动配合。
最后,需要说明的是,这是作者Diamant花费很长时间研究了大量公开资料总结出来对于 Cursor 和 Windsurf 这两款 AI 神器的“核心机制”的理解,当然机制中的不少细节也会随着后续迭代而发生变化。
文章发布后,许多网友为Diamant的心血之作点赞。并有不少网友表示对“大模型”的愚蠢表示理解与宽容。
比如,一位网友对于Cursor的代码理解能力恍然大悟:原来这些AI助手并不会一次性将整个代码库保存在内存中,而是创建代码的“智能地图”(RAG),只有在需要使用时才会使用相关的向量索引。
另一位网友,则对这种做法表示不满,这恰恰解释了这些编码工具的理解能力为什么如此糟糕!
“RAG 非常适合不自然语言,但不适合代码。”他还举了自己遇到的一个问题:向量搜索又怎么知道 util.py 应该是上下文的一部分呢?
这位网友认为:只有端到端测试和顶层 UI 屏幕/页面/组件(因为包含自然语言)才应该进行 RAG 搜索,其余部分则应该使用调用图来确定。
而对于错误修复和增量新功能,更好地方法是运行具有代码覆盖率的现有 E2E 测试,以准确识别并使用代码。
所以说,了解了工具背后的核心逻辑,一下子就为开发者打开了上帝视角,可以为这位硅基生命的编程伙计提供更好地进化建议。
这对于日渐兴隆的 Vibe Coding 来说意义重大。虽然目前看大家对于LLM编程工具的态度来说相对宽容一些,但对于这条赛道上的众多玩家而言,披露背后的算法机制,往往有助于用户提出更好的修改建议。
昨天小编就了解到一位技术交流群中的朋友反馈:
Cursor生成一个项目代码很快,一两分钟就行了,但是运行起来的bug很多,最多还是语义错误的,而且修bug的时间需要很久,经常半个钟头以上。
你看,这同样也是Cursor对于代码理解存在较大的问题。而这个问题或许不是大模型短期可以解决的。一位网友点出了病根:
所以,Cursor如果想要解决这个“理解糟糕”问题,可能还真的虚心听一下用户的建议:代码上下文用 RAG 不太管用!换调用图或许更有效!
大家有遇到过类似使用AI编程工具的问题吗?欢迎讨论。
文章来自于“51CTO技术栈”,作者“云昭”。
【开源免费】n8n是一个可以自定义工作流的AI项目,它提供了200个工作节点来帮助用户实现工作流的编排。
项目地址:https://github.com/n8n-io/n8n
在线使用:https://n8n.io/(付费)
【开源免费】DB-GPT是一个AI原生数据应用开发框架,它提供开发多模型管理(SMMF)、Text2SQL效果优化、RAG框架以及优化、Multi-Agents框架协作、AWEL(智能体工作流编排)等多种技术能力,让围绕数据库构建大模型应用更简单、更方便。
项目地址:https://github.com/eosphoros-ai/DB-GPT?tab=readme-ov-file
【开源免费】VectorVein是一个不需要任何编程基础,任何人都能用的AI工作流编辑工具。你可以将复杂的工作分解成多个步骤,并通过VectorVein固定并让AI依次完成。VectorVein是字节coze的平替产品。
项目地址:https://github.com/AndersonBY/vector-vein?tab=readme-ov-file
在线使用:https://vectorvein.ai/(付费)
【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。
项目地址:https://github.com/Significant-Gravitas/AutoGPT
【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。
项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md
【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。
项目地址:https://github.com/microsoft/graphrag
【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。
项目地址:https://github.com/langgenius/dify
【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。
项目地址:https://github.com/infiniflow/ragflow/tree/main
【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目
项目地址:https://github.com/phidatahq/phidata
【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。
项目地址:https://github.com/TaskingAI/TaskingAI
【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。
项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md
在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0