在这个专栏,我会用最简单的语言介绍我狂热喜爱的AI产品。也算是一个产品经理的自我提高和反馈的专栏。

Cursor

我本身是Cursor的忠实用户,我在很早期就使用Cursor,当时的整体体验比较一般,也是接入了claude-3.5-sonnet,才会让代码生成质量产生质变。

有人会觉得不如把代码转发到Chatgpt里,OPENAI本身也支持多个文档,在当时看效果相似。但我觉得产品设计是多维度的,Cursor的体验更像是和AI一起编程,而不是一个代码转发的工具。

把代码转发再放到Vscode里是一种背离产品的过程,你无法控制幻觉和代码质量。

专业的事交给专业的人。专业的事也要交给专业的产品来做,尤其是代码编辑这样一个非常专业化的领域。想用一个泛化的界面解决所有问题,是不可能的。

产品简介

Cursor 是一款近年来迅速崛起的 AI 驱动代码编辑器,被誉为增长最快的开发者工具之一。

与传统的插件式 AI 编程助手不同,Cursor 由 Anysphere 公司打造为“AI 原生 (AI-native)”的完整 IDE 环境,以深度融合人工智能来提升编程效率。

其创始团队(MIT 工程师背景)受到 GitHub Copilot 的启发,但认识到仅做编辑器插件存在局限,于是决定基于 Visual Studio Code (VS Code) 构建一个从底层就集成 AI 的开发工具。

这种产品哲学强调让 AI 成为编码过程的核心伙伴,而非事后的附加组件。

架构设计:基于 VS Code 的 AI 原生集成

VS Code 衍生与深度定制: Cursor 的架构基础是直接fork(派生)自 VS Code 的代码库。
这种选择让团队无需从零重造编辑器,即可利用 VS Code 成熟稳定的界面和功能,同时自由修改底层以实现比插件更深入的 AI 集成。

结果是开发者在使用 Cursor 时保留了 VS Code 的熟悉体验和丰富扩展生态,但背后运行的是经过改造、针对 AI 优化的编辑器内核。

例如,Cursor 与VS Code 扩展生态完全兼容,用户可以一键导入自己惯用的插件、主题和快捷键配置,实现无缝迁移。这种架构决策降低了用户的迁移成本,同时为 AI 功能的深层嵌入奠定了基础。

“影子工作区”技术:

为了让 AI 更主动地参与编码过程,Cursor 引入了革命性的Shadow Workspace(影子工作区)架构。

影子工作区本质上是一个隐藏的编辑器环境,允许 AI 代理在不中断开发者正常工作的情况下,在幕后试验代码改动。

具体来说,Cursor 会在后台创建一个看不见的隐藏窗口(影子副本),AI 可以在其中自由编辑项目文件但不保存修改,从而获取即时的反馈。

AI 能借此调用真实的编译器、lint 工具和语言服务器,对代码进行语法检查、获取类型定义、执行单元测试等验证,再将调整后的解决方案推荐给开发者。

例如,当 AI 为用户生成一段代码时,可以先在影子工作区运行,捕获并修复可能的错误或警告,然后再把更正确的代码建议提供给用户参考。

这种架构创新使 AI 可以“预演”代码执行效果,确保建议更准确可靠。影子工作区还被用于预测开发者的后续操作:团队希望 AI 不仅预测你接下来几行代码怎么写,还能前瞻你未来几分钟可能进行的系列操作。

通过后台耗时计算,Cursor 可以实现更长远的意图推断。例如 AI 模型可以在影子环境里尝试重构多处相关代码,并观察整体效果,再一次性提出多文件的修改建议。这种架构在传统 IDE 中前所未有,为开发者提供了前所未有的智能辅助。

images/1747491779750.jpg

性能与扩展性考虑:

虽然 Cursor 基于 Electron/VS Code 架构,但团队通过本地-云结合的方式实现高性能和可扩展性。

他们在服务器端构建了代码语义索引与检索系统,将用户项目的代码拆分后生成向量嵌入存储,以支持快速的语义搜索和上下文检索。

