跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言Node.jsSaaSAI大前端算法

AI 编程工具 Cursor 核心功能与技术架构解析

综述由AI生成深入解析 AI 编程工具 Cursor,介绍其起源、核心架构及功能特性。Cursor 是由 Anysphere 研发的 AI 驱动智能开发环境,具备语义索引、Merkle 树同步、多代理协作等核心技术。文章详细阐述了其工具调用顺序、Commands、CLI、Hooks 等功能,并对比了与 GitHub Copilot 的差异。此外,还介绍了 Cursor 的新功能如 Debug Mode、自动测试及浏览器编辑器,并分析了其基于 TypeScript 和 Electron 的技术栈及云基础设施。Cursor 强调全局代码库理解与自动化能力,适合复杂项目开发与团队协作。

蓝绿部署发布于 2026/4/6更新于 2026/5/2238 浏览

Cursor 是一款 AI 驱动的智能开发环境(AI-powered IDE),由 Anysphere 公司研发。它定位不是简单的代码补全插件,而是一个真正'理解你的代码库'的开发工具。基于大型语言模型,对整个项目语义进行深度理解,并可以用自然语言进行交互与编程。

一、Cursor 的起源与快速成长

Anysphere 成立于 2022 年,Cursor 首个版本于 2023 年 3 月推出。两年内完成 9 亿美元 C 轮融资,估值高达 99 亿美元,年收入突破 5 亿美元。财富 500 强中超过一半的最大科技公司都在使用它,显示出极高的市场认可度和增长速度。

二、核心内容

1. 语义索引与安全索引部分

Cursor 会在项目打开时对整个代码库进行索引,生成'语义图'。

  • 代码拆分与嵌入:将每个文件拆分成小块,每块生成向量嵌入(embedding),便于向量搜索。
  • 安全处理:文件名和代码被加密和混淆,避免在服务器端泄露敏感信息。
  • 向量数据库存储:嵌入存储在专门的向量数据库中,用于快速匹配查询。
  • Merkle Tree 保持索引同步:客户端和服务器端分别保存 Merkle 树,通过比较哈希值,只重新索引被修改的文件,从而节省计算资源和带宽。
1.1 使用代码块进行语义索引

为了支持向量搜索,Cursor 先将代码拆分成更小的块,创建嵌入,并将这些嵌入存储在服务器上。

  1. 创建代码块:将每个文件的内容切分成小块,每一块将作为后续的嵌入单元。
  2. 生成嵌入而不存储原始文件名或代码:不希望在服务器上存储文件名或源码,会将文件名混淆,并将代码块加密后发送到服务器。服务器解密后,使用 OpenAI 的嵌入模型或自研模型生成嵌入,并存储在向量数据库(Turbopuffer)中。

生成嵌入需要大量计算资源,因此在 Cursor 的后端利用云端 GPU 来完成。对于中型代码库,索引通常在一分钟以内完成,而大型代码库可能需要数分钟甚至更长时间。

文章配图

1.2 使用 Merkle 树保持索引最新

在编辑代码库时,服务器端的索引都会逐渐过时。Cursor 的做法是使用 Merkle 树和高延迟同步引擎(每 3 分钟运行一次)来保持服务器索引的更新。

Merkle 树是一种树结构,每个叶子节点是对应文件的加密哈希值,每个非叶子节点是其子节点哈希的组合。Cursor 对每个文件夹和项目建立类似结构的 Merkle 树(使用混淆后的文件名),客户端和服务器分别维护自己的树。

每 3 分钟,Cursor 会进行一次索引同步。通过对比客户端和服务器的 Merkle 树,Cursor 可以确定哪些文件需要重新索引。例如,如果客户端的 index.html 文件发生变化,通过树遍历可以快速定位需要同步的文件。Merkle 树不仅让树遍历高效,还能确保只同步发生变化的文件,最大限度减少计算和带宽消耗。

这种 Merkle 树结构非常适合实际使用场景:比如一天结束关闭电脑,第二天拉取 Git 更新,或者团队协作时大量文件变化,Cursor 只会重新索引必要的文件,节省时间和计算资源。

文章配图

文章配图

1.3 安全索引

虽然 Cursor 不在服务器上存储源码,但一些敏感信息仍不适合上传,即使加密也可能存在风险,包括 密钥、API Key、密码 等。

  • 使用 .gitignore 和 .cursorignore 可以确保索引安全。敏感信息通常以本地变量或 .env 文件形式存储,这些文件被加入 .gitignore。Cursor 会遵循这些规则,不索引或上传被忽略的文件。
  • 上传代码块前,Cursor 还会扫描可能的敏感信息,避免上传。
