Cursor 3.12 去掉语义索引了:Instant Grep 替代后你要知道的事

Cursor 3.12 起不再构建语义索引,Agent 改用 Instant Grep 和文件读取搜索代码库。索引进度条还在但已无意义,本文说清楚变了什么、怎么适应。

Cursor 3.12 去掉语义索引了:Instant Grep 替代后你要知道的事

Cursor 3.12 起不再为你的代码库构建语义索引了。Agent 现在用 Instant Grep 和普通文件读取来搜索代码,不再计算嵌入向量,也不再把代码数据上传到 Cursor 的服务器做语义搜索。如果你发现 Codebase Indexing 设置页还在转进度条但搜索行为没变化,这不是 bug。

作者CodePass 技术编辑

变了什么

Cursor 官方工程师 Kevin Neilson 在 2026 年 8 月的论坛帖子里确认了这个变化:过去几个月里模型在使用 grep 和索引搜索方面变得非常好,专门的语义搜索路径已经不再提供有意义的帮助。

具体变化如下:

  1. Cursor 不再为你的仓库计算 embedding 向量
  2. 不再将代码嵌入存储在 Cursor 服务器上
  3. Agent 搜索代码时使用 Instant Grep 工具(对本地文件做索引化的快速 grep)加上普通文件读取
  4. 旧版本的 Codebase Indexing 设置界面在某些版本上仍会显示进度条,但这不代表有语义搜索工具可用

对大多数工作流来说,搜索体验"应该感觉一样或更好"(Kevin 原话)。搜索直接跑在你本地的文件上。

Instant Grep 和语义搜索有什么不同

语义搜索的优势是能理解含义:搜"错误处理"可以匹配到 try-catch 块,即使代码里没有"错误处理"这几个字。Instant Grep 是精确匹配:你搜什么字符串,就匹配什么字符串。

但现在的模型补上了这个差距。当 Agent 需要找"错误处理相关的代码"时,它会自动拆成多次 grep 搜索,先搜 try、再搜 catch、再搜 error,然后综合结果判断。模型的上下文推理能力让它可以用多次精确搜索模拟语义搜索的效果,而且结果更可控(不会因为 embedding 质量差而漏掉重要文件)。

如果你的仓库特别大(几万个文件),Instant Grep 的速度仍然很快,它在本地维护了文件索引,按索引检索而非逐字节扫描。.cursorignore.gitignore 配置的排除规则同样生效,不需要额外配置。

之前的索引数据怎么办

Cursor 不再存储你的代码嵌入,已有的数据按 Cursor 的数据保留策略处理。如果你之前担心代码数据上传到 Cursor 服务器的隐私问题,这个变化实际上改善了状况,搜索完全在本地完成,没有代码内容需要发到远端。

隐私模式(Privacy Mode)用户不受影响,因为隐私模式本来就限制了数据上传。但即使不开隐私模式,现在语义搜索路径也不再有数据上传了。

你可能注意到的变化

正面:Agent 在大仓库里的搜索速度可能更快(不需要等索引构建完成),搜索结果更可预测(精确匹配不会出现语义搜索的"误匹配"问题)。

可能不如以前的场景:如果你习惯在聊天里用模糊的自然语言描述来让 Agent 找代码(比如"帮我找处理用户认证的那段逻辑"),Agent 现在需要更多步骤来定位。但在实际使用中,模型通常会先看文件结构、再做多轮 grep,效果并不明显劣于语义搜索。

如果你确实觉得搜索变差了,可以在聊天里显式告诉 Agent 搜索策略,比如"先看 src/auth 目录下的文件"或者"grep 搜索 JWT 和 token 相关的代码",帮助 Agent 缩小范围。

论坛上的常见困惑

Cursor 论坛上从 7 月开始出现了不少"Codebase Indexing 不工作"的帖子,原因就是 3.12 版本去掉了语义搜索但 UI 没有同步更新。3.12 的官方更新日志也没有第一时间说明这个变化(社区用户抱怨更新日志缺失),导致很多人以为是 bug。

这不是 bug,是设计决策。如果你还在等索引"修好",可以停下来了,它不会修,因为 Agent 已经换了另一条路搜代码。

关于 Cursor 隐私模式和数据处理策略的更多信息,可以看 Cursor 隐私模式怎么开。新手配置 Cursor 时的常见问题也可以参考 Cursor 新手配置常见错误

参考资料(https://forum.cursor.com/t/codebase-indexing-not-working-in-v-3-12-onwards/167527/7)