值得注意的是,Cursor 服务端只存储代码的向量表示而不保存原始代码内容,所有云端存储的数据也都经过加密处理,为减轻网络和数据库负担,Cursor 利用哈希和 Merkle 树来同步本地代码与云端索引,只传输必要的差异部分,显著降低了每次索引更新的开销

这套架构在高速增长的用户量下依然保持高效:据报道 Cursor 平台每日处理数十亿字符的代码,但依靠精简的架构和小团队实现了出色的性能与伸缩性

AI 能力的整合方式:模型选型与部署

多模型支持,避开供应商锁定: Cursor 的 AI 功能采用多种大型语言模型(LLM) 协同驱动,而非局限于单一模型。这包括 OpenAI 的 GPT 系列、Anthropic 的 Claude,以及其他前沿模型(如 Google 的 Gemini 等)

多模型策略允许 Cursor 针对不同任务选择最佳模型:例如,小型快速模型用于即时代码补全,大型高性能模型用于复杂代码生成和问答。这种灵活性避免了对某一家模型供应商的过度依赖,当更强的新模型出现时可迅速集成。

团队在 2024 年底就表达了集成 OpenAI 新一代模型(代号“O1”)的计划

很快在 Pro 版中提供了 GPT-4、Claude 2 等更强模型供高级用户使用

值得一提的是,Cursor 还支持用户自带模型 API 密钥(BYOM模式),高级用户或企业可以使用自己与OpenAI/Anthropic签订的API服务,这在同行产品中并不常见

其他特点

在模型部署方面,Cursor 采取云端推理为主、本地客户端为辅的架构。

Cursor 会根据用户操作实时调用不同的模型API。例如,在用户码字时,后台通过 WebSocket 等方式将当前文件和上下文片段发送到 AI 补全服务,获取代码续写建议;在用户打开 AI 聊天询问问题时,Cursor 会构建包含相关代码片段的提示(prompt)并调用高性能对话模型返回回答

内置 RAG

值得一提的是,Cursor 内置上下文检索模型来自动选取最相关的代码片段提供给语言模型,最大化回答的准确性。这种“检索增强生成”(RAG)的方式弥补了纯语言模型对超大项目理解不足的弱点。在企业部署场景,Cursor 通过 SOC 2 等认证并提供可选的私有云部署方案(比如在企业自有的云环境中部署后端服务),以满足高级客户对数据隔离的需求

总体而言,Cursor 将前沿通用模型与专用辅助模型相结合,透过灵活的架构将AI能力无缝注入开发者的IDE中。

编辑器功能的差异与创新:AI 究竟改变了什么

Cursor 相较传统 IDE 和代码编辑器,增添了大量 AI 驱动的全新功能,使开发体验发生质的飞跃。以下是 Cursor 相对于传统工具的一些主要差异和创新:

智能代码补全与多光标预测:

Cursor 的自动补全(Tab 键)功能远超传统 IDE 的单行提示,能够根据上下文预测多行代码甚至完整片段。启用后,Cursor 实时分析当前文件内容和最近编辑历史,连续按下Tab键即可快速应用一系列建议,相当于一名“心有灵犀”的搭档在帮你码字.

例如,当你声明了一个函数签名,Cursor 可以直接补全整个函数体的实现。当你在一个类中增加新方法调用,它还能跨文件地插入相关的导入和依赖。此外,Cursor 引入了**“光标预测”能力:AI 会预判你接下来可能要跳转的代码位置,提前为你定位好编辑点.

据用户反馈,Cursor 大约有25%的时间能神奇地猜中开发者的意图,“仿佛读心一般”,让人感觉有望“以思维速度编程”。这类多光标、多行补全功能极大减少了繁琐的手动导航和重复输入,让开发者始终保持连贯的编码心流**。

自然语言编辑与上下文对话:

Cursor 将对代码的操作拓展到自然语言指令层面。开发者可以通过 Ctrl+K)调出“Inline Edit”对话框,对选中代码或当前文件发送指令

