跳到主要内容 AI 编程工具 Cursor 核心功能与技术架构解析 | 极客日志
编程语言 Node.js SaaS AI 大前端 算法
AI 编程工具 Cursor 核心功能与技术架构解析 深入解析 AI 编程工具 Cursor,介绍其起源、核心架构及功能特性。Cursor 是由 Anysphere 研发的 AI 驱动智能开发环境,具备语义索引、Merkle 树同步、多代理协作等核心技术。文章详细阐述了其工具调用顺序、Commands、CLI、Hooks 等功能,并对比了与 GitHub Copilot 的差异。此外,还介绍了 Cursor 的新功能如 Debug Mode、自动测试及浏览器编辑器,并分析了其基于 TypeScript 和 Electron 的技术栈及云基础设施。Cursor 强调全局代码库理解与自动化能力,适合复杂项目开发与团队协作。
蓝绿部署 发布于 2026/4/6 更新于 2026/4/13 1 浏览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 先将代码拆分成更小的块,创建嵌入,并将这些嵌入存储在服务器上。
创建代码块 :将每个文件的内容切分成小块,每一块将作为后续的嵌入单元。
生成嵌入而不存储原始文件名或代码 :不希望在服务器上存储文件名或源码,会将文件名混淆,并将代码块加密后发送到服务器。服务器解密后,使用 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. 实际工具调用顺序 顺序 工具 用途 说明 ① list_dir 查看目录结构 先了解项目布局,入口文件、模块划分 ② file_search 文件名模糊搜索 快速定位可能相关的文件 ③ glob_file_search 模式查找文件 批量定位某类文件(如 *.tsx、**/api/**)
顺序 工具 用途 说明 ④ codebase_search 语义代码搜索 用自然语言理解需求,找到可能相关的实现 ⑤ grep 精确文本 / 正则搜索 对关键函数名、变量名做精确定位 ⑥ read_file 读取文件内容 查看实现细节,理解上下文
codebase_search 用来'猜方向'
grep 用来'钉位置'
顺序 工具 用途 说明 ⑦ read_file(局部) 精读关键逻辑 常用 offset / limit 读取重点代码 ⑧ glob_file_search 发现相关文件 如找测试、接口、调用方 ⑨ grep(扩展) 查调用链 搜索函数被谁调用、在哪里使用
顺序 工具 用途 说明 ⑩ edit_file 修改现有文件 插入、删除、调整逻辑 ⑪ write_file 创建新文件 新模块、新组件、新测试 ⑫ apply_diff 批量应用修改 多文件、大范围重构时使用
顺序 工具 用途 说明 ⑬ terminal 执行命令 构建、测试、lint、安装依赖 ⑭ read_file 复查改动 检查最终代码是否符合预期
顺序 工具 用途 说明 ⑮ web_search 网络搜索 查最新文档、API、解决方案
顺序 功能 说明 ⑯ 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
项目命令 :存放在项目根目录下的 .cursor/commands 文件夹;
全局命令 :存放在用户主目录的 ~/.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 能力下沉到终端层,使其成为开发流程中的基础工具,而不仅是编辑器里的辅助功能。
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 年历史的代码库的一些数据:
编辑器是基于 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
物理基础设施
'非常依赖云。主要使用 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 不只是辅助工具,而是一个真正的智能开发伙伴。
微信扫一扫,关注极客日志 微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
相关免费在线工具 加密/解密文本 使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
RSA密钥对生成器 生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
Mermaid 预览与可视化编辑 基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
Base64 字符串编码/解码 将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
Base64 文件转换器 将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
Markdown 转 HTML 将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online