1.4 大规模代码库的索引

对于包含数千万行代码的大型单仓库(monorepo),索引整个代码库非常耗时且消耗大量计算资源,而且通常没有必要。此时使用 .cursorignore 文件忽略不需要索引的文件是最合理的做法,官方文档提供了详细指南。

2. 实际工具调用顺序

阶段 1:理解项目结构(建立上下文)

顺序工具用途说明
①list_dir查看目录结构先了解项目布局,入口文件、模块划分
②file_search文件名模糊搜索快速定位可能相关的文件
③glob_file_search模式查找文件批量定位某类文件(如 *.tsx、**/api/**)

阶段 2:定位相关代码(从粗到细)

顺序工具用途说明
④codebase_search语义代码搜索用自然语言理解需求,找到可能相关的实现
⑤grep精确文本 / 正则搜索对关键函数名、变量名做精确定位
⑥read_file读取文件内容查看实现细节,理解上下文

👉 真实情况:

  • codebase_search 用来'猜方向'
  • grep 用来'钉位置'

阶段 3:深入理解与补充上下文

顺序工具用途说明
⑦read_file(局部)精读关键逻辑常用 offset / limit 读取重点代码
⑧glob_file_search发现相关文件如找测试、接口、调用方
⑨grep(扩展)查调用链搜索函数被谁调用、在哪里使用

阶段 4:修改 / 生成代码

顺序工具用途说明
⑩edit_file修改现有文件插入、删除、调整逻辑
⑪write_file创建新文件新模块、新组件、新测试
⑫apply_diff批量应用修改多文件、大范围重构时使用

阶段 5:验证与执行

顺序工具用途说明
⑬terminal执行命令构建、测试、lint、安装依赖
⑭read_file复查改动检查最终代码是否符合预期

阶段 6:补充信息(必要时)

顺序工具用途说明
⑮web_search网络搜索查最新文档、API、解决方案

阶段 7:版本控制与结构性改动(可选)

顺序功能说明
⑯Git 操作查看 diff、提交、更建分支
⑰代码重构工具重命名符号、提取函数/变量

一句话总结调用规律

Cursor 的真实工作方式是:先看结构 → 再语义搜索 → 精确搜索 → 读文件 → 改代码 → 跑命令 → 再检查

以'添加用户认证功能'为例:

文章配图

3. 编辑器核心层

编辑器核心提供代码可视化、文件管理、终端集成等基础 IDE 功能,同时支持插件扩展和自定义界面。它是 Cursor 的运行基础,使 AI 功能能在熟悉的开发环境中无缝操作。

4. AI models

Cursor 支持来自所有主要模型提供商的所有前沿编程模型。

文章配图

5. 自然语言交互与多代理系统

Cursor 提供自然语言交互,开发者可以直接用普通语言指令修改代码、重构模块或生成新功能。同时,Cursor 支持多代理模式,多任务 AI 可以并行运行,协调完成复杂的开发任务,例如重构整个模块或自动生成测试代码。

6. Commands

Cursor 的命令功能允许你创建可复用、可共享的工作流命令,这些命令以简单的 / 前缀触发,可在聊天输入框中快速调用,从而提高团队协作效率和常见任务处理的速度。

文章配图

🛠️ 命令是如何工作的?

  • 命令以 纯 Markdown 文件 (*.md) 的形式定义;
  • 文件放在特定目录中后,系统会在聊天框输入 / 时自动检测并展示可用命令。

例如,run-tests-and-fix-failure.md 可以定义成下面这样的。

# Run All Tests and Fix Failures
## Overview
Execute the full test suite and systematically fix any failures, ensuring code quality and functionality.
## Steps
1. **Run test suite**
   - Execute all tests in the project
   - Capture output and identify failures
   - Check both unit and integration tests
2. **Analyze failures**
   - Categorize by type: flaky, broken, new failures
   - Prioritize fixes based on impact
   - Check if failures are related to recent changes
3. **Fix issues systematically**
   - Start with the most critical failures
   - Fix one issue at a time
   - Re-run tests after each fix

可存放的位置包括:

  1. 项目命令:存放在项目根目录下的 .cursor/commands 文件夹;
  2. 全局命令:存放在用户主目录的 ~/.cursor/commands 文件夹。
.cursor/
└── commands/
    ├── address-github-pr-comments.md
    ├── code-review-checklist.md
    ├── create-pr.md
    ├── light-review-existing-diffs.md
    ├── onboard-new-developer.md
    ├── run-all-tests-and-fix.md
    ├── security-audit.md
    └── setup-new-feature.md
7. Context

在代码生成过程中提供给 AI 模型的信息,包括文件、symbols 以及对话历史。

文章配图

8. CLI

Cursor CLI 是 Cursor 提供的命令行级 AI 编程接口,用于在终端环境中直接调用 AI Agent 完成代码编写、重构、审查与问题分析等任务。相比只存在于编辑器中的 AI 助手,Cursor CLI 更适合融入现有的工程化流程,例如脚本自动化、CI/CD 流水线以及本地工具链。

该工具支持 交互式模式 与 非交互式模式:在交互模式下,开发者可以与 AI 进行持续对话,逐步明确需求、审阅修改方案并确认执行;在非交互模式下,则可通过一次性指令输出结果,适用于性能检查、安全审计等自动化场景。同时,Cursor CLI 提供会话管理能力,允许恢复历史对话,从而在多次调用中保持上下文一致性,减少重复沟通成本。

整体来看,Cursor CLI 更像是一个可脚本化的 AI 编程代理入口,将 AI 能力下沉到终端层,使其成为开发流程中的基础工具,而不仅是编辑器里的辅助功能。

文章配图

细节请查阅官网链接:https://cursor.com/docs/cli/overview

9. Hooks

Hooks 允许你通过自定义脚本来观察、控制并扩展代理(agent)循环。Hooks 是独立启动的进程,使用 JSON 通过标准输入/输出(stdio)进行双向通信。它们会在代理循环的指定阶段之前或之后运行,并且可以对行为进行观察、阻止或修改。

{
  "version": 1,
  "hooks": {
    "beforeShellExecution": [{ "command": "./script.sh" }],
    "afterShellExecution": [{ "command": "./script.sh" }],
    "afterMCPExecution": [{ "command": "./script.sh" }],
    "afterFileEdit": [{ "command": "./format.sh" }],
    "beforeTabFileRead": [{ "command": "./redact-secrets-tab.sh" }],
    "afterTabFileEdit": [{ "command": "./format-tab.sh" }]
  }
}

三、新功能

1. 自动测试 Web 页面以及修复

只需要表述你要测试什么内容,然后 Cursor 就帮你启动项目并且自动测试里面内容。

比如你的测试内容如下:

把 llm playground 页面里面文生文,文生图的功能给我测试一下,在测试的过程中,如果发现有什么问题,给我修复一下。后端 python 环境是 conda 里面虚拟环境 llm_Ft。

下图是测试结果。

文章配图

2. Debug Mode

编码 Agent 在很多事情上都很擅长,但有些 bug 总能难倒它们。为此推出了 Debug Mode——一种完全围绕运行时信息和人工验证构建的全新 Agent 工作循环。

在构建它时,研究了团队中最擅长调试的工程师的实践,并将他们的工作流整合为一种 Agent 模式,为其配备了可对代码进行插桩以采集运行时日志的工具、用于生成多种'到底出了什么问题'假设的提示,以及主动请你协助复现问题和验证修复的能力。

最终形成的是一个交互式流程,可以可靠地修复那些此前即便是最智能的模型单独工作也力所不及,或需要开发者投入大量时间才能处理的 bug。

1. 描述该 bug

首先,从下拉菜单中选择 Debug Mode,并尽可能详细地描述这个 bug。

代理不会立即尝试生成修复方案,而是先通读你的代码库,并针对可能出错的地方提出多个假设。其中有些可能是你自己也会想到的思路,但另一些则很可能是你原本不会考虑的方法。

接下来,代理会在你的代码中插入用于验证这些假设的日志记录语句,从而为在 bug 发生时获取实际运行数据做好准备。

2. 复现该 bug

接下来,回到你的应用,在代理采集运行时日志的同时复现这个 bug。

当 bug 发生时,代理可以准确了解你的代码中发生了什么:变量状态、执行路径以及时序信息。基于这些数据,它可以精准定位根本原因并生成有针对性的修复方案。通常这只需要对两三行代码做精确修改,而不是像普通代理交互那样给你上百行试探性代码。

3. 验证修复

此时,Debug Mode 会要求你在应用了建议修复的情况下,再复现一次这个 bug。若 bug 已经消失,你就可以将其标记为已修复,agent 会移除所有埋点(instrumentation),只留下一个干净、最小化的变更,方便你直接发布。

3. 浏览器布局和样式编辑器

借助全新的浏览器侧边栏和组件树,同时进行设计与编码。

移动元素、更新颜色、测试布局并实时调整 CSS,然后使用 agent 将更改即时应用到你的代码库中。你也可以选中多个元素,通过文字描述你想要的修改,让 agent 自动完成视觉调整。

4. 代码审核-Bugbot

文章配图

5. 多智能体评判-Multi-agent judging

当并行运行多个智能体时,Cursor 现在会自动评估所有运行结果,并推荐一个最佳解决方案。

被选中的智能体会附带一条评论,解释为何选择它。只有在所有并行智能体都完成运行之后,才会进行最佳解决方案的评判。

文章配图

四、优势分析

Cursor 不只是一个插件,而是一个增强版 VS Code。

具体体现在:

  • 更强的全局代码库理解(Context Awareness)- Semantic Search
  • 针对大型任务(重构/多文件更改)更友好 -- large-scale refactor
  • 多 agent 一起运行 -- Parallel Agents
  • 与 Linear, Figma, Browser 集成
  • 响应更快,不会有插件经常性的卡顿
  • 理解整个代码库,而不只当前文件
  • 会主动搜索和读取代码,不用手动喂上下文
  • 更擅长多文件修改和重构
  • 可以直接用自然语言下达'项目级指令'
  • 更适合接手和理解陌生 / 老项目
  • 对调用链、影响范围的判断更强
  • 修改代码时更像在'结对编程'而不是补全
  • 对复杂改动(重构、统一风格、抽逻辑)成功率更高
  • 隐私安全:支持本地控制和隐私模式,保护企业代码。

相比之下,Copilot 也有它独有的优势。它几乎支持所有主流 IDE。你可以在 VS Code 里用它,换到 IDEA 或 WebStorm 也能用,甚至连 Neovim 党都能愉快地使用 Copilot。

简而言之,Copilot 更像是'增强型助手',依附于已有 IDE,而 Cursor 更像一个'AI 伙伴 IDE',在项目全局上提供智能决策和自动化支持。

五、价格

个人计划均包含:

  • 无限标签补全
  • 所有模型的更高 Agent 使用上限
  • 访问 Bugbot
  • 访问 Cloud Agents

每个计划都包含按模型推理的 API 价格计费的用量:

  • Pro 包含 $20 的 API Agent 用量 + 额外奖励用量
  • Pro Plus 包含 $70 的 API Agent 用量 + 额外奖励用量
  • Ultra 包含 $400 的 API Agent 用量 + 额外奖励用量

文章配图

模型定价

文章配图

六、技术栈

关于 Cursor 这个不到 3 年历史的代码库的一些数据:

  • 25,000 个文件
  • 700 万行代码

编辑器是基于 Visual Studio Code 的分支开发的,这意味着它使用了和 VS Code 相同的技术栈:

  • TypeScript:大部分业务逻辑都是用这种语言编写
  • Electron:Cursor 使用的框架

在公司刚成立时,他们必须决定是像 Zed 那样从零构建编辑器,还是从现有编辑器分支开始。Sualeh 解释了这个决定:

'我们需要拥有自己的编辑器,而不能'只是'一个扩展,因为我们想改变人们编程的方式。这意味着我们要么构建一个全新的 IDE,要么从现有编辑器分支。 我们选择了分支,因为从零开始构建稳定的编辑器需要巨大的工作量。我们的价值主张不是构建稳定的编辑器,而是以渐进方式改变开发者的编程方式。例如,要构建神奇的'标签模型',如果不分支几乎不可能,而通过分支就很简单。分支让我们能够专注于用户体验,而不是编辑器本身。'

后端
  • TypeScript:大部分业务逻辑使用该语言
  • Rust:所有性能关键组件使用 Rust,例如下面提到的 Orchestrator
  • Node API 调用 Rust:大部分业务逻辑在 TypeScript 中,性能密集部分在 Rust 中,因此通过 Node.js 桥接从 TypeScript 调用 Rust 代码。例如调用用 Rust 编写的索引逻辑就大量使用了这种桥接
  • 单体架构:后端服务大部分是单体架构,并作为整体部署。这提醒我们,单体架构对早期创业公司来说非常有效,能帮助团队快速迭代
数据库
  • Turbopuffer:多租户数据库,用于存储加密文件和工作区的 Merkle 树(下面会详细介绍)。团队喜欢它的可扩展性,也避免了以前处理数据库分片的复杂性。
  • Pinecone:向量数据库,用于存储部分文档的 embedding
数据流
  • Warpstream:兼容 Apache Kafka 的数据流服务
工具链
  • Datadog:日志和监控
  • PagerDuty:值班管理,与 Slack 集成
  • Slack:内部沟通和聊天
  • Sentry:错误监控
  • Amplitude:分析工具
  • Stripe:支付和计费,用于购买 Cursor 的计划
  • WorkOS:Cursor 登录认证,例如 GitHub 或 Google Workspace 登录
  • Vercel:Cursor.com 网站的托管平台
  • Linear:工作管理
  • Cursor:当然,团队用 Cursor 自己开发 Cursor。最终,每个工程师都对自己提交的代码负责,无论是手写还是由 Cursor 生成
模型训练

Cursor 使用多个提供商来训练自己的模型或微调现有模型:

  • Voltage Park
  • Databricks MosaicML
  • Foundry
物理基础设施

所有基础设施都运行在云端。Sualeh 说:

'非常依赖云。主要使用 AWS,其次 Azure 处理推理。我们还使用其他一些新型 GPU 云服务。'

  • 大部分 CPU 基础设施在 AWS 上运行
  • 运营数万块 NVIDIA H100 GPU,其中一部分在 Azure 上

在 Microsoft Azure 数据中心的 20 块 NVIDIA H100 GPU。Cursor 的计算需求相当于成千上万这样的机架。来源:NVIDIA

  • 推理(Inference)是 Cursor 使用 GPU 的最大场景,用于生成下一个 token,无论是自动补全还是完整代码块。实际上,Azure GPU 只用于推理,不用于 LLM 相关的微调和模型训练
  • Terraform 用于管理基础设施,比如 GPU 和虚拟机(如 EC2 实例)

七、总结

Cursor 是一款超越传统 IDE 的 AI 驱动开发环境,它不仅提供智能补全,更通过语义索引、自然语言交互和多任务代理,实现了对整个项目的理解和操作。与 Copilot 相比,Cursor 在全局语义理解、自动化能力和多代理协作方面有明显优势,是 AI 参与软件开发的一种全新范式。

对于追求高效率、跨模块协作以及复杂项目自动化的开发者,Cursor 不只是辅助工具,而是一个真正的智能开发伙伴。

目录

  1. 一、Cursor 的起源与快速成长
  2. 二、核心内容
  3. 1. 语义索引与安全索引部分
  4. 1.1 使用代码块进行语义索引
  5. 1.2 使用 Merkle 树保持索引最新
  6. 1.3 安全索引
  7. 1.4 大规模代码库的索引
  8. 2. 实际工具调用顺序
  9. 3. 编辑器核心层
  10. 4. AI models
  11. 5. 自然语言交互与多代理系统
  12. 6. Commands
  13. Run All Tests and Fix Failures
  14. Overview
  15. Steps
  16. 7. Context
  17. 8. CLI
  18. 9. Hooks
  19. 三、新功能
  20. 1. 自动测试 Web 页面以及修复
  21. 2. Debug Mode
  22. 1. 描述该 bug
  23. 2. 复现该 bug
  24. 3. 验证修复
  25. 3. 浏览器布局和样式编辑器
  26. 4. 代码审核-Bugbot
  27. 5. 多智能体评判-Multi-agent judging
  28. 四、优势分析
  29. 五、价格
  30. 六、技术栈
  31. 后端
  32. 数据库
  33. 数据流
  34. 工具链
  35. 模型训练
  36. 物理基础设施
  37. 七、总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 若依 (RuoYi) 低代码框架:架构、优劣与选型建议
  • C++备忘录模式:对象状态的保存与恢复
  • AI 核心概念解析:Skill、MCP 与 Function Call
  • 基于 YOLO 与 SAM 微调的工业缺陷自动标注低代码方案
  • 宇树机器人 SDK2 开发指南:环境搭建与 Demo 测试
  • 机器人工具坐标系精准标定:资深工程师的高效实战流程
  • 基于 Rokid 灵珠平台搭建旅游 AR 智能体实战指南
  • Figma Make 实测:AI 辅助前端代码生成的可行性分析
  • 使用 AI 辅助开发 Java 电商核心功能实战:商品、购物车与订单系统
  • 利用 UltraISO 制作 GLM-4.6V-Flash-WEB 离线 AI 启动盘教程
  • OpenClaw 云端服务器通过 SSH 控制本地 Windows 浏览器配置指南
  • LightRAG应用一:[LightRAG & LightRAG WebUI]
  • 基于 YOLO12 的无人机航拍视角目标检测系统
  • C++ 二叉搜索树详解:原理、实现与应用
  • Higress MCP Server 插件:REST API 转换为 AI 工具配置
  • 转行 AI 产品经理:如何利用比较优势找到最优赛道
  • Java Web 影城会员管理系统:SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0
  • Ubuntu 22.04 安装 MySQL 5.7 完整指南
  • Python AI 入门:从 Hello World 到图像分类
  • 2026主流AI大模型横评与选型指南

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online