这种即时生成与编辑能力让许多编码任务从手工操作变为对话式完成。与此同时,Cursor 内置了聊天(Chat)窗口**,作为一个集成式的AI对话助手。

不同于单纯的ChatGPT网页,这个聊天窗能够**“看见”用户代码上下文**,包括当前打开文件、光标位置,甚至整个项目的索引。开发者可以直接询问:“这里有bug吗?”、“这个函数的作用是什么?” 等,AI 会结合代码给出解释或建议。由于 Chat 模型可获取项目实况,它在回答时可以引用相关代码片段,提供精准的解答,并能在答案中附上可一键应用的代码修改。这相当于让开发者随时和一位全天候的智能同事对话:当你对代码有疑问,Cursor 的 AI 助手可以立即从代码库中调取答案;当你希望实现一个功能,只需描述意图,AI 就会直接编写相应代码并等待你确认应用。传统编辑器需要借助搜索引擎或阅读文档才能获取这些信息,而 Cursor 将知识库嵌入 IDE,极大缩短了信息获取路径。

代码库搜索与上下文感知:

Cursor 能够理解整个项目,提供比传统全文检索更智能的代码查询功能。这通过其代码语义索引实现:Cursor 预先将代码库中的符号、注释和文档嵌入到向量索引中,使 AI 可基于语义而非字符串匹配来检索信息

这就延伸出一个应用场景:当你不知道应搜索什么关键词时,只需向 Cursor 聊天发送自然语言问题,模型通常能返回准确的定位
这种语义级别的代码搜索能力远超传统 IDE 的文本搜索,帮助开发者迅速理解陌生代码库或定位需要修改的区域。

另外,这也是新更新的功能,Cursor 支持使用 @ 引用丰富的上下文:如@Files引入指定文件内容、@Git引用Git提交或diff、@Docs引用框架文档、@Web甚至可以搜索互联网资料。开发者也可将网页链接粘贴并在前面加@,AI 将抓取该网页内容纳入提示。这些功能体现了 Cursor 对上下文的高度敏感和可扩展性:无论是项目内部还是外部知识,Cursor 都能灵活纳入 AI 分析范围,让助手对当前任务“心中有数”。

自动化工具链整合:

1、执行终端命令:在 Cursor 中,AI 可以根据需要生成并执行命令行指令(如安装依赖、运行构建),默认需用户确认后执行。这意味着如果你在对话中告诉 AI “运行单元测试”,它能生成相应的命令(如npm run test)并在得到你同意后于内置终端执行。

2、错误循环调试:Cursor 引入了“错误循环 (Error Loop)”机制,当 AI 帮你编写的代码存在编译错误或 lint 问题时,系统会自动捕获这些错误并让 AI 迭代修复。相当于AI实时充当调试助手,发现问题就试着修正,再将更新建议提供给你,大幅减少了人工查错改错的工作量。

3、AI 代码审查:Cursor 内置了AI Code Review功能,可在你提交代码或编写完成某模块时,对差异 (diff) 或最近的更改进行审查。AI 会列出可能的漏洞、性能问题或不符合规范的地方,仿佛一位资深工程师实时 review 你的改动。你可以针对每条审查意见与 AI 讨论细节,甚至定制让 AI 着重检查安全、性能或风格等特定方面。这个功能让个人开发者也能享受类似代码走查的质量保障,而无需等待他人反馈。

4、单元测试生成与指导: 针对测试环节,Cursor 的 AI 能帮助编写和改进单元测试。它会根据代码逻辑建议测试用例、测试数据,提示哪些功能分支尚未覆盖,并协助搭建测试框架。当测试未通过时,你也可以请 AI 分析错误日志,给出修复建议或补充测试的方案。

5、个性化规则与团队规范: 为了确保 AI 建议符合项目规范,Cursor 支持在设置中添加“AI 规则”(Rules for AI),或在项目根目录放置.cursorrules文件。开发者可在其中定义编码风格、命名约定、架构原则等指导,AI 生成代码时会遵循这些定制规则,保证团队一致性。